diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-09-11 00:06:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-09-11 00:06:42 +0000 |
commit | 82a47982f37077a9bfe67c0e9cc87b4f9b16e34b (patch) | |
tree | c9d600eddcc50bd7ff70061838bbdfcea8e68165 /src/backend/utils/init/postinit.c | |
parent | b366562e43a8cd70bfb73efd8f5508608f92fd9b (diff) |
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.
Diffstat (limited to 'src/backend/utils/init/postinit.c')
-rw-r--r-- | src/backend/utils/init/postinit.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 965e94a5387..d1bc2af876d 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.177 2007/09/03 00:39:18 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.178 2007/09/11 00:06:42 tgl Exp $ * * *------------------------------------------------------------------------- @@ -255,7 +255,7 @@ CheckMyDatabase(const char *name, bool am_superuser) * right to insert an option into pg_database was checked when it * was inserted. */ - ProcessGUCArray(a, PGC_SUSET, PGC_S_DATABASE, false); + ProcessGUCArray(a, PGC_SUSET, PGC_S_DATABASE, GUC_ACTION_SET); } } |