From 8a52b7d8cc6f956fba47465d280581e200ec5239 Mon Sep 17 00:00:00 2001 From: Michael Banck Date: Sun, 19 Mar 2017 10:58:13 +0100 Subject: [PATCH] Create replication slot in pg_basebackup if requested and not yet present. If a replication slot is explicitly requested, try to create it before starting to replicate from it. --- src/bin/pg_basebackup/receivelog.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c index f415135..0ddb7a6 100644 --- a/src/bin/pg_basebackup/receivelog.c +++ b/src/bin/pg_basebackup/receivelog.c @@ -527,6 +527,17 @@ ReceiveXlogStream(PGconn *conn, StreamCtl *stream) } /* + * Try to create a permanent replication slot if one is specified. Do + * not error out if the slot already exists, other errors are already + * reported by CreateReplicationSlot(). + */ + if (!stream->temp_slot && stream->replication_slot) + { + if (!CreateReplicationSlot(conn, stream->replication_slot, NULL, true, true)) + return false; + } + + /* * initialize flush position to starting point, it's the caller's * responsibility that that's sane. */ -- 2.1.4