diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2022-11-15 10:03:12 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2022-11-15 10:03:47 +0100 |
commit | d627ce3b706de16279d8eb683bfeda34ad7197fe (patch) | |
tree | f547a03a5b8e3f3c1a1ecc15164ce905d15a4f48 /src | |
parent | 8b5262fa0efdd515a05e533c2a1198e7b666f7d8 (diff) | |
download | postgresql-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.c | 12 |
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)); /* |