31 #define OLD_SNAPSHOT_PADDING_ENTRIES 10 32 #define OLD_SNAPSHOT_TIME_MAP_ENTRIES (old_snapshot_threshold + OLD_SNAPSHOT_PADDING_ENTRIES) 38 #define RelationAllowsEarlyPruning(rel) \ 40 (rel)->rd_rel->relpersistence == RELPERSISTENCE_PERMANENT \ 41 && !IsCatalogRelation(rel) \ 42 && !RelationIsAccessibleInLogicalDecoding(rel) \ 45 #define EarlyPruningEnabled(rel) (old_snapshot_threshold >= 0 && RelationAllowsEarlyPruning(rel)) 67 #define SnapshotSelf (&SnapshotSelfData) 68 #define SnapshotAny (&SnapshotAnyData) 75 #define InitDirtySnapshot(snapshotdata) \ 76 ((snapshotdata).snapshot_type = SNAPSHOT_DIRTY) 83 #define InitNonVacuumableSnapshot(snapshotdata, vistestp) \ 84 ((snapshotdata).snapshot_type = SNAPSHOT_NON_VACUUMABLE, \ 85 (snapshotdata).vistest = (vistestp)) 91 #define InitToastSnapshot(snapshotdata, l, w) \ 92 ((snapshotdata).snapshot_type = SNAPSHOT_TOAST, \ 93 (snapshotdata).lsn = (l), \ 94 (snapshotdata).whenTaken = (w)) 97 #define IsMVCCSnapshot(snapshot) \ 98 ((snapshot)->snapshot_type == SNAPSHOT_MVCC || \ 99 (snapshot)->snapshot_type == SNAPSHOT_HISTORIC_MVCC) bool GlobalVisCheckRemovableXid(Relation rel, TransactionId xid)
void AtSubCommit_Snapshot(int level)
bool TransactionIdLimitedForOldSnapshots(TransactionId recentXmin, Relation relation, TransactionId *limit_xid, TimestampTz *limit_ts)
Snapshot GetLatestSnapshot(void)
void AtSubAbort_Snapshot(int level)
Snapshot RestoreSnapshot(char *start_address)
struct HTAB * HistoricSnapshotGetTupleCids(void)
bool GlobalVisTestIsRemovableFullXid(GlobalVisState *state, FullTransactionId fxid)
void TeardownHistoricSnapshot(bool is_error)
static bool OldSnapshotThresholdActive(void)
bool XactHasExportedSnapshots(void)
void SetOldSnapshotThresholdTimestamp(TimestampTz ts, TransactionId xlimit)
Snapshot GetActiveSnapshot(void)
bool GlobalVisCheckRemovableFullXid(Relation rel, FullTransactionId fxid)
Size EstimateSnapshotSpace(Snapshot snapshot)
void PopActiveSnapshot(void)
Snapshot RegisterSnapshot(Snapshot snapshot)
char * ExportSnapshot(Snapshot snapshot)
PGDLLIMPORT TransactionId RecentXmin
void SerializeSnapshot(Snapshot snapshot, char *start_address)
Snapshot GetOldestSnapshot(void)
void DeleteAllExportedSnapshotFiles(void)
PGDLLIMPORT int old_snapshot_threshold
Size SnapMgrShmemSize(void)
TransactionId GlobalVisTestNonRemovableHorizon(GlobalVisState *state)
PGDLLIMPORT SnapshotData SnapshotSelfData
void SnapshotTooOldMagicForTest(void)
void SetupHistoricSnapshot(Snapshot snapshot_now, struct HTAB *tuplecids)
void PushActiveSnapshot(Snapshot snapshot)
void ImportSnapshot(const char *idstr)
void MaintainOldSnapshotTimeMapping(TimestampTz whenTaken, TransactionId xmin)
TimestampTz GetSnapshotCurrentTimestamp(void)
void SnapshotSetCommandId(CommandId curcid)
bool ThereAreNoPriorRegisteredSnapshots(void)
TimestampTz GetOldSnapshotThresholdTimestamp(void)
bool HistoricSnapshotActive(void)
bool GlobalVisTestIsRemovableXid(GlobalVisState *state, TransactionId xid)
bool XidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
void AtEOXact_Snapshot(bool isCommit, bool resetXmin)
bool ActiveSnapshotSet(void)
GlobalVisState * GlobalVisTestFor(Relation rel)
Snapshot GetTransactionSnapshot(void)
Snapshot GetCatalogSnapshot(Oid relid)
void InvalidateCatalogSnapshot(void)
void RestoreTransactionSnapshot(Snapshot snapshot, void *source_pgproc)
PGDLLIMPORT SnapshotData SnapshotAnyData
Snapshot GetNonHistoricCatalogSnapshot(Oid relid)
Snapshot RegisterSnapshotOnOwner(Snapshot snapshot, ResourceOwner owner)
void UpdateActiveSnapshotCommandId(void)
PGDLLIMPORT SnapshotData CatalogSnapshotData
void InvalidateCatalogSnapshotConditionally(void)
void UnregisterSnapshot(Snapshot snapshot)
void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner)
PGDLLIMPORT TransactionId TransactionXmin
void PushCopiedSnapshot(Snapshot snapshot)
FullTransactionId GlobalVisTestNonRemovableFullHorizon(GlobalVisState *state)