"Kevin Grittner" <kevin.gritt...@wicourts.gov> writes:
> Tom Lane  wrote:
>> More to the point, a GUC rollback transition *has to always
>> succeed*.  Period.

> [ counterexample showing we should sometimes disallow "RESET" ]

This actually isn't what I was talking about: a RESET statement is a
commanded adoption of a new value that happens to be gotten off the
stack, and there's not a lot of logical difficulty in letting it fail.
What I was concerned about was the case where GUC is trying to
re-establish an old value during transaction rollback.  For example,
assume we are superuser to start with, and we do

        begin;
        set role unprivileged_user;
        ...
        rollback;

The rollback needs to transition the role setting back to superuser.
A check based purely on allowed transitions would disallow that, since
it's not visibly different from the unprivileged_user trying to make
himself superuser.  You have to take the context of the state change
into account.

And yeah, I agree it's a bug that you can do what Kevin's example shows.

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to