mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
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/202205130830.g5ntonhztspb@alvherre.pgsql Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user