32 #define XLOG_HEAP_INSERT 0x00
33 #define XLOG_HEAP_DELETE 0x10
34 #define XLOG_HEAP_UPDATE 0x20
35 #define XLOG_HEAP_TRUNCATE 0x30
36 #define XLOG_HEAP_HOT_UPDATE 0x40
37 #define XLOG_HEAP_CONFIRM 0x50
38 #define XLOG_HEAP_LOCK 0x60
39 #define XLOG_HEAP_INPLACE 0x70
41 #define XLOG_HEAP_OPMASK 0x70
46 #define XLOG_HEAP_INIT_PAGE 0x80
53 #define XLOG_HEAP2_REWRITE 0x00
54 #define XLOG_HEAP2_PRUNE 0x10
55 #define XLOG_HEAP2_VACUUM 0x20
56 #define XLOG_HEAP2_FREEZE_PAGE 0x30
57 #define XLOG_HEAP2_VISIBLE 0x40
58 #define XLOG_HEAP2_MULTI_INSERT 0x50
59 #define XLOG_HEAP2_LOCK_UPDATED 0x60
60 #define XLOG_HEAP2_NEW_CID 0x70
66 #define XLH_INSERT_ALL_VISIBLE_CLEARED (1<<0)
67 #define XLH_INSERT_LAST_IN_MULTI (1<<1)
68 #define XLH_INSERT_IS_SPECULATIVE (1<<2)
69 #define XLH_INSERT_CONTAINS_NEW_TUPLE (1<<3)
70 #define XLH_INSERT_ON_TOAST_RELATION (1<<4)
73 #define XLH_INSERT_ALL_FROZEN_SET (1<<5)
79 #define XLH_UPDATE_OLD_ALL_VISIBLE_CLEARED (1<<0)
81 #define XLH_UPDATE_NEW_ALL_VISIBLE_CLEARED (1<<1)
82 #define XLH_UPDATE_CONTAINS_OLD_TUPLE (1<<2)
83 #define XLH_UPDATE_CONTAINS_OLD_KEY (1<<3)
84 #define XLH_UPDATE_CONTAINS_NEW_TUPLE (1<<4)
85 #define XLH_UPDATE_PREFIX_FROM_OLD (1<<5)
86 #define XLH_UPDATE_SUFFIX_FROM_OLD (1<<6)
89 #define XLH_UPDATE_CONTAINS_OLD \
90 (XLH_UPDATE_CONTAINS_OLD_TUPLE | XLH_UPDATE_CONTAINS_OLD_KEY)
96 #define XLH_DELETE_ALL_VISIBLE_CLEARED (1<<0)
97 #define XLH_DELETE_CONTAINS_OLD_TUPLE (1<<1)
98 #define XLH_DELETE_CONTAINS_OLD_KEY (1<<2)
99 #define XLH_DELETE_IS_SUPER (1<<3)
100 #define XLH_DELETE_IS_PARTITION_MOVE (1<<4)
103 #define XLH_DELETE_CONTAINS_OLD \
104 (XLH_DELETE_CONTAINS_OLD_TUPLE | XLH_DELETE_CONTAINS_OLD_KEY)
115 #define SizeOfHeapDelete (offsetof(xl_heap_delete, flags) + sizeof(uint8))
120 #define XLH_TRUNCATE_CASCADE (1<<0)
121 #define XLH_TRUNCATE_RESTART_SEQS (1<<1)
136 #define SizeOfHeapTruncate (offsetof(xl_heap_truncate, relids))
151 #define SizeOfHeapHeader (offsetof(xl_heap_header, t_hoff) + sizeof(uint8))
162 #define SizeOfHeapInsert (offsetof(xl_heap_insert, flags) + sizeof(uint8))
182 #define SizeOfHeapMultiInsert offsetof(xl_heap_multi_insert, offsets)
193 #define SizeOfMultiInsertTuple (offsetof(xl_multi_insert_tuple, t_hoff) + sizeof(uint8))
227 #define SizeOfHeapUpdate (offsetof(xl_heap_update, new_offnum) + sizeof(OffsetNumber))
253 #define SizeOfHeapPrune (offsetof(xl_heap_prune, isCatalogRel) + sizeof(bool))
267 #define SizeOfHeapVacuum (offsetof(xl_heap_vacuum, nunused) + sizeof(uint16))
270 #define XLHL_XMAX_IS_MULTI 0x01
271 #define XLHL_XMAX_LOCK_ONLY 0x02
272 #define XLHL_XMAX_EXCL_LOCK 0x04
273 #define XLHL_XMAX_KEYSHR_LOCK 0x08
274 #define XLHL_KEYS_UPDATED 0x10
277 #define XLH_LOCK_ALL_FROZEN_CLEARED 0x01
288 #define SizeOfHeapLock (offsetof(xl_heap_lock, flags) + sizeof(uint8))
299 #define SizeOfHeapLockUpdated (offsetof(xl_heap_lock_updated, flags) + sizeof(uint8))
307 #define SizeOfHeapConfirm (offsetof(xl_heap_confirm, offnum) + sizeof(OffsetNumber))
316 #define SizeOfHeapInplace (offsetof(xl_heap_inplace, offnum) + sizeof(OffsetNumber))
323 #define XLH_FREEZE_XVAC 0x02
324 #define XLH_INVALID_XVAC 0x04
357 #define SizeOfHeapFreezePage (offsetof(xl_heap_freeze_page, isCatalogRel) + sizeof(bool))
371 #define SizeOfHeapVisible (offsetof(xl_heap_visible, flags) + sizeof(uint8))
391 #define SizeOfHeapNewCid (offsetof(xl_heap_new_cid, target_tid) + sizeof(ItemPointerData))
#define FLEXIBLE_ARRAY_MEMBER
struct xl_heap_rewrite_mapping xl_heap_rewrite_mapping
XLogRecPtr log_heap_visible(Relation rel, Buffer heap_buffer, Buffer vm_buffer, TransactionId snapshotConflictHorizon, uint8 vmflags)
struct xl_heap_delete xl_heap_delete
void heap_desc(StringInfo buf, XLogReaderState *record)
void heap_redo(XLogReaderState *record)
const char * heap_identify(uint8 info)
void heap2_desc(StringInfo buf, XLogReaderState *record)
void heap_mask(char *pagedata, BlockNumber blkno)
void HeapTupleHeaderAdvanceConflictHorizon(HeapTupleHeader tuple, TransactionId *snapshotConflictHorizon)
struct xl_heap_new_cid xl_heap_new_cid
const char * heap2_identify(uint8 info)
struct xl_heap_lock xl_heap_lock
void heap_xlog_logical_rewrite(XLogReaderState *r)
struct xl_heap_prune xl_heap_prune
struct xl_heap_multi_insert xl_heap_multi_insert
struct xl_heap_confirm xl_heap_confirm
struct xl_heap_vacuum xl_heap_vacuum
struct xl_heap_freeze_plan xl_heap_freeze_plan
struct xl_heap_insert xl_heap_insert
struct xl_heap_lock_updated xl_heap_lock_updated
struct xl_heap_freeze_page xl_heap_freeze_page
struct xl_heap_inplace xl_heap_inplace
void heap2_redo(XLogReaderState *record)
struct xl_heap_header xl_heap_header
struct xl_multi_insert_tuple xl_multi_insert_tuple
struct xl_heap_visible xl_heap_visible
struct xl_heap_update xl_heap_update
struct xl_heap_truncate xl_heap_truncate
TransactionId snapshotConflictHorizon
OffsetNumber offsets[FLEXIBLE_ARRAY_MEMBER]
ItemPointerData target_tid
RelFileLocator target_locator
TransactionId snapshotConflictHorizon
Oid relids[FLEXIBLE_ARRAY_MEMBER]
TransactionId snapshotConflictHorizon