From 82a47982f37077a9bfe67c0e9cc87b4f9b16e34b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 11 Sep 2007 00:06:42 +0000 Subject: Arrange for SET LOCAL's effects to persist until the end of the current top transaction, unless rolled back or overridden by a SET clause for the same variable attached to a surrounding function call. Per discussion, these seem the best semantics. Note that this is an INCOMPATIBLE CHANGE: in 8.0 through 8.2, SET LOCAL's effects disappeared at subtransaction commit (leading to behavior that made little sense at the SQL level). I took advantage of the opportunity to rewrite and simplify the GUC variable save/restore logic a little bit. The old idea of a "tentative" value is gone; it was a hangover from before we had a stack. Also, we no longer need a stack entry for every nesting level, but only for those in which a variable's value actually changed. --- src/backend/utils/init/miscinit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/backend/utils/init/miscinit.c') diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 599fc9938b6..1da93dd7a28 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.163 2007/09/03 00:39:18 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.164 2007/09/11 00:06:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -453,7 +453,7 @@ InitializeSessionUserId(const char *rolename) * right to insert an option into pg_authid was checked when it was * inserted. */ - ProcessGUCArray(a, PGC_SUSET, PGC_S_USER, false); + ProcessGUCArray(a, PGC_SUSET, PGC_S_USER, GUC_ACTION_SET); } ReleaseSysCache(roleTup); -- cgit v1.2.3