pgsql: Improve define_custom_variable's handling of pre-existing settin - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Improve define_custom_variable's handling of pre-existing settin
Date
Msg-id E1RBEsC-0005D7-8Z@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Improve define_custom_variable's handling of pre-existing settings.

Arrange for any problems with pre-existing settings to be reported as
WARNING not ERROR, so that we don't undesirably abort the loading of the
incoming add-on module.  The bad setting is just discarded, as though it
had never been applied at all.  (This requires a change in the API of
set_config_option.  After some thought I decided the most potentially
useful addition was to allow callers to just pass in a desired elevel.)

Arrange to restore the complete stacked state of the variable, rather than
cheesily reinstalling only the active value.  This ensures that custom GUCs
will behave unsurprisingly even when the module loading operation occurs
within nested subtransactions that have changed the active value.  Since a
module load could occur as a result of, eg, a PL function call, this is not
an unlikely scenario.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/41e461d36fb1ef78494429f28ea4b72c759f419d

Modified Files
--------------
contrib/tsearch2/tsearch2.c         |   14 +--
src/backend/commands/extension.c    |   12 +-
src/backend/utils/adt/ri_triggers.c |    4 +-
src/backend/utils/misc/guc-file.l   |    4 +-
src/backend/utils/misc/guc.c        |  204 +++++++++++++++++++++++++++--------
src/include/utils/guc.h             |    2 +-
6 files changed, 173 insertions(+), 67 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix uninitialized-variable bug.
Next
From: Bruce Momjian
Date:
Subject: pgsql: Explain COALESCE example in the docs.