PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "access/clog.h"
#include "access/subtrans.h"
#include "access/transam.h"
#include "utils/snapmgr.h"
Go to the source code of this file.
Functions | |
static XidStatus | TransactionLogFetch (TransactionId transactionId) |
bool | TransactionIdDidCommit (TransactionId transactionId) |
bool | TransactionIdDidAbort (TransactionId transactionId) |
bool | TransactionIdIsKnownCompleted (TransactionId transactionId) |
void | TransactionIdCommitTree (TransactionId xid, int nxids, TransactionId *xids) |
void | TransactionIdAsyncCommitTree (TransactionId xid, int nxids, TransactionId *xids, XLogRecPtr lsn) |
void | TransactionIdAbortTree (TransactionId xid, int nxids, TransactionId *xids) |
bool | TransactionIdPrecedes (TransactionId id1, TransactionId id2) |
bool | TransactionIdPrecedesOrEquals (TransactionId id1, TransactionId id2) |
bool | TransactionIdFollows (TransactionId id1, TransactionId id2) |
bool | TransactionIdFollowsOrEquals (TransactionId id1, TransactionId id2) |
TransactionId | TransactionIdLatest (TransactionId mainxid, int nxids, const TransactionId *xids) |
XLogRecPtr | TransactionIdGetCommitLSN (TransactionId xid) |
Variables | |
static TransactionId | cachedFetchXid = InvalidTransactionId |
static XidStatus | cachedFetchXidStatus |
static XLogRecPtr | cachedCommitLSN |
void TransactionIdAbortTree | ( | TransactionId | xid, |
int | nxids, | ||
TransactionId * | xids | ||
) |
Definition at line 290 of file transam.c.
References InvalidXLogRecPtr, TRANSACTION_STATUS_ABORTED, and TransactionIdSetTreeStatus().
Referenced by RecordTransactionAbort(), RecordTransactionAbortPrepared(), and xact_redo_abort().
void TransactionIdAsyncCommitTree | ( | TransactionId | xid, |
int | nxids, | ||
TransactionId * | xids, | ||
XLogRecPtr | lsn | ||
) |
Definition at line 272 of file transam.c.
References TRANSACTION_STATUS_COMMITTED, and TransactionIdSetTreeStatus().
Referenced by RecordTransactionCommit(), and xact_redo_commit().
void TransactionIdCommitTree | ( | TransactionId | xid, |
int | nxids, | ||
TransactionId * | xids | ||
) |
Definition at line 260 of file transam.c.
References InvalidXLogRecPtr, TRANSACTION_STATUS_COMMITTED, and TransactionIdSetTreeStatus().
Referenced by RecordTransactionCommit(), RecordTransactionCommitPrepared(), and xact_redo_commit().
bool TransactionIdDidAbort | ( | TransactionId | transactionId | ) |
Definition at line 181 of file transam.c.
References elog, SubTransGetParent(), TRANSACTION_STATUS_ABORTED, TRANSACTION_STATUS_SUB_COMMITTED, TransactionIdDidAbort(), TransactionIdIsValid, TransactionIdPrecedes(), TransactionLogFetch(), TransactionXmin, and WARNING.
Referenced by DoesMultiXactIdConflict(), get_xid_status(), heap_lock_updated_tuple_rec(), heap_update(), pg_xact_status(), ProcArrayApplyRecoveryInfo(), ProcessTwoPhaseBuffer(), StandbyAcquireAccessExclusiveLock(), test_lockmode_for_conflict(), TransactionIdDidAbort(), and TransactionIdIsInProgress().
bool TransactionIdDidCommit | ( | TransactionId | transactionId | ) |
Definition at line 125 of file transam.c.
References elog, SubTransGetParent(), TRANSACTION_STATUS_COMMITTED, TRANSACTION_STATUS_SUB_COMMITTED, TransactionIdDidCommit(), TransactionIdIsValid, TransactionIdPrecedes(), TransactionLogFetch(), TransactionXmin, and WARNING.
Referenced by asyncQueueProcessPageEntries(), check_safe_enum_use(), compute_new_xmax_infomask(), FreezeMultiXactId(), get_xid_status(), HandleConcurrentAbort(), heap_prepare_freeze_tuple(), HeapTupleHeaderAdvanceLatestRemovedXid(), HeapTupleHeaderIsOnlyLocked(), HeapTupleSatisfiesDirty(), HeapTupleSatisfiesHistoricMVCC(), HeapTupleSatisfiesMVCC(), HeapTupleSatisfiesSelf(), HeapTupleSatisfiesToast(), HeapTupleSatisfiesUpdate(), HeapTupleSatisfiesVacuumHorizon(), MultiXactIdExpand(), pg_xact_status(), ProcArrayApplyRecoveryInfo(), ProcessTwoPhaseBuffer(), RecordTransactionAbort(), RecordTransactionAbortPrepared(), SetupCheckXidLive(), StandbyAcquireAccessExclusiveLock(), test_lockmode_for_conflict(), TransactionIdDidCommit(), UpdateLogicalMappings(), and UpdateXmaxHintBits().
bool TransactionIdFollows | ( | TransactionId | id1, |
TransactionId | id2 | ||
) |
Definition at line 334 of file transam.c.
References TransactionIdIsNormal.
Referenced by GetConflictingVirtualXIDs(), GetSerializableTransactionSnapshotInt(), heap_page_is_all_visible(), HeapTupleHeaderAdvanceLatestRemovedXid(), lazy_scan_heap(), MaintainOldSnapshotTimeMapping(), predicatelock_twophase_recover(), ProcessTwoPhaseBuffer(), RecordKnownAssignedTransactionIds(), SerialAdd(), SerialGetMinConflictCommitSeqNo(), SerialSetActiveSerXmin(), SnapBuildWaitSnapshot(), SubTransSetParent(), TransactionIdLimitedForOldSnapshots(), and xmin_cmp().
bool TransactionIdFollowsOrEquals | ( | TransactionId | id1, |
TransactionId | id2 | ||
) |
Definition at line 349 of file transam.c.
References TransactionIdIsNormal.
Referenced by AdvanceNextFullTransactionIdPastXid(), ForceTransactionIdLimitUpdate(), GetNewObjectId(), GetNewTransactionId(), HeapCheckForSerializableConflictOut(), HeapTupleSatisfiesHistoricMVCC(), KnownAssignedXidsAdd(), KnownAssignedXidsGetAndSetXmin(), KnownAssignedXidsRemovePreceding(), ProcessTwoPhaseBuffer(), SetTransactionIdLimit(), SlruMayDeleteSegment(), SnapBuildCommitTxn(), SubTransGetParent(), SubTransGetTopmostTransaction(), TransactionIdLimitedForOldSnapshots(), vacuumLeafPage(), XidInMVCCSnapshot(), and XidIsConcurrent().
XLogRecPtr TransactionIdGetCommitLSN | ( | TransactionId | xid | ) |
Definition at line 402 of file transam.c.
References cachedCommitLSN, cachedFetchXid, InvalidXLogRecPtr, TransactionIdEquals, TransactionIdGetStatus(), and TransactionIdIsNormal.
Referenced by SetHintBits().
bool TransactionIdIsKnownCompleted | ( | TransactionId | transactionId | ) |
Definition at line 238 of file transam.c.
References cachedFetchXid, and TransactionIdEquals.
Referenced by TransactionIdIsInProgress().
TransactionId TransactionIdLatest | ( | TransactionId | mainxid, |
int | nxids, | ||
const TransactionId * | xids | ||
) |
Definition at line 365 of file transam.c.
References TransactionIdPrecedes().
Referenced by FinishPreparedTransaction(), ProcArrayApplyXidAssignment(), RecordTransactionAbort(), RecordTransactionCommit(), xact_redo_abort(), and xact_redo_commit().
bool TransactionIdPrecedes | ( | TransactionId | id1, |
TransactionId | id2 | ||
) |
Definition at line 300 of file transam.c.
References TransactionIdIsNormal.
Referenced by AdvanceOldestClogXid(), AdvanceOldestCommitTsXid(), bt_check_every_level(), check_exclusion_or_unique_constraint(), CheckTargetForConflictsIn(), CLOGPagePrecedes(), collect_corrupt_items(), CommitTsPagePrecedes(), copy_table_data(), do_start_worker(), ExportSnapshot(), FreezeMultiXactId(), get_relation_info(), GetOldestActiveTransactionId(), GetOldestSafeDecodingTransactionId(), GetRunningTransactionData(), heap_abort_speculative(), heap_page_is_all_visible(), heap_page_prune_opt(), heap_prepare_freeze_tuple(), heap_prune_record_prunable(), heap_prune_satisfies_vacuum(), heap_tuple_needs_freeze(), HeapCheckForSerializableConflictOut(), HeapTupleHeaderAdvanceLatestRemovedXid(), HeapTupleSatisfiesHistoricMVCC(), HeapTupleSatisfiesVacuum(), KnownAssignedXidsAdd(), KnownAssignedXidsGetAndSetXmin(), KnownAssignedXidsSearch(), lazy_scan_heap(), logical_rewrite_heap_tuple(), MaintainLatestCompletedXid(), MaintainLatestCompletedXidRecovery(), MaintainOldSnapshotTimeMapping(), multixact_redo(), pg_xact_status(), PhysicalReplicationSlotNewXmin(), PrescanPreparedTransactions(), ProcArrayApplyRecoveryInfo(), ProcArrayApplyXidAssignment(), ProcessStandbyHSFeedbackMessage(), RecordKnownAssignedTransactionIds(), relation_needs_vacanalyze(), ReorderBufferAbortOld(), ReplicationSlotsComputeRequiredXmin(), rewrite_heap_tuple(), SerialGetMinConflictCommitSeqNo(), SerialPagePrecedesLogically(), SerialSetActiveSerXmin(), SetCommitTsLimit(), SetNewSxactGlobalXmin(), SlruMayDeleteSegment(), SnapBuildCommitTxn(), SnapBuildProcessChange(), SnapBuildRestore(), SnapshotResetXmin(), StandbyReleaseOldLocks(), SubTransGetTopmostTransaction(), SubTransPagePrecedes(), TransactionIdDidAbort(), TransactionIdDidCommit(), TransactionIdGetCommitTsData(), TransactionIdInRecentPast(), TransactionIdIsActive(), TransactionIdIsCurrentTransactionId(), TransactionIdIsInProgress(), TransactionIdLatest(), TransactionIdLimitedForOldSnapshots(), TransactionIdOlder(), TransactionTreeSetCommitTsData(), tuple_all_visible(), vac_truncate_clog(), vac_update_datfrozenxid(), vac_update_relstats(), vacuum_set_xid_limits(), vacuumRedirectAndPlaceholder(), XidInMVCCSnapshot(), XidIsConcurrent(), xlog_redo(), and xmin_cmp().
bool TransactionIdPrecedesOrEquals | ( | TransactionId | id1, |
TransactionId | id2 | ||
) |
Definition at line 319 of file transam.c.
References TransactionIdIsNormal.
Referenced by ClearOldPredicateLocks(), ComputeXidHorizons(), GetCurrentVirtualXIDs(), GetNewObjectId(), GetSnapshotData(), GetSnapshotDataReuse(), heap_vacuum_rel(), KnownAssignedXidsAdd(), LogicalIncreaseXminForSlot(), ProcArrayInstallImportedXmin(), ProcArrayInstallRestoredXmin(), SetOldSnapshotThresholdTimestamp(), SnapBuildFindSnapshot(), SnapBuildInitialSnapshot(), TransactionIdInRecentPast(), and TransactionIdIsInProgress().
|
static |
Definition at line 52 of file transam.c.
References BootstrapTransactionId, cachedCommitLSN, cachedFetchXid, cachedFetchXidStatus, FrozenTransactionId, TRANSACTION_STATUS_ABORTED, TRANSACTION_STATUS_COMMITTED, TRANSACTION_STATUS_IN_PROGRESS, TRANSACTION_STATUS_SUB_COMMITTED, TransactionIdEquals, TransactionIdGetStatus(), and TransactionIdIsNormal.
Referenced by TransactionIdDidAbort(), and TransactionIdDidCommit().
|
static |
Definition at line 35 of file transam.c.
Referenced by TransactionIdGetCommitLSN(), and TransactionLogFetch().
|
static |
Definition at line 33 of file transam.c.
Referenced by TransactionIdGetCommitLSN(), TransactionIdIsKnownCompleted(), and TransactionLogFetch().
|
static |
Definition at line 34 of file transam.c.
Referenced by TransactionLogFetch().