]> granicus.if.org Git - postgresql/commit
Remember the source GucContext for each GUC parameter.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Oct 2011 20:13:16 +0000 (16:13 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Oct 2011 20:13:50 +0000 (16:13 -0400)
commit9f5836d224e876399dfdd7d6d4343300dbc2f664
treea0dd0059e615f56af1bdc969399aff085160732c
parent09e196e4539a70c51e828abcfe48dee3efd312d8
Remember the source GucContext for each GUC parameter.

We used to just remember the GucSource, but saving GucContext too provides
a little more information --- notably, whether a SET was done by a
superuser or regular user.  This allows us to rip out the fairly dodgy code
that define_custom_variable used to use to try to infer the context to
re-install a pre-existing setting with.  In particular, it now works for
a superuser to SET a extension's SUSET custom variable before loading the
associated extension, because GUC can remember whether the SET was done as
a superuser or not.  The plperl regression tests contain an example where
this is useful.
src/backend/utils/misc/guc-file.l
src/backend/utils/misc/guc.c
src/include/utils/guc_tables.h
src/pl/plperl/expected/plperl_init.out
src/pl/plperl/expected/plperl_shared.out
src/pl/plperl/expected/plperlu.out
src/pl/plperl/sql/plperl_init.sql
src/pl/plperl/sql/plperl_shared.sql
src/pl/plperl/sql/plperlu.sql