aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2022-11-15 10:03:12 +0100
committerPeter Eisentraut <peter@eisentraut.org>2022-11-15 10:03:47 +0100
commitd627ce3b706de16279d8eb683bfeda34ad7197fe (patch)
treef547a03a5b8e3f3c1a1ecc15164ce905d15a4f48 /src
parent8b5262fa0efdd515a05e533c2a1198e7b666f7d8 (diff)
downloadpostgresql-d627ce3b706de16279d8eb683bfeda34ad7197fe.tar.gz
postgresql-d627ce3b706de16279d8eb683bfeda34ad7197fe.zip
Disallow setting archive_library and archive_command at the same time
Setting archive_library and archive_command at the same time is now an error. Before, archive_library would take precedence over archive_command. Author: Nathan Bossart <nathandbossart@gmail.com> Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com> Reviewed-by: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> Discussion: https://www.postgresql.org/message-id/20220914222736.GA3042279%40nathanxps13
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/pgarch.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c
index 2670e41666a..fffb6a599c6 100644
--- a/src/backend/postmaster/pgarch.c
+++ b/src/backend/postmaster/pgarch.c
@@ -792,6 +792,12 @@ HandlePgArchInterrupts(void)
ConfigReloadPending = false;
ProcessConfigFile(PGC_SIGHUP);
+ if (XLogArchiveLibrary[0] != '\0' && XLogArchiveCommand[0] != '\0')
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("both archive_command and archive_library set"),
+ errdetail("Only one of archive_command, archive_library may be set.")));
+
archiveLibChanged = strcmp(XLogArchiveLibrary, archiveLib) != 0;
pfree(archiveLib);
@@ -825,6 +831,12 @@ LoadArchiveLibrary(void)
{
ArchiveModuleInit archive_init;
+ if (XLogArchiveLibrary[0] != '\0' && XLogArchiveCommand[0] != '\0')
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("both archive_command and archive_library set"),
+ errdetail("Only one of archive_command, archive_library may be set.")));
+
memset(&ArchiveContext, 0, sizeof(ArchiveModuleCallbacks));
/*