Re: User-Id Tracking when Portal was started

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Kohei KaiGai <kaigai@kaigai.gr.jp>
Cc: Robert Haas <robertmhaas@gmail.com>, PgHacker <pgsql-hackers@postgresql.org>, Florian Pflug <fgp@phlo.org>
Date: 2012-07-03T15:36:42Z
Lists: pgsql-hackers
Kohei KaiGai <kaigai@kaigai.gr.jp> writes:
> 2012/7/3 Robert Haas <robertmhaas@gmail.com>:
>> Why not just save and restore the user ID and security context
>> unconditionally, instead of doing this kind of dance?
>> 
>> +               if (portal->userId != GetUserId())
>> +                       SetUserIdAndSecContext(portal->userId, portal->secCo
>> +               else
>> +                       saveUserId = InvalidOid;
>> 
> In case when CurrentUserId was updated during the code block
> (E.g, execution of SET SESSION AUTHORIZATION), it overwrites
> this update on restoring user-id and security-context.

Um... what should happen if there was a SET SESSION AUTHORIZATION
to the portal's userId?  This test will think nothing happened.

			regards, tom lane