• Tom Lane's avatar
    Improve define_custom_variable's handling of pre-existing settings. · 41e461d3
    Tom Lane authored
    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.
    41e461d3
extension.c 75.7 KB