diff options
Diffstat (limited to 'src/include/replication/reorderbuffer.h')
-rw-r--r-- | src/include/replication/reorderbuffer.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/include/replication/reorderbuffer.h b/src/include/replication/reorderbuffer.h index 2c9206ace41..8695901ba71 100644 --- a/src/include/replication/reorderbuffer.h +++ b/src/include/replication/reorderbuffer.h @@ -381,6 +381,11 @@ typedef struct ReorderBufferTXN dlist_node node; /* + * A node in the list of catalog modifying transactions + */ + dlist_node catchange_node; + + /* * Size of this transaction (changes currently in memory, in bytes). */ Size size; @@ -527,6 +532,12 @@ struct ReorderBuffer dlist_head txns_by_base_snapshot_lsn; /* + * Transactions and subtransactions that have modified system catalogs. + */ + dlist_head catchange_txns; + int catchange_ntxns; + + /* * one-entry sized cache for by_txn. Very frequently the same txn gets * looked up over and over again. */ @@ -677,6 +688,7 @@ extern void ReorderBufferSkipPrepare(ReorderBuffer *rb, TransactionId xid); extern void ReorderBufferPrepare(ReorderBuffer *rb, TransactionId xid, char *gid); extern ReorderBufferTXN *ReorderBufferGetOldestTXN(ReorderBuffer *); extern TransactionId ReorderBufferGetOldestXmin(ReorderBuffer *rb); +extern TransactionId *ReorderBufferGetCatalogChangesXacts(ReorderBuffer *rb); extern void ReorderBufferSetRestartPoint(ReorderBuffer *, XLogRecPtr ptr); |