diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/replication/slot.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index 781aa43cc4f..18bc28195b0 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -537,6 +537,16 @@ retry: */ if (SlotIsLogical(s)) pgstat_acquire_replslot(s); + + if (am_walsender) + { + ereport(log_replication_commands ? LOG : DEBUG1, + SlotIsLogical(s) + ? errmsg("acquired logical replication slot \"%s\"", + NameStr(s->data.name)) + : errmsg("acquired physical replication slot \"%s\"", + NameStr(s->data.name))); + } } /* @@ -549,9 +559,17 @@ void ReplicationSlotRelease(void) { ReplicationSlot *slot = MyReplicationSlot; + char *slotname = NULL; /* keep compiler quiet */ + bool is_logical = false; /* keep compiler quiet */ Assert(slot != NULL && slot->active_pid != 0); + if (am_walsender) + { + slotname = pstrdup(NameStr(slot->data.name)); + is_logical = SlotIsLogical(slot); + } + if (slot->data.persistency == RS_EPHEMERAL) { /* @@ -596,6 +614,18 @@ ReplicationSlotRelease(void) MyProc->statusFlags &= ~PROC_IN_LOGICAL_DECODING; ProcGlobal->statusFlags[MyProc->pgxactoff] = MyProc->statusFlags; LWLockRelease(ProcArrayLock); + + if (am_walsender) + { + ereport(log_replication_commands ? LOG : DEBUG1, + is_logical + ? errmsg("released logical replication slot \"%s\"", + slotname) + : errmsg("released physical replication slot \"%s\"", + slotname)); + + pfree(slotname); + } } /* |