summaryrefslogtreecommitdiff
path: root/src/backend/replication
diff options
context:
space:
mode:
authorAlvaro Herrera2022-07-04 12:52:12 +0000
committerAlvaro Herrera2022-07-04 12:52:12 +0000
commitf10a025cfe97c1a341f636368e67af5ca644c5d8 (patch)
tree54e24a8088feaec1b65fba755a7329f18a5f0687 /src/backend/replication
parent55f4802785f66a584c05dca40e5d9b25491674b2 (diff)
Implement List support for TransactionId
Use it for RelationSyncEntry->streamed_txns, which is currently using an integer list. The API support is not complete, not because it is hard to write but because it's unclear that it's worth the code space, there being so little use of XID lists. Discussion: https://postgr.es/m/[email protected] Reviewed-by: Amit Kapila <[email protected]>
Diffstat (limited to 'src/backend/replication')
-rw-r--r--src/backend/replication/pgoutput/pgoutput.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index 8deae571433..2cbca4a0870 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -1923,15 +1923,7 @@ init_rel_sync_cache(MemoryContext cachectx)
static bool
get_schema_sent_in_streamed_txn(RelationSyncEntry *entry, TransactionId xid)
{
- ListCell *lc;
-
- foreach(lc, entry->streamed_txns)
- {
- if (xid == (uint32) lfirst_int(lc))
- return true;
- }
-
- return false;
+ return list_member_xid(entry->streamed_txns, xid);
}
/*
@@ -1945,7 +1937,7 @@ set_schema_sent_in_streamed_txn(RelationSyncEntry *entry, TransactionId xid)
oldctx = MemoryContextSwitchTo(CacheMemoryContext);
- entry->streamed_txns = lappend_int(entry->streamed_txns, xid);
+ entry->streamed_txns = lappend_xid(entry->streamed_txns, xid);
MemoryContextSwitchTo(oldctx);
}
@@ -2248,7 +2240,7 @@ cleanup_rel_sync_cache(TransactionId xid, bool is_commit)
*/
foreach(lc, entry->streamed_txns)
{
- if (xid == (uint32) lfirst_int(lc))
+ if (xid == lfirst_xid(lc))
{
if (is_commit)
entry->schema_sent = true;