PostgreSQL Source Code
git master
|
#include "access/transam.h"
#include "utils/relcache.h"
#include "utils/resowner.h"
#include "utils/snapshot.h"
Go to the source code of this file.
Macros | |
#define | SnapshotSelf (&SnapshotSelfData) |
#define | SnapshotAny (&SnapshotAnyData) |
#define | InitDirtySnapshot(snapshotdata) ((snapshotdata).snapshot_type = SNAPSHOT_DIRTY) |
#define | InitNonVacuumableSnapshot(snapshotdata, vistestp) |
#define | InitToastSnapshot(snapshotdata, l, w) |
#define | IsMVCCSnapshot(snapshot) |
Typedefs | |
typedef struct GlobalVisState | GlobalVisState |
#define InitDirtySnapshot | ( | snapshotdata | ) | ((snapshotdata).snapshot_type = SNAPSHOT_DIRTY) |
#define InitNonVacuumableSnapshot | ( | snapshotdata, | |
vistestp | |||
) |
#define InitToastSnapshot | ( | snapshotdata, | |
l, | |||
w | |||
) |
#define IsMVCCSnapshot | ( | snapshot | ) |
#define SnapshotAny (&SnapshotAnyData) |
#define SnapshotSelf (&SnapshotSelfData) |
typedef struct GlobalVisState GlobalVisState |
bool ActiveSnapshotSet | ( | void | ) |
Definition at line 782 of file snapmgr.c.
References ActiveSnapshot.
Referenced by _SPI_execute_plan(), BuildCachedPlan(), EnsurePortalSnapshotExists(), find_inheritance_children_extended(), ForgetPortalSnapshots(), index_concurrently_build(), pg_plan_query(), PortalRunUtility(), postquel_start(), ReindexMultipleInternal(), RelationBuildPartitionDesc(), RelationGetPartitionDesc(), RevalidateCachedQuery(), and vacuum().
Definition at line 995 of file snapmgr.c.
References ActiveSnapshot, ActiveSnapshotElt::as_next, Assert, CurrentSnapshot, elog, exportedSnapshots, FirstSnapshotSet, FirstXactSnapshot, InvalidateCatalogSnapshot(), lfirst, MyProc, NIL, OldestActiveSnapshot, pairingheap_is_empty, pairingheap_remove(), pairingheap_reset, SnapshotData::ph_node, SnapshotData::regd_count, RegisteredSnapshots, SecondarySnapshot, ExportedSnapshot::snapfile, ExportedSnapshot::snapshot, SnapshotResetXmin(), WARNING, and PGPROC::xmin.
Referenced by CleanupTransaction(), CommitTransaction(), and PrepareTransaction().
void AtSubAbort_Snapshot | ( | int | level | ) |
Definition at line 959 of file snapmgr.c.
References SnapshotData::active_count, ActiveSnapshot, ActiveSnapshotElt::as_level, ActiveSnapshotElt::as_next, ActiveSnapshotElt::as_snap, Assert, FreeSnapshot(), next, OldestActiveSnapshot, pfree(), SnapshotData::regd_count, and SnapshotResetXmin().
Referenced by AbortSubTransaction().
void AtSubCommit_Snapshot | ( | int | level | ) |
Definition at line 938 of file snapmgr.c.
References ActiveSnapshot, ActiveSnapshotElt::as_level, and ActiveSnapshotElt::as_next.
Referenced by CommitSubTransaction().
void DeleteAllExportedSnapshotFiles | ( | void | ) |
Definition at line 1567 of file snapmgr.c.
References AllocateDir(), buf, dirent::d_name, ereport, errcode_for_file_access(), errmsg(), FreeDir(), LOG, MAXPGPATH, ReadDirExtended(), SNAPSHOT_EXPORT_DIR, and snprintf.
Referenced by StartupXLOG().
Definition at line 1692 of file snapmgr.c.
References add_size(), Assert, InvalidSnapshot, mul_size(), size, SNAPSHOT_MVCC, SnapshotData::snapshot_type, SnapshotData::suboverflowed, SnapshotData::subxcnt, SnapshotData::takenDuringRecovery, and SnapshotData::xcnt.
Referenced by index_parallelscan_estimate(), index_parallelscan_initialize(), InitializeParallelDSM(), and table_parallelscan_estimate().
char* ExportSnapshot | ( | Snapshot | snapshot | ) |
Definition at line 1095 of file snapmgr.c.
References AllocateFile(), appendStringInfo(), appendStringInfoString(), buf, CopySnapshot(), ereport, errcode(), errcode_for_file_access(), errmsg(), ERROR, exportedSnapshots, FreeFile(), GetMaxSnapshotSubxidCount(), GetTopTransactionIdIfAny(), i, initStringInfo(), IsSubTransaction(), lappend(), list_length(), PGPROC::lxid, MAXPGPATH, MemoryContextSwitchTo(), MyDatabaseId, MyProc, MyProcPid, pairingheap_add(), palloc(), PG_BINARY_W, SnapshotData::ph_node, PGPROC::procNumber, pstrdup(), SnapshotData::regd_count, RegisteredSnapshots, ExportedSnapshot::snapfile, ExportedSnapshot::snapshot, SNAPSHOT_EXPORT_DIR, snprintf, SnapshotData::suboverflowed, SnapshotData::subxcnt, SnapshotData::subxip, SnapshotData::takenDuringRecovery, TopTransactionContext, TransactionIdIsValid, TransactionIdPrecedes(), PGPROC::vxid, xactGetCommittedChildren(), XactIsoLevel, XactReadOnly, SnapshotData::xcnt, SnapshotData::xip, SnapshotData::xmax, and SnapshotData::xmin.
Referenced by pg_export_snapshot(), and SnapBuildExportSnapshot().
Snapshot GetActiveSnapshot | ( | void | ) |
Definition at line 770 of file snapmgr.c.
References ActiveSnapshot, ActiveSnapshotElt::as_snap, and Assert.
Referenced by _SPI_execute_plan(), ATExecDetachPartitionFinalize(), BeginCopyTo(), DoCopyTo(), EnsurePortalSnapshotExists(), ExecCreateTableAs(), ExecInitParallelPlan(), ExecParallelGetQueryDesc(), execute_sql_string(), ExecuteQuery(), ExplainOnePlan(), find_inheritance_children_extended(), has_lo_priv_byid(), InitializeParallelDSM(), inv_open(), PerformCursorOpen(), pg_current_snapshot(), pg_export_snapshot(), pgrowlocks(), PortalRunUtility(), PortalStart(), postquel_start(), ProcessQuery(), refresh_matview_datafill(), RelationGetPartitionDesc(), spgvacuumscan(), SPI_cursor_open_internal(), standard_ExecutorRun(), and standard_ExecutorStart().
Definition at line 352 of file snapmgr.c.
References GetNonHistoricCatalogSnapshot(), HistoricSnapshot, and HistoricSnapshotActive().
Referenced by process_settings(), systable_beginscan(), systable_beginscan_ordered(), systable_recheck_tuple(), and table_beginscan_catalog().
Snapshot GetLatestSnapshot | ( | void | ) |
Definition at line 291 of file snapmgr.c.
References Assert, elog, ERROR, FirstSnapshotSet, GetSnapshotData(), GetTransactionSnapshot(), HistoricSnapshotActive(), IsInParallelMode(), SecondarySnapshot, and SecondarySnapshotData.
Referenced by asyncQueueReadAllNotifications(), ATRewriteTable(), check_default_partition_contents(), currtid_internal(), FindConflictTuple(), IndexCheckExclusion(), RelationFindReplTupleByIndex(), RelationFindReplTupleSeq(), RI_Initial_Check(), RI_PartitionRemove_Check(), ri_PerformCheck(), ScanSourceDatabasePgClass(), validateDomainCheckConstraint(), validateDomainNotNullConstraint(), and validateForeignKeyConstraint().
Definition at line 374 of file snapmgr.c.
References CatalogSnapshot, CatalogSnapshotData, GetSnapshotData(), InvalidateCatalogSnapshot(), pairingheap_add(), SnapshotData::ph_node, RegisteredSnapshots, RelationHasSysCache(), and RelationInvalidatesSnapshotsOnly().
Referenced by GetCatalogSnapshot(), and ScanPgRelation().
Snapshot GetOldestSnapshot | ( | void | ) |
Definition at line 323 of file snapmgr.c.
References ActiveSnapshotElt::as_snap, InvalidXLogRecPtr, SnapshotData::lsn, OldestActiveSnapshot, pairingheap_container, pairingheap_first(), pairingheap_is_empty, RegisteredSnapshots, and XLogRecPtrIsInvalid.
Referenced by init_toast_snapshot().
Snapshot GetTransactionSnapshot | ( | void | ) |
Definition at line 216 of file snapmgr.c.
References Assert, CopySnapshot(), CurrentSnapshot, CurrentSnapshotData, elog, ERROR, FirstSnapshotSet, FirstXactSnapshot, GetSerializableTransactionSnapshot(), GetSnapshotData(), HistoricSnapshot, HistoricSnapshotActive(), InvalidateCatalogSnapshot(), IsInParallelMode(), IsolationIsSerializable, IsolationUsesXactSnapshot, pairingheap_add(), pairingheap_is_empty, SnapshotData::ph_node, SnapshotData::regd_count, and RegisteredSnapshots.
Referenced by _brin_begin_parallel(), _bt_begin_parallel(), _SPI_execute_plan(), AfterTriggerFireDeferred(), AfterTriggerSetState(), begin_replication_step(), bt_check_every_level(), BuildCachedPlan(), CheckTargetForConflictsIn(), cluster_multiple_rels(), DefineIndex(), EnsurePortalSnapshotExists(), EventTriggerOnLogin(), exec_bind_message(), exec_eval_simple_expr(), exec_parse_message(), exec_simple_query(), execute_sql_string(), ExecuteCallStmt(), fmgr_sql(), get_database_list(), get_subscription_list(), GetLatestSnapshot(), HandleFunctionRequest(), heapam_index_build_range_scan(), index_drop(), initialize_worker_spi(), InitializeParallelDSM(), InitPostgres(), LogicalRepSyncTableStart(), pg_get_constraintdef_worker(), PortalRunMulti(), PortalRunUtility(), PortalStart(), PreCommit_on_commit_actions(), ReindexMultipleInternal(), ReindexRelationConcurrently(), RemoveTempRelationsCallback(), RevalidateCachedQuery(), ri_PerformCheck(), SPI_cursor_open_internal(), vacuum(), vacuum_rel(), verify_heapam(), worker_spi_main(), and XidIsConcurrent().
bool GlobalVisCheckRemovableFullXid | ( | Relation | rel, |
FullTransactionId | fxid | ||
) |
Definition at line 4290 of file procarray.c.
References GlobalVisTestFor(), and GlobalVisTestIsRemovableFullXid().
Referenced by _bt_pendingfsm_finalize(), BTPageIsRecyclable(), and gistPageRecyclable().
bool GlobalVisCheckRemovableXid | ( | Relation | rel, |
TransactionId | xid | ||
) |
Definition at line 4304 of file procarray.c.
References GlobalVisTestFor(), and GlobalVisTestIsRemovableXid().
Referenced by GinPageIsRecyclable().
GlobalVisState* GlobalVisTestFor | ( | Relation | rel | ) |
Definition at line 4111 of file procarray.c.
References Assert, FullTransactionIdIsValid, GlobalVisCatalogRels, GlobalVisDataRels, GlobalVisHorizonKindForRel(), GlobalVisSharedRels, GlobalVisTempRels, RecentXmin, VISHORIZON_CATALOG, VISHORIZON_DATA, VISHORIZON_SHARED, and VISHORIZON_TEMP.
Referenced by get_actual_variable_endpoint(), GlobalVisCheckRemovableFullXid(), GlobalVisCheckRemovableXid(), heap_hot_search_buffer(), heap_index_delete_tuples(), heap_page_prune_opt(), heap_vacuum_rel(), and vacuumRedirectAndPlaceholder().
bool GlobalVisTestIsRemovableFullXid | ( | GlobalVisState * | state, |
FullTransactionId | fxid | ||
) |
Definition at line 4226 of file procarray.c.
References Assert, FullTransactionIdFollowsOrEquals, FullTransactionIdPrecedes, GlobalVisTestShouldUpdate(), and GlobalVisUpdate().
Referenced by GlobalVisCheckRemovableFullXid(), and GlobalVisTestIsRemovableXid().
bool GlobalVisTestIsRemovableXid | ( | GlobalVisState * | state, |
TransactionId | xid | ||
) |
Definition at line 4268 of file procarray.c.
References FullXidRelativeTo(), and GlobalVisTestIsRemovableFullXid().
Referenced by GlobalVisCheckRemovableXid(), heap_page_prune_opt(), heap_prune_satisfies_vacuum(), HeapTupleIsSurelyDead(), HeapTupleSatisfiesNonVacuumable(), and vacuumRedirectAndPlaceholder().
bool HaveRegisteredOrActiveSnapshot | ( | void | ) |
Definition at line 1624 of file snapmgr.c.
References ActiveSnapshot, CatalogSnapshot, pairingheap_is_empty, pairingheap_is_singular, and RegisteredSnapshots.
Referenced by init_toast_snapshot(), and SnapBuildInitialSnapshot().
bool HistoricSnapshotActive | ( | void | ) |
Definition at line 1672 of file snapmgr.c.
References HistoricSnapshot.
Referenced by GetCatalogSnapshot(), GetLatestSnapshot(), GetTransactionSnapshot(), HistoricSnapshotGetTupleCids(), RelationGetIdentityKeyBitmap(), RelationInitPhysicalAddr(), RelationRebuildRelation(), SetTransactionSnapshot(), and SnapBuildInitialSnapshot().
struct HTAB* HistoricSnapshotGetTupleCids | ( | void | ) |
Definition at line 1678 of file snapmgr.c.
References Assert, HistoricSnapshotActive(), and tuplecid_data.
Referenced by HeapTupleSatisfiesHistoricMVCC().
void ImportSnapshot | ( | const char * | idstr | ) |
Definition at line 1367 of file snapmgr.c.
References AllocateFile(), elog, ereport, errcode(), errcode_for_file_access(), errmsg(), ERROR, FirstSnapshotSet, FreeFile(), fstat, GetMaxSnapshotSubxidCount(), GetMaxSnapshotXidCount(), GetTopTransactionIdIfAny(), i, InvalidTransactionId, IsolationIsSerializable, IsolationUsesXactSnapshot, IsSubTransaction(), MAXPGPATH, MyDatabaseId, OidIsValid, palloc(), parseIntFromText(), parseVxidFromText(), parseXidFromText(), PG_BINARY_R, SetTransactionSnapshot(), SNAPSHOT_EXPORT_DIR, SNAPSHOT_MVCC, SnapshotData::snapshot_type, snprintf, stat::st_size, SnapshotData::suboverflowed, SnapshotData::subxcnt, SnapshotData::subxip, SnapshotData::takenDuringRecovery, TransactionIdIsNormal, VirtualTransactionIdIsValid, XACT_SERIALIZABLE, XactReadOnly, SnapshotData::xcnt, SnapshotData::xip, SnapshotData::xmax, and SnapshotData::xmin.
Referenced by ExecSetVariableStmt().
void InvalidateCatalogSnapshot | ( | void | ) |
Definition at line 422 of file snapmgr.c.
References CatalogSnapshot, pairingheap_remove(), SnapshotData::ph_node, RegisteredSnapshots, and SnapshotResetXmin().
Referenced by AtEOXact_Snapshot(), CopyFrom(), GetNonHistoricCatalogSnapshot(), GetTransactionSnapshot(), heap_inplace_lock(), InitPostgres(), InvalidateCatalogSnapshotConditionally(), InvalidateSystemCachesExtended(), LocalExecuteInvalidationMessage(), SetTransactionSnapshot(), SnapBuildInitialSnapshot(), and wait_for_relation_state_change().
void InvalidateCatalogSnapshotConditionally | ( | void | ) |
Definition at line 443 of file snapmgr.c.
References ActiveSnapshot, CatalogSnapshot, InvalidateCatalogSnapshot(), pairingheap_is_singular, and RegisteredSnapshots.
Referenced by PostgresMain().
void PopActiveSnapshot | ( | void | ) |
Definition at line 743 of file snapmgr.c.
References SnapshotData::active_count, ActiveSnapshot, ActiveSnapshotElt::as_next, ActiveSnapshotElt::as_snap, Assert, FreeSnapshot(), OldestActiveSnapshot, pfree(), SnapshotData::regd_count, and SnapshotResetXmin().
Referenced by _SPI_execute_plan(), AfterTriggerFireDeferred(), AfterTriggerSetState(), ATExecDetachPartition(), BuildCachedPlan(), cluster_multiple_rels(), DefineIndex(), DoPortalRewind(), end_replication_step(), EndCopyTo(), EventTriggerOnLogin(), exec_bind_message(), exec_eval_simple_expr(), exec_parse_message(), exec_simple_query(), ExecCreateTableAs(), execute_sql_string(), ExecuteCallStmt(), ExplainOnePlan(), FindConflictTuple(), fmgr_sql(), ForgetPortalSnapshots(), HandleFunctionRequest(), index_drop(), initialize_worker_spi(), LogicalRepSyncTableStart(), movedb(), ParallelWorkerMain(), PersistHoldablePortal(), PortalRunMulti(), PortalRunSelect(), PortalRunUtility(), PortalStart(), PreCommit_on_commit_actions(), refresh_matview_datafill(), ReindexMultipleInternal(), ReindexRelationConcurrently(), RelationFindReplTupleByIndex(), RelationFindReplTupleSeq(), RemoveTempRelationsCallback(), RevalidateCachedQuery(), ShutdownSQLFunction(), vacuum(), vacuum_rel(), and worker_spi_main().
void PushActiveSnapshot | ( | Snapshot | snapshot | ) |
Definition at line 648 of file snapmgr.c.
References GetCurrentTransactionNestLevel(), and PushActiveSnapshotWithLevel().
Referenced by _SPI_execute_plan(), AfterTriggerFireDeferred(), AfterTriggerSetState(), begin_replication_step(), BuildCachedPlan(), cluster_multiple_rels(), DefineIndex(), DoPortalRewind(), EventTriggerOnLogin(), exec_bind_message(), exec_eval_simple_expr(), exec_parse_message(), exec_simple_query(), execute_sql_string(), ExecuteCallStmt(), FindConflictTuple(), fmgr_sql(), HandleFunctionRequest(), index_drop(), initialize_worker_spi(), LogicalRepSyncTableStart(), ParallelWorkerMain(), PersistHoldablePortal(), PortalRunSelect(), PortalStart(), PreCommit_on_commit_actions(), PushCopiedSnapshot(), ReindexMultipleInternal(), ReindexRelationConcurrently(), RelationFindReplTupleByIndex(), RelationFindReplTupleSeq(), RemoveTempRelationsCallback(), RevalidateCachedQuery(), ShutdownSQLFunction(), vacuum(), vacuum_rel(), and worker_spi_main().
void PushActiveSnapshotWithLevel | ( | Snapshot | snapshot, |
int | snap_level | ||
) |
Definition at line 662 of file snapmgr.c.
References SnapshotData::active_count, ActiveSnapshot, ActiveSnapshotElt::as_level, ActiveSnapshotElt::as_next, ActiveSnapshotElt::as_snap, Assert, SnapshotData::copied, CopySnapshot(), CurrentSnapshot, InvalidSnapshot, MemoryContextAlloc(), OldestActiveSnapshot, SecondarySnapshot, and TopTransactionContext.
Referenced by EnsurePortalSnapshotExists(), PortalRunUtility(), and PushActiveSnapshot().
void PushCopiedSnapshot | ( | Snapshot | snapshot | ) |
Definition at line 700 of file snapmgr.c.
References CopySnapshot(), and PushActiveSnapshot().
Referenced by _SPI_execute_plan(), BeginCopyTo(), ExecCreateTableAs(), ExplainOnePlan(), PortalRunMulti(), and refresh_matview_datafill().
Definition at line 794 of file snapmgr.c.
References CurrentResourceOwner, InvalidSnapshot, and RegisterSnapshotOnOwner().
Referenced by _brin_begin_parallel(), _bt_begin_parallel(), asyncQueueReadAllNotifications(), ATRewriteTable(), bt_check_every_level(), check_default_partition_contents(), CreateQueryDesc(), currtid_internal(), DefineIndex(), heapam_index_build_range_scan(), index_beginscan_parallel(), IndexCheckExclusion(), pg_get_constraintdef_worker(), PortalRunMulti(), PortalRunUtility(), process_settings(), ReindexRelationConcurrently(), standard_ExecutorStart(), systable_beginscan(), systable_beginscan_ordered(), table_beginscan_catalog(), table_beginscan_parallel(), validateDomainCheckConstraint(), validateDomainNotNullConstraint(), and validateForeignKeyConstraint().
Snapshot RegisterSnapshotOnOwner | ( | Snapshot | snapshot, |
ResourceOwner | owner | ||
) |
Definition at line 807 of file snapmgr.c.
References SnapshotData::copied, CopySnapshot(), InvalidSnapshot, pairingheap_add(), SnapshotData::ph_node, SnapshotData::regd_count, RegisteredSnapshots, ResourceOwnerEnlarge(), and ResourceOwnerRememberSnapshot().
Referenced by be_lo_open(), and RegisterSnapshot().
Snapshot RestoreSnapshot | ( | char * | start_address | ) |
Definition at line 1775 of file snapmgr.c.
References SnapshotData::active_count, SnapshotData::copied, SerializedSnapshotData::curcid, SnapshotData::curcid, SerializedSnapshotData::lsn, SnapshotData::lsn, MemoryContextAlloc(), SnapshotData::regd_count, size, SNAPSHOT_MVCC, SnapshotData::snapshot_type, SnapshotData::snapXactCompletionCount, SerializedSnapshotData::suboverflowed, SnapshotData::suboverflowed, SerializedSnapshotData::subxcnt, SnapshotData::subxcnt, SnapshotData::subxip, SerializedSnapshotData::takenDuringRecovery, SnapshotData::takenDuringRecovery, TopTransactionContext, SerializedSnapshotData::whenTaken, SnapshotData::whenTaken, SerializedSnapshotData::xcnt, SnapshotData::xcnt, SnapshotData::xip, SerializedSnapshotData::xmax, SnapshotData::xmax, SerializedSnapshotData::xmin, and SnapshotData::xmin.
Referenced by index_beginscan_parallel(), ParallelWorkerMain(), and table_beginscan_parallel().
void RestoreTransactionSnapshot | ( | Snapshot | snapshot, |
void * | source_pgproc | ||
) |
Definition at line 1840 of file snapmgr.c.
References InvalidPid, and SetTransactionSnapshot().
Referenced by CreateReplicationSlot(), and ParallelWorkerMain().
void SerializeSnapshot | ( | Snapshot | snapshot, |
char * | start_address | ||
) |
Definition at line 1716 of file snapmgr.c.
References Assert, SerializedSnapshotData::curcid, SnapshotData::curcid, SerializedSnapshotData::lsn, SnapshotData::lsn, SerializedSnapshotData::suboverflowed, SnapshotData::suboverflowed, SerializedSnapshotData::subxcnt, SnapshotData::subxcnt, SnapshotData::subxip, SerializedSnapshotData::takenDuringRecovery, SnapshotData::takenDuringRecovery, SerializedSnapshotData::whenTaken, SnapshotData::whenTaken, SerializedSnapshotData::xcnt, SnapshotData::xcnt, SnapshotData::xip, SerializedSnapshotData::xmax, SnapshotData::xmax, SerializedSnapshotData::xmin, and SnapshotData::xmin.
Referenced by index_parallelscan_initialize(), InitializeParallelDSM(), and table_parallelscan_initialize().
Definition at line 1649 of file snapmgr.c.
References Assert, HistoricSnapshot, and tuplecid_data.
Referenced by ReorderBufferProcessTXN(), and ReorderBufferQueueMessage().
void SnapshotSetCommandId | ( | CommandId | curcid | ) |
Definition at line 456 of file snapmgr.c.
References SnapshotData::curcid, CurrentSnapshot, FirstSnapshotSet, and SecondarySnapshot.
Referenced by CommandCounterIncrement().
void TeardownHistoricSnapshot | ( | bool | is_error | ) |
Definition at line 1665 of file snapmgr.c.
References HistoricSnapshot, and tuplecid_data.
Referenced by ReorderBufferProcessTXN(), and ReorderBufferQueueMessage().
bool ThereAreNoPriorRegisteredSnapshots | ( | void | ) |
Definition at line 1606 of file snapmgr.c.
References pairingheap_is_empty, pairingheap_is_singular, and RegisteredSnapshots.
Referenced by CopyFrom().
void UnregisterSnapshot | ( | Snapshot | snapshot | ) |
Definition at line 836 of file snapmgr.c.
References CurrentResourceOwner, and UnregisterSnapshotFromOwner().
Referenced by _brin_begin_parallel(), _brin_end_parallel(), _bt_begin_parallel(), _bt_end_parallel(), asyncQueueReadAllNotifications(), ATRewriteTable(), bt_check_every_level(), check_default_partition_contents(), currtid_internal(), DefineIndex(), FreeQueryDesc(), heap_endscan(), heapam_index_build_range_scan(), index_endscan(), IndexCheckExclusion(), pg_get_constraintdef_worker(), process_settings(), ReindexRelationConcurrently(), standard_ExecutorEnd(), systable_endscan(), systable_endscan_ordered(), validateDomainCheckConstraint(), validateDomainNotNullConstraint(), and validateForeignKeyConstraint().
void UnregisterSnapshotFromOwner | ( | Snapshot | snapshot, |
ResourceOwner | owner | ||
) |
Definition at line 849 of file snapmgr.c.
References ResourceOwnerForgetSnapshot(), and UnregisterSnapshotNoOwner().
Referenced by closeLOfd(), PortalDrop(), PreCommit_Portals(), and UnregisterSnapshot().
void UpdateActiveSnapshotCommandId | ( | void | ) |
Definition at line 712 of file snapmgr.c.
References SnapshotData::active_count, ActiveSnapshot, ActiveSnapshotElt::as_snap, Assert, SnapshotData::curcid, elog, ERROR, GetCurrentCommandId(), IsInParallelMode(), and SnapshotData::regd_count.
Referenced by _SPI_execute_plan(), BeginCopyTo(), ExecCreateTableAs(), ExplainOnePlan(), fmgr_sql(), PortalRunMulti(), and refresh_matview_datafill().
void WaitForOlderSnapshots | ( | TransactionId | limitXmin, |
bool | progress | ||
) |
Definition at line 429 of file indexcmds.c.
References GetCurrentVirtualXIDs(), i, j, pfree(), pgstat_progress_update_param(), PGPROC::pid, PROC_IN_SAFE_IC, PROC_IN_VACUUM, PROC_IS_AUTOVACUUM, ProcNumberGetProc(), progress, PROGRESS_WAITFOR_CURRENT_PID, PROGRESS_WAITFOR_DONE, PROGRESS_WAITFOR_TOTAL, SetInvalidVirtualTransactionId, VirtualTransactionIdEquals, VirtualTransactionIdIsValid, and VirtualXactLock().
Referenced by ATExecDetachPartitionFinalize(), DefineIndex(), and ReindexRelationConcurrently().
bool XactHasExportedSnapshots | ( | void | ) |
Definition at line 1554 of file snapmgr.c.
References exportedSnapshots, and NIL.
Referenced by PrepareTransaction().
bool XidInMVCCSnapshot | ( | TransactionId | xid, |
Snapshot | snapshot | ||
) |
Definition at line 1856 of file snapmgr.c.
References pg_lfind32(), SnapshotData::suboverflowed, SubTransGetTopmostTransaction(), SnapshotData::subxcnt, SnapshotData::subxip, SnapshotData::takenDuringRecovery, TransactionIdFollowsOrEquals(), TransactionIdPrecedes(), SnapshotData::xcnt, SnapshotData::xip, SnapshotData::xmax, and SnapshotData::xmin.
Referenced by asyncQueueProcessPageEntries(), find_inheritance_children_extended(), HeapTupleSatisfiesMVCC(), and RelationGetPartitionDesc().
|
extern |
Definition at line 83 of file snapmgr.c.
Referenced by GetNonHistoricCatalogSnapshot().
|
extern |
Definition at line 135 of file snapmgr.c.
Referenced by AtEOXact_Snapshot(), check_transaction_deferrable(), check_transaction_isolation(), check_transaction_read_only(), CreateReplicationSlot(), GetLatestSnapshot(), GetTransactionSnapshot(), ImportSnapshot(), SetTransactionSnapshot(), and SnapshotSetCommandId().
|
extern |
Definition at line 99 of file snapmgr.c.
Referenced by ATRewriteTables(), bt_check_every_level(), GetSnapshotData(), GetSnapshotDataReuse(), GlobalVisTestFor(), GlobalVisTestShouldUpdate(), GlobalVisUpdateApply(), heap_hot_search_buffer(), heapam_relation_set_new_filelocator(), index_getnext_tid(), refresh_by_heap_swap(), TransactionIdIsActive(), and TransactionIdIsInProgress().
|
extern |
|
extern |
|
extern |
Definition at line 98 of file snapmgr.c.
Referenced by BuildCachedPlan(), CheckCachedPlan(), get_relation_info(), GetSnapshotData(), GetSnapshotDataReuse(), heap_abort_speculative(), HeapCheckForSerializableConflictOut(), ProcArrayInstallImportedXmin(), ProcArrayInstallRestoredXmin(), SubTransGetParent(), SubTransGetTopmostTransaction(), TransactionIdDidAbort(), and TransactionIdDidCommit().