PostgreSQL Source Code
git master
|
#include "access/htup.h"
#include "access/xlogreader.h"
#include "lib/stringinfo.h"
#include "storage/buf.h"
#include "storage/bufpage.h"
#include "storage/relfilenode.h"
#include "utils/relcache.h"
Go to the source code of this file.
Data Structures | |
struct | xl_heap_delete |
struct | xl_heap_truncate |
struct | xl_heap_header |
struct | xl_heap_insert |
struct | xl_heap_multi_insert |
struct | xl_multi_insert_tuple |
struct | xl_heap_update |
struct | xl_heap_clean |
struct | xl_heap_cleanup_info |
struct | xl_heap_lock |
struct | xl_heap_lock_updated |
struct | xl_heap_confirm |
struct | xl_heap_inplace |
struct | xl_heap_freeze_tuple |
struct | xl_heap_freeze_page |
struct | xl_heap_visible |
struct | xl_heap_new_cid |
struct | xl_heap_rewrite_mapping |
Typedefs | |
typedef struct xl_heap_delete | xl_heap_delete |
typedef struct xl_heap_truncate | xl_heap_truncate |
typedef struct xl_heap_header | xl_heap_header |
typedef struct xl_heap_insert | xl_heap_insert |
typedef struct xl_heap_multi_insert | xl_heap_multi_insert |
typedef struct xl_multi_insert_tuple | xl_multi_insert_tuple |
typedef struct xl_heap_update | xl_heap_update |
typedef struct xl_heap_clean | xl_heap_clean |
typedef struct xl_heap_cleanup_info | xl_heap_cleanup_info |
typedef struct xl_heap_lock | xl_heap_lock |
typedef struct xl_heap_lock_updated | xl_heap_lock_updated |
typedef struct xl_heap_confirm | xl_heap_confirm |
typedef struct xl_heap_inplace | xl_heap_inplace |
typedef struct xl_heap_freeze_tuple | xl_heap_freeze_tuple |
typedef struct xl_heap_freeze_page | xl_heap_freeze_page |
typedef struct xl_heap_visible | xl_heap_visible |
typedef struct xl_heap_new_cid | xl_heap_new_cid |
typedef struct xl_heap_rewrite_mapping | xl_heap_rewrite_mapping |
#define SizeOfHeapClean (offsetof(xl_heap_clean, ndead) + sizeof(uint16)) |
Definition at line 248 of file heapam_xlog.h.
Referenced by log_heap_clean().
#define SizeOfHeapCleanupInfo (sizeof(xl_heap_cleanup_info)) |
Definition at line 261 of file heapam_xlog.h.
Referenced by log_heap_cleanup_info().
#define SizeOfHeapConfirm (offsetof(xl_heap_confirm, offnum) + sizeof(OffsetNumber)) |
Definition at line 301 of file heapam_xlog.h.
Referenced by heap_finish_speculative().
#define SizeOfHeapDelete (offsetof(xl_heap_delete, flags) + sizeof(uint8)) |
Definition at line 115 of file heapam_xlog.h.
Referenced by DecodeDelete(), heap_abort_speculative(), and heap_delete().
#define SizeOfHeapFreezePage (offsetof(xl_heap_freeze_page, ntuples) + sizeof(uint16)) |
Definition at line 341 of file heapam_xlog.h.
Referenced by log_heap_freeze().
#define SizeOfHeapHeader (offsetof(xl_heap_header, t_hoff) + sizeof(uint8)) |
Definition at line 151 of file heapam_xlog.h.
Referenced by DecodeDelete(), DecodeInsert(), DecodeUpdate(), DecodeXLogTuple(), heap_delete(), heap_insert(), heap_xlog_insert(), heap_xlog_update(), and log_heap_update().
#define SizeOfHeapInplace (offsetof(xl_heap_inplace, offnum) + sizeof(OffsetNumber)) |
Definition at line 310 of file heapam_xlog.h.
Referenced by heap_inplace_update().
#define SizeOfHeapInsert (offsetof(xl_heap_insert, flags) + sizeof(uint8)) |
Definition at line 162 of file heapam_xlog.h.
Referenced by heap_insert().
#define SizeOfHeapLock (offsetof(xl_heap_lock, flags) + sizeof(int8)) |
Definition at line 282 of file heapam_xlog.h.
Referenced by heap_lock_tuple(), and heap_update().
#define SizeOfHeapLockUpdated (offsetof(xl_heap_lock_updated, flags) + sizeof(uint8)) |
Definition at line 293 of file heapam_xlog.h.
Referenced by heap_lock_updated_tuple_rec().
#define SizeOfHeapMultiInsert offsetof(xl_heap_multi_insert, offsets) |
Definition at line 182 of file heapam_xlog.h.
Referenced by heap_multi_insert().
#define SizeOfHeapNewCid (offsetof(xl_heap_new_cid, target_tid) + sizeof(ItemPointerData)) |
Definition at line 375 of file heapam_xlog.h.
Referenced by log_heap_new_cid().
#define SizeOfHeapTruncate (offsetof(xl_heap_truncate, relids)) |
Definition at line 136 of file heapam_xlog.h.
Referenced by ExecuteTruncateGuts().
#define SizeOfHeapUpdate (offsetof(xl_heap_update, new_offnum) + sizeof(OffsetNumber)) |
Definition at line 227 of file heapam_xlog.h.
Referenced by DecodeUpdate(), and log_heap_update().
#define SizeOfHeapVisible (offsetof(xl_heap_visible, flags) + sizeof(uint8)) |
Definition at line 355 of file heapam_xlog.h.
Referenced by log_heap_visible().
#define SizeOfMultiInsertTuple (offsetof(xl_multi_insert_tuple, t_hoff) + sizeof(uint8)) |
Definition at line 193 of file heapam_xlog.h.
Referenced by DecodeMultiInsert(), heap_multi_insert(), and heap_xlog_multi_insert().
#define XLH_DELETE_ALL_VISIBLE_CLEARED (1<<0) |
Definition at line 96 of file heapam_xlog.h.
Referenced by heap_delete(), and heap_xlog_delete().
#define XLH_DELETE_CONTAINS_OLD (XLH_DELETE_CONTAINS_OLD_TUPLE | XLH_DELETE_CONTAINS_OLD_KEY) |
Definition at line 103 of file heapam_xlog.h.
Referenced by DecodeDelete().
#define XLH_DELETE_CONTAINS_OLD_KEY (1<<2) |
Definition at line 98 of file heapam_xlog.h.
Referenced by heap_delete().
#define XLH_DELETE_CONTAINS_OLD_TUPLE (1<<1) |
Definition at line 97 of file heapam_xlog.h.
Referenced by heap_delete().
#define XLH_DELETE_IS_PARTITION_MOVE (1<<4) |
Definition at line 100 of file heapam_xlog.h.
Referenced by heap_delete(), and heap_xlog_delete().
#define XLH_DELETE_IS_SUPER (1<<3) |
Definition at line 99 of file heapam_xlog.h.
Referenced by DecodeDelete(), heap_abort_speculative(), and heap_xlog_delete().
#define XLH_FREEZE_XVAC 0x02 |
Definition at line 317 of file heapam_xlog.h.
Referenced by heap_execute_freeze_tuple(), and heap_prepare_freeze_tuple().
#define XLH_INSERT_ALL_FROZEN_SET (1<<5) |
Definition at line 73 of file heapam_xlog.h.
Referenced by heap_insert(), heap_multi_insert(), heap_xlog_insert(), and heap_xlog_multi_insert().
#define XLH_INSERT_ALL_VISIBLE_CLEARED (1<<0) |
Definition at line 66 of file heapam_xlog.h.
Referenced by heap_insert(), heap_multi_insert(), heap_xlog_insert(), and heap_xlog_multi_insert().
#define XLH_INSERT_CONTAINS_NEW_TUPLE (1<<3) |
Definition at line 69 of file heapam_xlog.h.
Referenced by DecodeInsert(), DecodeMultiInsert(), heap_insert(), and heap_multi_insert().
#define XLH_INSERT_IS_SPECULATIVE (1<<2) |
Definition at line 68 of file heapam_xlog.h.
Referenced by DecodeInsert(), and heap_insert().
#define XLH_INSERT_LAST_IN_MULTI (1<<1) |
Definition at line 67 of file heapam_xlog.h.
Referenced by DecodeMultiInsert(), and heap_multi_insert().
#define XLH_INSERT_ON_TOAST_RELATION (1<<4) |
Definition at line 70 of file heapam_xlog.h.
Referenced by DecodeInsert(), and heap_insert().
#define XLH_INVALID_XVAC 0x04 |
Definition at line 318 of file heapam_xlog.h.
Referenced by heap_execute_freeze_tuple(), and heap_prepare_freeze_tuple().
#define XLH_LOCK_ALL_FROZEN_CLEARED 0x01 |
Definition at line 271 of file heapam_xlog.h.
Referenced by heap_lock_tuple(), heap_lock_updated_tuple_rec(), heap_update(), heap_xlog_lock(), and heap_xlog_lock_updated().
#define XLH_TRUNCATE_CASCADE (1<<0) |
Definition at line 120 of file heapam_xlog.h.
Referenced by DecodeTruncate(), ExecuteTruncateGuts(), and heap_desc().
#define XLH_TRUNCATE_RESTART_SEQS (1<<1) |
Definition at line 121 of file heapam_xlog.h.
Referenced by DecodeTruncate(), ExecuteTruncateGuts(), and heap_desc().
#define XLH_UPDATE_CONTAINS_NEW_TUPLE (1<<4) |
Definition at line 84 of file heapam_xlog.h.
Referenced by DecodeUpdate(), and log_heap_update().
#define XLH_UPDATE_CONTAINS_OLD (XLH_UPDATE_CONTAINS_OLD_TUPLE | XLH_UPDATE_CONTAINS_OLD_KEY) |
Definition at line 89 of file heapam_xlog.h.
Referenced by DecodeUpdate().
#define XLH_UPDATE_CONTAINS_OLD_KEY (1<<3) |
Definition at line 83 of file heapam_xlog.h.
Referenced by log_heap_update().
#define XLH_UPDATE_CONTAINS_OLD_TUPLE (1<<2) |
Definition at line 82 of file heapam_xlog.h.
Referenced by log_heap_update().
#define XLH_UPDATE_NEW_ALL_VISIBLE_CLEARED (1<<1) |
Definition at line 81 of file heapam_xlog.h.
Referenced by heap_xlog_update(), and log_heap_update().
#define XLH_UPDATE_OLD_ALL_VISIBLE_CLEARED (1<<0) |
Definition at line 79 of file heapam_xlog.h.
Referenced by heap_xlog_update(), and log_heap_update().
#define XLH_UPDATE_PREFIX_FROM_OLD (1<<5) |
Definition at line 85 of file heapam_xlog.h.
Referenced by heap_xlog_update(), and log_heap_update().
#define XLH_UPDATE_SUFFIX_FROM_OLD (1<<6) |
Definition at line 86 of file heapam_xlog.h.
Referenced by heap_xlog_update(), and log_heap_update().
#define XLHL_KEYS_UPDATED 0x10 |
Definition at line 268 of file heapam_xlog.h.
Referenced by compute_infobits(), fix_infomask_from_infobits(), and out_infobits().
#define XLHL_XMAX_EXCL_LOCK 0x04 |
Definition at line 266 of file heapam_xlog.h.
Referenced by compute_infobits(), fix_infomask_from_infobits(), and out_infobits().
#define XLHL_XMAX_IS_MULTI 0x01 |
Definition at line 264 of file heapam_xlog.h.
Referenced by compute_infobits(), fix_infomask_from_infobits(), and out_infobits().
#define XLHL_XMAX_KEYSHR_LOCK 0x08 |
Definition at line 267 of file heapam_xlog.h.
Referenced by compute_infobits(), fix_infomask_from_infobits(), and out_infobits().
#define XLHL_XMAX_LOCK_ONLY 0x02 |
Definition at line 265 of file heapam_xlog.h.
Referenced by compute_infobits(), fix_infomask_from_infobits(), and out_infobits().
#define XLOG_HEAP2_CLEAN 0x10 |
Definition at line 54 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and log_heap_clean().
#define XLOG_HEAP2_CLEANUP_INFO 0x30 |
Definition at line 56 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and log_heap_cleanup_info().
#define XLOG_HEAP2_FREEZE_PAGE 0x20 |
Definition at line 55 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and log_heap_freeze().
#define XLOG_HEAP2_LOCK_UPDATED 0x60 |
Definition at line 59 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and heap_lock_updated_tuple_rec().
#define XLOG_HEAP2_MULTI_INSERT 0x50 |
Definition at line 58 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and heap_multi_insert().
#define XLOG_HEAP2_NEW_CID 0x70 |
Definition at line 60 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and log_heap_new_cid().
#define XLOG_HEAP2_REWRITE 0x00 |
Definition at line 53 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_identify(), heap2_redo(), and logical_heap_rewrite_flush_mappings().
#define XLOG_HEAP2_VISIBLE 0x40 |
Definition at line 57 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), heap2_desc(), heap2_identify(), heap2_redo(), and log_heap_visible().
#define XLOG_HEAP_CONFIRM 0x50 |
Definition at line 37 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_finish_speculative(), heap_identify(), and heap_redo().
#define XLOG_HEAP_DELETE 0x10 |
Definition at line 33 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_abort_speculative(), heap_delete(), heap_desc(), heap_identify(), and heap_redo().
#define XLOG_HEAP_HOT_UPDATE 0x40 |
Definition at line 36 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_identify(), heap_redo(), and log_heap_update().
#define XLOG_HEAP_INIT_PAGE 0x80 |
Definition at line 46 of file heapam_xlog.h.
Referenced by heap2_identify(), heap_identify(), heap_insert(), heap_multi_insert(), heap_xlog_insert(), heap_xlog_multi_insert(), heap_xlog_update(), and log_heap_update().
#define XLOG_HEAP_INPLACE 0x70 |
Definition at line 39 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_identify(), heap_inplace_update(), and heap_redo().
#define XLOG_HEAP_INSERT 0x00 |
Definition at line 32 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_identify(), heap_insert(), and heap_redo().
#define XLOG_HEAP_LOCK 0x60 |
Definition at line 38 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_identify(), heap_lock_tuple(), heap_redo(), and heap_update().
#define XLOG_HEAP_OPMASK 0x70 |
Definition at line 41 of file heapam_xlog.h.
Referenced by DecodeHeap2Op(), DecodeHeapOp(), heap2_desc(), heap2_redo(), heap_desc(), and heap_redo().
#define XLOG_HEAP_TRUNCATE 0x30 |
Definition at line 35 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), ExecuteTruncateGuts(), heap_desc(), heap_identify(), and heap_redo().
#define XLOG_HEAP_UPDATE 0x20 |
Definition at line 34 of file heapam_xlog.h.
Referenced by DecodeHeapOp(), heap_desc(), heap_identify(), heap_redo(), and log_heap_update().
typedef struct xl_heap_clean xl_heap_clean |
typedef struct xl_heap_cleanup_info xl_heap_cleanup_info |
typedef struct xl_heap_confirm xl_heap_confirm |
typedef struct xl_heap_delete xl_heap_delete |
typedef struct xl_heap_freeze_page xl_heap_freeze_page |
typedef struct xl_heap_freeze_tuple xl_heap_freeze_tuple |
typedef struct xl_heap_header xl_heap_header |
typedef struct xl_heap_inplace xl_heap_inplace |
typedef struct xl_heap_insert xl_heap_insert |
typedef struct xl_heap_lock xl_heap_lock |
typedef struct xl_heap_lock_updated xl_heap_lock_updated |
typedef struct xl_heap_multi_insert xl_heap_multi_insert |
typedef struct xl_heap_new_cid xl_heap_new_cid |
typedef struct xl_heap_rewrite_mapping xl_heap_rewrite_mapping |
typedef struct xl_heap_truncate xl_heap_truncate |
typedef struct xl_heap_update xl_heap_update |
typedef struct xl_heap_visible xl_heap_visible |
typedef struct xl_multi_insert_tuple xl_multi_insert_tuple |
void heap2_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 118 of file heapdesc.c.
References appendStringInfo(), xl_heap_new_cid::cmax, xl_heap_new_cid::cmin, xl_heap_new_cid::combocid, xl_heap_freeze_page::cutoff_xid, xl_heap_visible::cutoff_xid, RelFileNode::dbNode, xl_heap_multi_insert::flags, xl_heap_lock_updated::flags, xl_heap_visible::flags, xl_heap_lock_updated::infobits_set, ItemPointerGetBlockNumber, ItemPointerGetOffsetNumber, xl_heap_clean::latestRemovedXid, xl_heap_cleanup_info::latestRemovedXid, xl_heap_multi_insert::ntuples, xl_heap_freeze_page::ntuples, xl_heap_lock_updated::offnum, out_infobits(), RelFileNode::relNode, RelFileNode::spcNode, xl_heap_new_cid::target_node, xl_heap_new_cid::target_tid, XLOG_HEAP2_CLEAN, XLOG_HEAP2_CLEANUP_INFO, XLOG_HEAP2_FREEZE_PAGE, XLOG_HEAP2_LOCK_UPDATED, XLOG_HEAP2_MULTI_INSERT, XLOG_HEAP2_NEW_CID, XLOG_HEAP2_VISIBLE, XLOG_HEAP_OPMASK, XLogRecGetData, XLogRecGetInfo, XLR_INFO_MASK, and xl_heap_lock_updated::xmax.
const char* heap2_identify | ( | uint8 | info | ) |
Definition at line 226 of file heapdesc.c.
References XLOG_HEAP2_CLEAN, XLOG_HEAP2_CLEANUP_INFO, XLOG_HEAP2_FREEZE_PAGE, XLOG_HEAP2_LOCK_UPDATED, XLOG_HEAP2_MULTI_INSERT, XLOG_HEAP2_NEW_CID, XLOG_HEAP2_REWRITE, XLOG_HEAP2_VISIBLE, XLOG_HEAP_INIT_PAGE, and XLR_INFO_MASK.
void heap2_redo | ( | XLogReaderState * | record | ) |
Definition at line 9707 of file heapam.c.
References elog, heap_xlog_clean(), heap_xlog_cleanup_info(), heap_xlog_freeze_page(), heap_xlog_lock_updated(), heap_xlog_logical_rewrite(), heap_xlog_multi_insert(), heap_xlog_visible(), PANIC, XLOG_HEAP2_CLEAN, XLOG_HEAP2_CLEANUP_INFO, XLOG_HEAP2_FREEZE_PAGE, XLOG_HEAP2_LOCK_UPDATED, XLOG_HEAP2_MULTI_INSERT, XLOG_HEAP2_NEW_CID, XLOG_HEAP2_REWRITE, XLOG_HEAP2_VISIBLE, XLOG_HEAP_OPMASK, XLogRecGetInfo, and XLR_INFO_MASK.
void heap_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 35 of file heapdesc.c.
References appendStringInfo(), appendStringInfoString(), xl_heap_delete::flags, xl_heap_truncate::flags, xl_heap_insert::flags, xl_heap_update::flags, xl_heap_lock::flags, i, xl_heap_delete::infobits_set, xl_heap_lock::infobits_set, xl_heap_lock::locking_xid, xl_heap_update::new_offnum, xl_heap_update::new_xmax, xl_heap_truncate::nrelids, xl_heap_delete::offnum, xl_heap_insert::offnum, xl_heap_lock::offnum, xl_heap_confirm::offnum, xl_heap_inplace::offnum, xl_heap_update::old_infobits_set, xl_heap_update::old_offnum, xl_heap_update::old_xmax, out_infobits(), xl_heap_truncate::relids, XLH_TRUNCATE_CASCADE, XLH_TRUNCATE_RESTART_SEQS, XLOG_HEAP_CONFIRM, XLOG_HEAP_DELETE, XLOG_HEAP_HOT_UPDATE, XLOG_HEAP_INPLACE, XLOG_HEAP_INSERT, XLOG_HEAP_LOCK, XLOG_HEAP_OPMASK, XLOG_HEAP_TRUNCATE, XLOG_HEAP_UPDATE, XLogRecGetData, XLogRecGetInfo, and XLR_INFO_MASK.
void heap_execute_freeze_tuple | ( | HeapTupleHeader | tuple, |
xl_heap_freeze_tuple * | xlrec_tp | ||
) |
Definition at line 6653 of file heapam.c.
References FrozenTransactionId, xl_heap_freeze_tuple::frzflags, HeapTupleHeaderSetXmax, HeapTupleHeaderSetXvac, InvalidTransactionId, HeapTupleHeaderData::t_infomask, xl_heap_freeze_tuple::t_infomask, HeapTupleHeaderData::t_infomask2, xl_heap_freeze_tuple::t_infomask2, XLH_FREEZE_XVAC, XLH_INVALID_XVAC, and xl_heap_freeze_tuple::xmax.
Referenced by heap_freeze_tuple(), heap_xlog_freeze_page(), and lazy_scan_heap().
const char* heap_identify | ( | uint8 | info | ) |
Definition at line 181 of file heapdesc.c.
References XLOG_HEAP_CONFIRM, XLOG_HEAP_DELETE, XLOG_HEAP_HOT_UPDATE, XLOG_HEAP_INIT_PAGE, XLOG_HEAP_INPLACE, XLOG_HEAP_INSERT, XLOG_HEAP_LOCK, XLOG_HEAP_TRUNCATE, XLOG_HEAP_UPDATE, and XLR_INFO_MASK.
void heap_mask | ( | char * | pagedata, |
BlockNumber | blkno | ||
) |
Definition at line 9750 of file heapam.c.
References HEAP_XACT_MASK, HEAP_XMAX_COMMITTED, HEAP_XMAX_INVALID, HeapTupleHeaderIsSpeculative, HeapTupleHeaderXminFrozen, ItemIdGetLength, ItemIdGetOffset, ItemIdHasStorage, ItemIdIsNormal, ItemPointerSet, MASK_MARKER, mask_page_hint_bits(), mask_page_lsn_and_checksum(), mask_unused_space(), MAXALIGN, PageGetItemId, PageGetMaxOffsetNumber, and HeapTupleHeaderData::t_infomask.
bool heap_prepare_freeze_tuple | ( | HeapTupleHeader | tuple, |
TransactionId | relfrozenxid, | ||
TransactionId | relminmxid, | ||
TransactionId | cutoff_xid, | ||
TransactionId | cutoff_multi, | ||
xl_heap_freeze_tuple * | frz, | ||
bool * | totally_frozen | ||
) |
Definition at line 6424 of file heapam.c.
References Assert, ereport, errcode(), ERRCODE_DATA_CORRUPTED, errmsg_internal(), ERROR, FreezeMultiXactId(), FRM_INVALIDATE_XMAX, FRM_MARK_COMMITTED, FRM_RETURN_IS_MULTI, FRM_RETURN_IS_XID, xl_heap_freeze_tuple::frzflags, GetMultiXactIdHintBits(), HEAP_HOT_UPDATED, HEAP_KEYS_UPDATED, HEAP_MOVED, HEAP_MOVED_OFF, HEAP_XMAX_BITS, HEAP_XMAX_COMMITTED, HEAP_XMAX_INVALID, HEAP_XMAX_IS_LOCKED_ONLY, HEAP_XMAX_IS_MULTI, HEAP_XMIN_COMMITTED, HEAP_XMIN_FROZEN, HEAP_XMIN_INVALID, HeapTupleHeaderGetRawXmax, HeapTupleHeaderGetXmin, HeapTupleHeaderGetXvac, InvalidTransactionId, HeapTupleHeaderData::t_infomask, xl_heap_freeze_tuple::t_infomask, HeapTupleHeaderData::t_infomask2, xl_heap_freeze_tuple::t_infomask2, TransactionIdDidCommit(), TransactionIdIsNormal, TransactionIdIsValid, TransactionIdPrecedes(), XLH_FREEZE_XVAC, XLH_INVALID_XVAC, and xl_heap_freeze_tuple::xmax.
Referenced by heap_freeze_tuple(), and lazy_scan_heap().
void heap_redo | ( | XLogReaderState * | record | ) |
Definition at line 9661 of file heapam.c.
References elog, heap_xlog_confirm(), heap_xlog_delete(), heap_xlog_inplace(), heap_xlog_insert(), heap_xlog_lock(), heap_xlog_update(), PANIC, XLOG_HEAP_CONFIRM, XLOG_HEAP_DELETE, XLOG_HEAP_HOT_UPDATE, XLOG_HEAP_INPLACE, XLOG_HEAP_INSERT, XLOG_HEAP_LOCK, XLOG_HEAP_OPMASK, XLOG_HEAP_TRUNCATE, XLOG_HEAP_UPDATE, XLogRecGetInfo, and XLR_INFO_MASK.
void heap_xlog_logical_rewrite | ( | XLogReaderState * | r | ) |
Definition at line 1109 of file rewriteheap.c.
References CloseTransientFile(), data_sync_elevel(), ereport, errcode_for_file_access(), errmsg(), ERROR, fd(), ftruncate, LOGICAL_REWRITE_FORMAT, LSN_FORMAT_ARGS, xl_heap_rewrite_mapping::mapped_db, xl_heap_rewrite_mapping::mapped_rel, xl_heap_rewrite_mapping::mapped_xid, MAXPGPATH, xl_heap_rewrite_mapping::num_mappings, xl_heap_rewrite_mapping::offset, OpenTransientFile(), PG_BINARY, pg_fsync(), pg_pwrite(), pgstat_report_wait_end(), pgstat_report_wait_start(), snprintf, xl_heap_rewrite_mapping::start_lsn, WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC, WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE, WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE, XLogRecGetData, and XLogRecGetXid.
Referenced by heap2_redo().
void HeapTupleHeaderAdvanceLatestRemovedXid | ( | HeapTupleHeader | tuple, |
TransactionId * | latestRemovedXid | ||
) |
Definition at line 7201 of file heapam.c.
References HEAP_MOVED, HeapTupleHeaderGetUpdateXid, HeapTupleHeaderGetXmin, HeapTupleHeaderGetXvac, HeapTupleHeaderXminCommitted, HeapTupleHeaderXminInvalid, i, InvalidBlockNumber, ItemPointerGetBlockNumber, MAIN_FORKNUM, PrefetchBuffer(), HeapTupleHeaderData::t_infomask, TM_IndexDelete::tid, TransactionIdDidCommit(), TransactionIdFollows(), and TransactionIdPrecedes().
Referenced by heap_index_delete_tuples(), heap_prune_chain(), and lazy_scan_heap().
XLogRecPtr log_heap_clean | ( | Relation | reln, |
Buffer | buffer, | ||
OffsetNumber * | redirected, | ||
int | nredirected, | ||
OffsetNumber * | nowdead, | ||
int | ndead, | ||
OffsetNumber * | nowunused, | ||
int | nunused, | ||
TransactionId | latestRemovedXid | ||
) |
Definition at line 7984 of file heapam.c.
References Assert, xl_heap_clean::latestRemovedXid, xl_heap_clean::ndead, xl_heap_clean::nredirected, REGBUF_STANDARD, RelationNeedsWAL, SizeOfHeapClean, XLOG_HEAP2_CLEAN, XLogBeginInsert(), XLogInsert(), XLogRegisterBufData(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by heap_page_prune(), and lazy_vacuum_page().
XLogRecPtr log_heap_cleanup_info | ( | RelFileNode | rnode, |
TransactionId | latestRemovedXid | ||
) |
Definition at line 7955 of file heapam.c.
References xl_heap_cleanup_info::latestRemovedXid, xl_heap_cleanup_info::node, SizeOfHeapCleanupInfo, XLOG_HEAP2_CLEANUP_INFO, XLogBeginInsert(), XLogInsert(), and XLogRegisterData().
Referenced by vacuum_log_cleanup_info().
XLogRecPtr log_heap_freeze | ( | Relation | reln, |
Buffer | buffer, | ||
TransactionId | cutoff_xid, | ||
xl_heap_freeze_tuple * | tuples, | ||
int | ntuples | ||
) |
Definition at line 8035 of file heapam.c.
References Assert, xl_heap_freeze_page::cutoff_xid, xl_heap_freeze_page::ntuples, REGBUF_STANDARD, RelationNeedsWAL, SizeOfHeapFreezePage, XLOG_HEAP2_FREEZE_PAGE, XLogBeginInsert(), XLogInsert(), XLogRegisterBufData(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by lazy_scan_heap().
XLogRecPtr log_heap_visible | ( | RelFileNode | rnode, |
Buffer | heap_buffer, | ||
Buffer | vm_buffer, | ||
TransactionId | cutoff_xid, | ||
uint8 | flags | ||
) |
Definition at line 8076 of file heapam.c.
References Assert, BufferIsValid, xl_heap_visible::cutoff_xid, xl_heap_visible::flags, REGBUF_NO_IMAGE, REGBUF_STANDARD, SizeOfHeapVisible, XLOG_HEAP2_VISIBLE, XLogBeginInsert(), XLogHintBitIsNeeded, XLogInsert(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by visibilitymap_set().