aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/slot.c30
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);
+ }
}
/*