summaryrefslogtreecommitdiffstats
path: root/src/backend/utils/misc/guc.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:18:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:18:03 +0000
commitb4b8efbd3826ac0af2d1c2e7c40fcf80a4bfba45 (patch)
treebec866278030c41c624a91037b1dd88f41c99d8e /src/backend/utils/misc/guc.c
parentAdding upstream version 15.5. (diff)
downloadpostgresql-15-66f7806ccd3f001bf96b8d5d153b7eaa82bc10cf.tar.xz
postgresql-15-66f7806ccd3f001bf96b8d5d153b7eaa82bc10cf.zip
Adding upstream version 15.6.upstream/15.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r--src/backend/utils/misc/guc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 0b5b77b..07d6538 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1285,7 +1285,7 @@ static struct config_bool ConfigureNamesBool[] =
{"fsync", PGC_SIGHUP, WAL_SETTINGS,
gettext_noop("Forces synchronization of updates to disk."),
gettext_noop("The server will use the fsync() system call in several places to make "
- "sure that updates are physically written to disk. This insures "
+ "sure that updates are physically written to disk. This ensures "
"that a database cluster will recover to a consistent state after "
"an operating system or hardware crash.")
},
@@ -7643,9 +7643,12 @@ set_config_option_ext(const char *name, const char *value,
* Other changes might need to affect other workers, so forbid them.
*/
if (IsInParallelMode() && changeVal && action != GUC_ACTION_SAVE)
+ {
ereport(elevel,
(errcode(ERRCODE_INVALID_TRANSACTION_STATE),
errmsg("cannot set parameters during a parallel operation")));
+ return -1;
+ }
record = find_option(name, true, false, elevel);
if (record == NULL)
@@ -7740,6 +7743,10 @@ set_config_option_ext(const char *name, const char *value,
* backends. This is a tad klugy, but necessary because we
* don't re-read the config file during backend start.
*
+ * However, if changeVal is false then plow ahead anyway since
+ * we are trying to find out if the value is potentially good,
+ * not actually use it.
+ *
* In EXEC_BACKEND builds, this works differently: we load all
* non-default settings from the CONFIG_EXEC_PARAMS file
* during backend start. In that case we must accept
@@ -7750,7 +7757,7 @@ set_config_option_ext(const char *name, const char *value,
* started it. is_reload will be true when either situation
* applies.
*/
- if (IsUnderPostmaster && !is_reload)
+ if (IsUnderPostmaster && changeVal && !is_reload)
return -1;
}
else if (context != PGC_POSTMASTER &&