diff options
author | Andres Freund <andres@anarazel.de> | 2015-08-11 12:32:48 +0200 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2015-08-11 12:32:48 +0200 |
commit | 093d0c83c1d210167d122da92459a0677e04ffc9 (patch) | |
tree | 11784342960a18a5c75bad85a864adca143513e8 /src/backend | |
parent | 3b425b7c02ccdabe3fb3a538d9174273a15f1e2e (diff) | |
download | postgresql-093d0c83c1d210167d122da92459a0677e04ffc9.tar.gz postgresql-093d0c83c1d210167d122da92459a0677e04ffc9.zip |
Introduce macros determining if a replication slot is physical or logical.
These make the code a bit easier to read, and make it easier to add a
more explicit notion of a slot's type at some point in the future.
Author: Gurjeet Singh
Discussion: CABwTF4Wh_dBCzTU=49pFXR6coR4NW1ynb+vBqT+Po=7fuq5iCw@mail.gmail.com
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/replication/logical/logical.c | 4 | ||||
-rw-r--r-- | src/backend/replication/slot.c | 6 | ||||
-rw-r--r-- | src/backend/replication/walsender.c | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c index ee7d3268f02..5411e599eb2 100644 --- a/src/backend/replication/logical/logical.c +++ b/src/backend/replication/logical/logical.c @@ -228,7 +228,7 @@ CreateInitDecodingContext(char *plugin, elog(ERROR, "cannot initialize logical decoding without a specified plugin"); /* Make sure the passed slot is suitable. These are user facing errors. */ - if (slot->data.database == InvalidOid) + if (SlotIsPhysical(slot)) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot use physical replication slot for logical decoding"))); @@ -377,7 +377,7 @@ CreateDecodingContext(XLogRecPtr start_lsn, elog(ERROR, "cannot perform logical decoding without an acquired slot"); /* make sure the passed slot is suitable, these are user facing errors */ - if (slot->data.database == InvalidOid) + if (SlotIsPhysical(slot)) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), (errmsg("cannot use physical replication slot for logical decoding")))); diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index abe8747fe4d..1f013af8871 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -693,7 +693,7 @@ ReplicationSlotsComputeLogicalRestartLSN(void) continue; /* we're only interested in logical slots */ - if (s->data.database == InvalidOid) + if (!SlotIsLogical(s)) continue; /* read once, it's ok if it increases while we're checking */ @@ -740,8 +740,8 @@ ReplicationSlotsCountDBSlots(Oid dboid, int *nslots, int *nactive) if (!s->in_use) continue; - /* not database specific, skip */ - if (s->data.database == InvalidOid) + /* only logical slots are database specific, skip */ + if (!SlotIsLogical(s)) continue; /* not our database, skip */ diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index eb1b89b9c32..e1bab079d5d 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -514,7 +514,7 @@ StartReplication(StartReplicationCmd *cmd) if (cmd->slotname) { ReplicationSlotAcquire(cmd->slotname); - if (MyReplicationSlot->data.database != InvalidOid) + if (SlotIsLogical(MyReplicationSlot)) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), (errmsg("cannot use a logical replication slot for physical replication")))); @@ -1564,7 +1564,7 @@ ProcessStandbyReplyMessage(void) */ if (MyReplicationSlot && flushPtr != InvalidXLogRecPtr) { - if (MyReplicationSlot->data.database != InvalidOid) + if (SlotIsLogical(MyReplicationSlot)) LogicalConfirmReceivedLocation(flushPtr); else PhysicalConfirmReceivedLocation(flushPtr); |