* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.478 2008/11/19 01:10:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.479 2008/11/19 02:07:07 tgl Exp $
*
*--------------------------------------------------------------------
*/
const char **nameAddr = &name;
const char *value;
struct config_string *pHolder;
+ GucContext phcontext;
struct config_generic **res;
/*
*/
*res = variable;
+ /*
+ * Infer context for assignment based on source of existing value.
+ * We can't tell this with exact accuracy, but we can at least do
+ * something reasonable in typical cases.
+ */
+ switch (pHolder->gen.source)
+ {
+ case PGC_S_DEFAULT:
+ case PGC_S_ENV_VAR:
+ case PGC_S_FILE:
+ case PGC_S_ARGV:
+ phcontext = PGC_SIGHUP;
+ break;
+ case PGC_S_DATABASE:
+ case PGC_S_USER:
+ case PGC_S_CLIENT:
+ case PGC_S_SESSION:
+ default:
+ phcontext = PGC_USERSET;
+ break;
+ }
+
/*
* Assign the string value stored in the placeholder to the real variable.
*
if (value)
set_config_option(name, value,
- pHolder->gen.context, pHolder->gen.source,
+ phcontext, pHolder->gen.source,
GUC_ACTION_SET, true);
/*