From 2d4a83abd2f278a9f9dc6e9329aed1acc191f2c8 Mon Sep 17 00:00:00 2001 From: Kyotaro Horiguchi Date: Thu, 18 Jun 2020 11:33:29 +0900 Subject: [PATCH 3/3] 003 --- src/backend/replication/slot.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index 8893516f00..25ae334a29 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -373,8 +373,10 @@ ReplicationSlotAcquire(const char *name, SlotAcquireBehavior behavior) * Mark the specified slot as used by this process. * * If *slot == NULL, search for the slot with the given name. - * * See comments about the return value in ReplicationSlotAcquire(). + * + * If slot is not NULL, returns -1 if the slot is not in use or doesn't match + * the given name. */ static int ReplicationSlotAcquireInternal(ReplicationSlot *slot, const char *name, @@ -400,7 +402,7 @@ retry: if (s == NULL) { - if (behavior == SAB_Inquire) + if (behavior == SAB_Inquire || slot) { LWLockRelease(ReplicationSlotControlLock); return -1; -- 2.18.4