Remember the source GucContext for each GUC parameter.

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

Commit: 9f5836d224e876399dfdd7d6d4343300dbc2f664
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2011-10-04T20:13:50Z
Releases: 9.2.0
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.

Files