PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | MultiXactMember |
struct | xl_multixact_create |
struct | xl_multixact_truncate |
Macros | |
#define | InvalidMultiXactId ((MultiXactId) 0) |
#define | FirstMultiXactId ((MultiXactId) 1) |
#define | MaxMultiXactId ((MultiXactId) 0xFFFFFFFF) |
#define | MultiXactIdIsValid(multi) ((multi) != InvalidMultiXactId) |
#define | MaxMultiXactOffset ((MultiXactOffset) 0xFFFFFFFF) |
#define | MaxMultiXactStatus MultiXactStatusUpdate |
#define | ISUPDATE_from_mxstatus(status) ((status) > MultiXactStatusForUpdate) |
#define | XLOG_MULTIXACT_ZERO_OFF_PAGE 0x00 |
#define | XLOG_MULTIXACT_ZERO_MEM_PAGE 0x10 |
#define | XLOG_MULTIXACT_CREATE_ID 0x20 |
#define | XLOG_MULTIXACT_TRUNCATE_ID 0x30 |
#define | SizeOfMultiXactCreate (offsetof(xl_multixact_create, members)) |
#define | SizeOfMultiXactTruncate (sizeof(xl_multixact_truncate)) |
Typedefs | |
typedef struct MultiXactMember | MultiXactMember |
typedef struct xl_multixact_create | xl_multixact_create |
typedef struct xl_multixact_truncate | xl_multixact_truncate |
Enumerations | |
enum | MultiXactStatus { MultiXactStatusForKeyShare = 0x00 , MultiXactStatusForShare = 0x01 , MultiXactStatusForNoKeyUpdate = 0x02 , MultiXactStatusForUpdate = 0x03 , MultiXactStatusNoKeyUpdate = 0x04 , MultiXactStatusUpdate = 0x05 } |
#define FirstMultiXactId ((MultiXactId) 1) |
Definition at line 25 of file multixact.h.
#define InvalidMultiXactId ((MultiXactId) 0) |
Definition at line 24 of file multixact.h.
#define ISUPDATE_from_mxstatus | ( | status | ) | ((status) > MultiXactStatusForUpdate) |
Definition at line 52 of file multixact.h.
#define MaxMultiXactId ((MultiXactId) 0xFFFFFFFF) |
Definition at line 26 of file multixact.h.
#define MaxMultiXactOffset ((MultiXactOffset) 0xFFFFFFFF) |
Definition at line 30 of file multixact.h.
#define MaxMultiXactStatus MultiXactStatusUpdate |
Definition at line 49 of file multixact.h.
#define MultiXactIdIsValid | ( | multi | ) | ((multi) != InvalidMultiXactId) |
Definition at line 28 of file multixact.h.
#define SizeOfMultiXactCreate (offsetof(xl_multixact_create, members)) |
Definition at line 81 of file multixact.h.
#define SizeOfMultiXactTruncate (sizeof(xl_multixact_truncate)) |
Definition at line 96 of file multixact.h.
#define XLOG_MULTIXACT_CREATE_ID 0x20 |
Definition at line 70 of file multixact.h.
#define XLOG_MULTIXACT_TRUNCATE_ID 0x30 |
Definition at line 71 of file multixact.h.
#define XLOG_MULTIXACT_ZERO_MEM_PAGE 0x10 |
Definition at line 69 of file multixact.h.
#define XLOG_MULTIXACT_ZERO_OFF_PAGE 0x00 |
Definition at line 68 of file multixact.h.
typedef struct MultiXactMember MultiXactMember |
typedef struct xl_multixact_create xl_multixact_create |
typedef struct xl_multixact_truncate xl_multixact_truncate |
enum MultiXactStatus |
Enumerator | |
---|---|
MultiXactStatusForKeyShare | |
MultiXactStatusForShare | |
MultiXactStatusForNoKeyUpdate | |
MultiXactStatusForUpdate | |
MultiXactStatusNoKeyUpdate | |
MultiXactStatusUpdate |
Definition at line 37 of file multixact.h.
void AtEOXact_MultiXact | ( | void | ) |
Definition at line 1808 of file multixact.c.
References dclist_init(), InvalidMultiXactId, MXactCache, MXactContext, MyProcNumber, OldestMemberMXactId, and OldestVisibleMXactId.
Referenced by AbortTransaction(), CommitTransaction(), and test_read_multixact().
void AtPrepare_MultiXact | ( | void | ) |
Definition at line 1836 of file multixact.c.
References MultiXactIdIsValid, MyProcNumber, OldestMemberMXactId, RegisterTwoPhaseRecord(), and TWOPHASE_RM_MULTIXACT_ID.
Referenced by PrepareTransaction().
void BootStrapMultiXact | ( | void | ) |
Definition at line 2034 of file multixact.c.
References Assert, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MultiXactMemberCtl, MultiXactOffsetCtl, SimpleLruGetBankLock(), SimpleLruWritePage(), ZeroMultiXactMemberPage(), and ZeroMultiXactOffsetPage().
Referenced by BootStrapXLOG().
void CheckPointMultiXact | ( | void | ) |
Definition at line 2304 of file multixact.c.
References MultiXactMemberCtl, MultiXactOffsetCtl, and SimpleLruWriteAll().
Referenced by CheckPointGuts().
int GetMultiXactIdMembers | ( | MultiXactId | multi, |
MultiXactMember ** | members, | ||
bool | from_pgupgrade, | ||
bool | isLockOnly | ||
) |
Definition at line 1299 of file multixact.c.
References Assert, CHECK_FOR_INTERRUPTS, ConditionVariableCancelSleep(), ConditionVariableSleep(), DEBUG2, debug_elog2, debug_elog3, ereport, errcode(), errmsg(), ERROR, FirstMultiXactId, i, if(), INJECTION_POINT, LW_EXCLUSIVE, LW_SHARED, LWLockAcquire(), LWLockRelease(), MultiXactIdIsValid, MultiXactIdPrecedes(), MultiXactIdSetOldestVisible(), MultiXactIdToOffsetEntry(), MultiXactIdToOffsetPage(), MultiXactMemberCtl, MultiXactOffsetCtl, MultiXactState, MXACT_MEMBER_XACT_BITMASK, mXactCacheGetById(), mXactCachePut(), mxid_to_string(), MXOffsetToFlagsBitShift(), MXOffsetToFlagsOffset(), MXOffsetToMemberOffset(), MXOffsetToMemberPage(), MyProcNumber, MultiXactStateData::nextMXact, MultiXactStateData::nextoff_cv, MultiXactStateData::nextOffset, MultiXactStateData::oldestMultiXactId, OldestVisibleMXactId, palloc(), SimpleLruGetBankLock(), SimpleLruReadPage(), MultiXactMember::status, TransactionIdIsValid, and MultiXactMember::xid.
Referenced by Do_MultiXactIdWait(), DoesMultiXactIdConflict(), FreezeMultiXactId(), GetMultiXactIdHintBits(), heap_lock_tuple(), heap_lock_updated_tuple_rec(), heap_tuple_should_freeze(), MultiXactIdExpand(), MultiXactIdGetUpdateXid(), MultiXactIdIsRunning(), pg_get_multixact_members(), pgrowlocks(), and test_read_multixact().
MultiXactId GetOldestMultiXactId | ( | void | ) |
Definition at line 2660 of file multixact.c.
References FirstMultiXactId, i, LW_SHARED, LWLockAcquire(), LWLockRelease(), MaxOldestSlot, MultiXactIdIsValid, MultiXactIdPrecedes(), MultiXactState, MultiXactStateData::nextMXact, OldestMemberMXactId, and OldestVisibleMXactId.
Referenced by heapam_relation_set_new_filelocator(), vac_update_datfrozenxid(), and vacuum_get_cutoffs().
void multixact_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 50 of file mxactdesc.c.
References appendStringInfo(), buf, xl_multixact_truncate::endTruncMemb, xl_multixact_truncate::endTruncOff, i, xl_multixact_create::members, xl_multixact_create::mid, xl_multixact_create::moff, xl_multixact_create::nmembers, out_member(), xl_multixact_truncate::startTruncMemb, xl_multixact_truncate::startTruncOff, XLOG_MULTIXACT_CREATE_ID, XLOG_MULTIXACT_TRUNCATE_ID, XLOG_MULTIXACT_ZERO_MEM_PAGE, XLOG_MULTIXACT_ZERO_OFF_PAGE, XLogRecGetData, XLogRecGetInfo, and XLR_INFO_MASK.
const char* multixact_identify | ( | uint8 | info | ) |
Definition at line 84 of file mxactdesc.c.
References XLOG_MULTIXACT_CREATE_ID, XLOG_MULTIXACT_TRUNCATE_ID, XLOG_MULTIXACT_ZERO_MEM_PAGE, XLOG_MULTIXACT_ZERO_OFF_PAGE, and XLR_INFO_MASK.
void multixact_redo | ( | XLogReaderState * | record | ) |
Definition at line 3394 of file multixact.c.
References AdvanceNextFullTransactionIdPastXid(), Assert, DEBUG1, elog, xl_multixact_truncate::endTruncMemb, xl_multixact_truncate::endTruncOff, i, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), xl_multixact_create::members, xl_multixact_create::mid, xl_multixact_create::moff, MultiXactAdvanceNextMXact(), MultiXactIdToOffsetPage(), MultiXactIdToOffsetSegment(), MultiXactMemberCtl, MultiXactOffsetCtl, MXOffsetToMemberSegment(), xl_multixact_create::nmembers, xl_multixact_truncate::oldestMultiDB, PANIC, PerformMembersTruncation(), PerformOffsetsTruncation(), pg_atomic_write_u64(), RecordNewMultiXact(), SetMultiXactIdLimit(), SimpleLruGetBankLock(), SimpleLruWritePage(), SizeOfMultiXactTruncate, xl_multixact_truncate::startTruncMemb, xl_multixact_truncate::startTruncOff, TransactionIdPrecedes(), MultiXactMember::xid, XLOG_MULTIXACT_CREATE_ID, XLOG_MULTIXACT_TRUNCATE_ID, XLOG_MULTIXACT_ZERO_MEM_PAGE, XLOG_MULTIXACT_ZERO_OFF_PAGE, XLogRecGetData, XLogRecGetInfo, XLogRecGetXid, XLogRecHasAnyBlockRefs, XLR_INFO_MASK, ZeroMultiXactMemberPage(), and ZeroMultiXactOffsetPage().
void multixact_twophase_postabort | ( | TransactionId | xid, |
uint16 | info, | ||
void * | recdata, | ||
uint32 | len | ||
) |
Definition at line 1935 of file multixact.c.
References len, and multixact_twophase_postcommit().
void multixact_twophase_postcommit | ( | TransactionId | xid, |
uint16 | info, | ||
void * | recdata, | ||
uint32 | len | ||
) |
Definition at line 1920 of file multixact.c.
References Assert, InvalidMultiXactId, len, OldestMemberMXactId, and TwoPhaseGetDummyProcNumber().
Referenced by multixact_twophase_postabort().
void multixact_twophase_recover | ( | TransactionId | xid, |
uint16 | info, | ||
void * | recdata, | ||
uint32 | len | ||
) |
Definition at line 1899 of file multixact.c.
References Assert, len, OldestMemberMXactId, and TwoPhaseGetDummyProcNumber().
void MultiXactAdvanceNextMXact | ( | MultiXactId | minMulti, |
MultiXactOffset | minMultiOffset | ||
) |
Definition at line 2511 of file multixact.c.
References DEBUG2, debug_elog3, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MultiXactIdPrecedes(), MultiXactOffsetPrecedes(), MultiXactState, MultiXactStateData::nextMXact, and MultiXactStateData::nextOffset.
Referenced by multixact_redo(), and xlog_redo().
void MultiXactAdvanceOldest | ( | MultiXactId | oldestMulti, |
Oid | oldestMultiDB | ||
) |
Definition at line 2536 of file multixact.c.
References Assert, InRecovery, MultiXactIdPrecedes(), MultiXactState, MultiXactStateData::oldestMultiXactId, and SetMultiXactIdLimit().
Referenced by xlog_redo().
void MultiXactGetCheckptMulti | ( | bool | is_shutdown, |
MultiXactId * | nextMulti, | ||
MultiXactOffset * | nextMultiOffset, | ||
MultiXactId * | oldestMulti, | ||
Oid * | oldestMultiDB | ||
) |
Definition at line 2282 of file multixact.c.
References DEBUG2, debug_elog6, LW_SHARED, LWLockAcquire(), LWLockRelease(), MultiXactState, MultiXactStateData::nextMXact, MultiXactStateData::nextOffset, MultiXactStateData::oldestMultiXactDB, and MultiXactStateData::oldestMultiXactId.
Referenced by CreateCheckPoint().
MultiXactId MultiXactIdCreate | ( | TransactionId | xid1, |
MultiXactStatus | status1, | ||
TransactionId | xid2, | ||
MultiXactStatus | status2 | ||
) |
Definition at line 434 of file multixact.c.
References Assert, DEBUG2, debug_elog3, MultiXactIdCreateFromMembers(), MultiXactIdIsValid, mxid_to_string(), MyProcNumber, OldestMemberMXactId, MultiXactMember::status, TransactionIdEquals, TransactionIdIsValid, and MultiXactMember::xid.
Referenced by compute_new_xmax_infomask(), and test_create_multixact().
MultiXactId MultiXactIdCreateFromMembers | ( | int | nmembers, |
MultiXactMember * | members | ||
) |
Definition at line 815 of file multixact.c.
References DEBUG2, debug_elog2, debug_elog3, elog, END_CRIT_SECTION, ERROR, GetNewMultiXactId(), i, INJECTION_POINT_CACHED, INJECTION_POINT_LOAD, InvalidMultiXactId, ISUPDATE_from_mxstatus, xl_multixact_create::mid, xl_multixact_create::moff, MultiXactIdIsValid, mXactCacheGetBySet(), mXactCachePut(), mxid_to_string(), xl_multixact_create::nmembers, RecordNewMultiXact(), SizeOfMultiXactCreate, XLOG_MULTIXACT_CREATE_ID, XLogBeginInsert(), XLogInsert(), and XLogRegisterData().
Referenced by FreezeMultiXactId(), MultiXactIdCreate(), and MultiXactIdExpand().
MultiXactId MultiXactIdExpand | ( | MultiXactId | multi, |
TransactionId | xid, | ||
MultiXactStatus | status | ||
) |
Definition at line 487 of file multixact.c.
References Assert, DEBUG2, debug_elog3, debug_elog4, debug_elog5, GetMultiXactIdMembers(), i, ISUPDATE_from_mxstatus, j, MultiXactIdCreateFromMembers(), MultiXactIdIsValid, mxstatus_to_string(), MyProcNumber, OldestMemberMXactId, palloc(), pfree(), MultiXactMember::status, TransactionIdDidCommit(), TransactionIdEquals, TransactionIdIsInProgress(), TransactionIdIsValid, and MultiXactMember::xid.
Referenced by compute_new_xmax_infomask().
bool MultiXactIdIsRunning | ( | MultiXactId | multi, |
bool | isLockOnly | ||
) |
Definition at line 599 of file multixact.c.
References DEBUG2, debug_elog2, debug_elog3, debug_elog4, GetMultiXactIdMembers(), i, pfree(), TransactionIdIsCurrentTransactionId(), and TransactionIdIsInProgress().
Referenced by compute_new_xmax_infomask(), FreezeMultiXactId(), HeapTupleSatisfiesUpdate(), and HeapTupleSatisfiesVacuumHorizon().
bool MultiXactIdPrecedes | ( | MultiXactId | multi1, |
MultiXactId | multi2 | ||
) |
Definition at line 3317 of file multixact.c.
Referenced by check_mxid_in_range(), copy_table_data(), do_start_worker(), FreezeMultiXactId(), GetMultiXactIdMembers(), GetNewMultiXactId(), GetOldestMultiXactId(), heap_prepare_freeze_tuple(), heap_tuple_should_freeze(), MultiXactAdvanceNextMXact(), MultiXactAdvanceOldest(), MultiXactIdSetOldestVisible(), MultiXactOffsetPagePrecedes(), relation_needs_vacanalyze(), SetMultiXactIdLimit(), TruncateMultiXact(), vac_truncate_clog(), vac_update_datfrozenxid(), vac_update_relstats(), vacuum_get_cutoffs(), and vacuum_xid_failsafe_check().
bool MultiXactIdPrecedesOrEquals | ( | MultiXactId | multi1, |
MultiXactId | multi2 | ||
) |
Definition at line 3331 of file multixact.c.
Referenced by check_mxid_in_range(), heap_tuple_should_freeze(), heap_vacuum_rel(), TruncateMultiXact(), and vacuum_get_cutoffs().
void MultiXactIdSetOldestMember | ( | void | ) |
Definition at line 673 of file multixact.c.
References DEBUG2, debug_elog4, FirstMultiXactId, LW_SHARED, LWLockAcquire(), LWLockRelease(), MultiXactIdIsValid, MultiXactState, MyProcNumber, MultiXactStateData::nextMXact, and OldestMemberMXactId.
Referenced by heap_delete(), heap_lock_tuple(), heap_lock_updated_tuple(), heap_update(), and test_create_multixact().
int MultiXactMemberFreezeThreshold | ( | void | ) |
Definition at line 2978 of file multixact.c.
References autovacuum_multixact_freeze_max_age, Min, MULTIXACT_MEMBER_DANGER_THRESHOLD, MULTIXACT_MEMBER_SAFE_THRESHOLD, and ReadMultiXactCounts().
Referenced by do_autovacuum(), do_start_worker(), and vacuum_get_cutoffs().
int multixactmemberssyncfiletag | ( | const FileTag * | ftag, |
char * | path | ||
) |
Definition at line 3584 of file multixact.c.
References MultiXactMemberCtl, and SlruSyncFileTag().
int multixactoffsetssyncfiletag | ( | const FileTag * | ftag, |
char * | path | ||
) |
Definition at line 3575 of file multixact.c.
References MultiXactOffsetCtl, and SlruSyncFileTag().
void MultiXactSetNextMXact | ( | MultiXactId | nextMulti, |
MultiXactOffset | nextMultiOffset | ||
) |
Definition at line 2328 of file multixact.c.
References DEBUG2, debug_elog4, IsBinaryUpgrade, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MaybeExtendOffsetSlru(), MultiXactState, MultiXactStateData::nextMXact, and MultiXactStateData::nextOffset.
Referenced by BootStrapXLOG(), StartupXLOG(), and xlog_redo().
void MultiXactShmemInit | ( | void | ) |
Definition at line 1964 of file multixact.c.
References Assert, ConditionVariableInit(), DEBUG2, debug_elog2, IsUnderPostmaster, LWTRANCHE_MULTIXACTMEMBER_BUFFER, LWTRANCHE_MULTIXACTMEMBER_SLRU, LWTRANCHE_MULTIXACTOFFSET_BUFFER, LWTRANCHE_MULTIXACTOFFSET_SLRU, MaxOldestSlot, MemSet, multixact_member_buffers, multixact_offset_buffers, MULTIXACT_OFFSETS_PER_PAGE, MultiXactMemberCtl, MultiXactMemberPagePrecedes(), MultiXactOffsetCtl, MultiXactOffsetPagePrecedes(), MultiXactState, MultiXactStateData::nextoff_cv, OldestMemberMXactId, OldestVisibleMXactId, MultiXactStateData::perBackendXactIds, SHARED_MULTIXACT_STATE_SIZE, ShmemInitStruct(), SimpleLruInit(), SlruPagePrecedesUnitTests, SYNC_HANDLER_MULTIXACT_MEMBER, and SYNC_HANDLER_MULTIXACT_OFFSET.
Referenced by CreateOrAttachShmemStructs().
Size MultiXactShmemSize | ( | void | ) |
Definition at line 1947 of file multixact.c.
References add_size(), multixact_member_buffers, multixact_offset_buffers, SHARED_MULTIXACT_STATE_SIZE, SimpleLruShmemSize(), and size.
Referenced by CalculateShmemSize().
char* mxid_to_string | ( | MultiXactId | multi, |
int | nmembers, | ||
MultiXactMember * | members | ||
) |
Definition at line 1777 of file multixact.c.
References appendStringInfo(), appendStringInfoChar(), buf, i, initStringInfo(), MemoryContextStrdup(), mxstatus_to_string(), pfree(), str, and TopMemoryContext.
Referenced by GetMultiXactIdMembers(), MultiXactIdCreate(), MultiXactIdCreateFromMembers(), mXactCacheGetById(), mXactCacheGetBySet(), and mXactCachePut().
void PostPrepare_MultiXact | ( | TransactionId | xid | ) |
Definition at line 1850 of file multixact.c.
References dclist_init(), InvalidMultiXactId, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MultiXactIdIsValid, MXactCache, MXactContext, MyProcNumber, OldestMemberMXactId, OldestVisibleMXactId, and TwoPhaseGetDummyProcNumber().
Referenced by PrepareTransaction().
void ReadMultiXactIdRange | ( | MultiXactId * | oldest, |
MultiXactId * | next | ||
) |
Definition at line 791 of file multixact.c.
References FirstMultiXactId, LW_SHARED, LWLockAcquire(), LWLockRelease(), MultiXactState, next, MultiXactStateData::nextMXact, and MultiXactStateData::oldestMultiXactId.
Referenced by update_cached_mxid_range().
MultiXactId ReadNextMultiXactId | ( | void | ) |
Definition at line 771 of file multixact.c.
References FirstMultiXactId, LW_SHARED, LWLockAcquire(), LWLockRelease(), MultiXactState, and MultiXactStateData::nextMXact.
Referenced by ATRewriteTables(), AutoVacWorkerMain(), do_start_worker(), mxid_age(), refresh_by_heap_swap(), vac_update_datfrozenxid(), vac_update_relstats(), vacuum_get_cutoffs(), and vacuum_xid_failsafe_check().
void SetMultiXactIdLimit | ( | MultiXactId | oldest_datminmxid, |
Oid | oldest_datoid, | ||
bool | is_startup | ||
) |
Definition at line 2362 of file multixact.c.
References Assert, autovacuum_multixact_freeze_max_age, DEBUG1, ereport, errhint(), errmsg_internal(), errmsg_plural(), MultiXactStateData::finishedStartup, FirstMultiXactId, get_database_name(), InRecovery, IsTransactionState(), IsUnderPostmaster, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MaxMultiXactId, MultiXactStateData::multiStopLimit, MultiXactStateData::multiVacLimit, MultiXactStateData::multiWarnLimit, MultiXactStateData::multiWrapLimit, MultiXactIdIsValid, MultiXactIdPrecedes(), MultiXactState, MultiXactStateData::nextMXact, MultiXactStateData::oldestMultiXactDB, MultiXactStateData::oldestMultiXactId, PMSIGNAL_START_AUTOVAC_LAUNCHER, SendPostmasterSignal(), SetOffsetVacuumLimit(), and WARNING.
Referenced by BootStrapXLOG(), multixact_redo(), MultiXactAdvanceOldest(), StartupXLOG(), TrimMultiXact(), and vac_truncate_clog().
void StartupMultiXact | ( | void | ) |
Definition at line 2153 of file multixact.c.
References MultiXactIdToOffsetPage(), MultiXactMemberCtl, MultiXactOffsetCtl, MultiXactState, MXOffsetToMemberPage(), MultiXactStateData::nextMXact, MultiXactStateData::nextOffset, and pg_atomic_write_u64().
Referenced by StartupXLOG().
void TrimMultiXact | ( | void | ) |
Definition at line 2178 of file multixact.c.
References MultiXactStateData::finishedStartup, LW_EXCLUSIVE, LW_SHARED, LWLockAcquire(), LWLockRelease(), MemSet, MultiXactIdToOffsetEntry(), MultiXactIdToOffsetPage(), MultiXactMemberCtl, MultiXactOffsetCtl, MultiXactState, MXOffsetToFlagsOffset(), MXOffsetToMemberOffset(), MXOffsetToMemberPage(), MultiXactStateData::nextMXact, MultiXactStateData::nextOffset, MultiXactStateData::oldestMultiXactDB, MultiXactStateData::oldestMultiXactId, pg_atomic_write_u64(), SetMultiXactIdLimit(), SimpleLruGetBankLock(), and SimpleLruReadPage().
Referenced by StartupXLOG().
void TruncateMultiXact | ( | MultiXactId | newOldestMulti, |
Oid | newOldestMultiDB | ||
) |
Definition at line 3102 of file multixact.c.
References Assert, DEBUG1, DELAY_CHKPT_START, PGPROC::delayChkptFlags, mxtruncinfo::earliestExistingPage, elog, END_CRIT_SECTION, ereport, errmsg(), find_multixact_start(), MultiXactStateData::finishedStartup, FirstMultiXactId, LOG, LW_EXCLUSIVE, LW_SHARED, LWLockAcquire(), LWLockRelease(), MULTIXACT_OFFSETS_PER_PAGE, MultiXactIdIsValid, MultiXactIdPrecedes(), MultiXactIdPrecedesOrEquals(), MultiXactIdToOffsetSegment(), MultiXactOffsetCtl, MultiXactState, MXOffsetToMemberSegment(), MyProc, MultiXactStateData::nextMXact, MultiXactStateData::nextOffset, MultiXactStateData::oldestMultiXactDB, MultiXactStateData::oldestMultiXactId, PerformMembersTruncation(), PerformOffsetsTruncation(), RecoveryInProgress(), SlruScanDirCbFindEarliest(), SlruScanDirectory(), START_CRIT_SECTION, and WriteMTruncateXlogRec().
Referenced by vac_truncate_clog().