diff options
author | Masahiko Sawada <msawada@postgresql.org> | 2025-04-04 10:39:57 -0700 |
---|---|---|
committer | Masahiko Sawada <msawada@postgresql.org> | 2025-04-04 10:39:57 -0700 |
commit | cf2655a9029aff63dd567dbbdcdee15ec969905d (patch) | |
tree | f44b8d2018d11e917f59a04f6d122455de9ada95 /src/bin/pg_basebackup/streamutil.c | |
parent | 3556c89321e8baa2242288bd4f015efd1e9d6be0 (diff) | |
download | postgresql-cf2655a9029aff63dd567dbbdcdee15ec969905d.tar.gz postgresql-cf2655a9029aff63dd567dbbdcdee15ec969905d.zip |
pg_recvlogical: Add --failover option.
This new option instructs pg_recvlogical to create the logical
replication slot with the failover option enabled. It can be used in
conjunction with the --create-slot option.
Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Michael Banck <mbanck@gmx.net>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/OSCPR01MB14966C54097FC83AF19F3516BF5AC2@OSCPR01MB14966.jpnprd01.prod.outlook.com
Diffstat (limited to 'src/bin/pg_basebackup/streamutil.c')
-rw-r--r-- | src/bin/pg_basebackup/streamutil.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/bin/pg_basebackup/streamutil.c b/src/bin/pg_basebackup/streamutil.c index 8e605f43ffe..c7b8a4c3a4b 100644 --- a/src/bin/pg_basebackup/streamutil.c +++ b/src/bin/pg_basebackup/streamutil.c @@ -583,7 +583,7 @@ GetSlotInformation(PGconn *conn, const char *slot_name, bool CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, bool is_temporary, bool is_physical, bool reserve_wal, - bool slot_exists_ok, bool two_phase) + bool slot_exists_ok, bool two_phase, bool failover) { PQExpBuffer query; PGresult *res; @@ -594,6 +594,7 @@ CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, Assert((is_physical && plugin == NULL) || (!is_physical && plugin != NULL)); Assert(!(two_phase && is_physical)); + Assert(!(failover && is_physical)); Assert(slot_name != NULL); /* Build base portion of query */ @@ -616,6 +617,10 @@ CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, } else { + if (failover && PQserverVersion(conn) >= 170000) + AppendPlainCommandOption(query, use_new_option_syntax, + "FAILOVER"); + if (two_phase && PQserverVersion(conn) >= 150000) AppendPlainCommandOption(query, use_new_option_syntax, "TWO_PHASE"); |