diff options
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r-- | src/backend/utils/misc/guc.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 5f71dedff34..222228ae5a7 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -5927,12 +5927,14 @@ set_config_option(const char *name, const char *value, { if (*conf->variable != newval) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } + record->status &= ~GUC_PENDING_RESTART; return -1; } @@ -6015,12 +6017,14 @@ set_config_option(const char *name, const char *value, { if (*conf->variable != newval) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } + record->status &= ~GUC_PENDING_RESTART; return -1; } @@ -6103,12 +6107,14 @@ set_config_option(const char *name, const char *value, { if (*conf->variable != newval) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } + record->status &= ~GUC_PENDING_RESTART; return -1; } @@ -6209,12 +6215,14 @@ set_config_option(const char *name, const char *value, if (*conf->variable == NULL || newval == NULL || strcmp(*conf->variable, newval) != 0) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } + record->status &= ~GUC_PENDING_RESTART; return -1; } @@ -6302,12 +6310,14 @@ set_config_option(const char *name, const char *value, { if (*conf->variable != newval) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } + record->status &= ~GUC_PENDING_RESTART; return -1; } @@ -8009,6 +8019,8 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow) values[14] = NULL; values[15] = NULL; } + + values[16] = (conf->status & GUC_PENDING_RESTART) ? "t" : "f"; } /* @@ -8044,7 +8056,7 @@ show_config_by_name(PG_FUNCTION_ARGS) * show_all_settings - equiv to SHOW ALL command but implemented as * a Table Function. */ -#define NUM_PG_SETTINGS_ATTS 16 +#define NUM_PG_SETTINGS_ATTS 17 Datum show_all_settings(PG_FUNCTION_ARGS) @@ -8104,6 +8116,8 @@ show_all_settings(PG_FUNCTION_ARGS) TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) 16, "sourceline", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 17, "pending_restart", + BOOLOID, -1, 0); /* * Generate attribute metadata needed later to produce tuples from raw |