diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 1d094f0..fb962b7 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -3098,7 +3098,7 @@ static struct config_string ConfigureNamesString[] = {"data_directory", PGC_POSTMASTER, FILE_LOCATIONS, gettext_noop("Sets the server's data directory."), NULL, - GUC_SUPERUSER_ONLY + GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE }, &data_directory, NULL, @@ -6736,11 +6736,12 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt) errmsg("unrecognized configuration parameter \"%s\"", name))); if ((record->context == PGC_INTERNAL) || - (record->flags & GUC_DISALLOW_IN_FILE)) - ereport(ERROR, - (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), - errmsg("parameter \"%s\" cannot be changed", - name))); + (record->flags & GUC_DISALLOW_IN_FILE) || + (record->flags & GUC_DISALLOW_IN_AUTO_FILE)) + ereport(ERROR, + (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), + errmsg("parameter \"%s\" cannot be changed", + name))); if (!validate_conf_option(record, name, value, PGC_S_FILE, ERROR, true, NULL, diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index c15a5bbb..f1a84e2 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -195,6 +195,7 @@ typedef enum #define GUC_UNIT_TIME 0x7000 /* mask for MS, S, MIN */ #define GUC_NOT_WHILE_SEC_REST 0x8000 /* can't set if security restricted */ +#define GUC_DISALLOW_IN_AUTO_FILE 0x00010000 /* can't set in postgresql.auto.conf */ /* GUC vars that are actually declared in guc.c, rather than elsewhere */ extern bool log_duration;