1/*-------------------------------------------------------------------------
4 * POSTGRES public predicate locking definitions.
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/storage/predicate.h
12 *-------------------------------------------------------------------------
31 * A handle used for sharing SERIALIZABLEXACT objects between the participants
32 * in a parallel query.
40/* housekeeping for shared memory predicate lock structures */
46/* predicate lock reporting */
49/* predicate lock maintenance */
64/* conflict detection (may also trigger rollback) */
70/* final rollback checking */
73/* two-phase commit support */
80/* parallel query support */
84#endif /* PREDICATE_H */
PGDLLIMPORT int max_predicate_locks_per_page
void CheckPointPredicate(void)
void PredicateLockPageSplit(Relation relation, BlockNumber oldblkno, BlockNumber newblkno)
void SetSerializableTransactionSnapshot(Snapshot snapshot, VirtualTransactionId *sourcevxid, int sourcepid)
void PredicateLockPage(Relation relation, BlockNumber blkno, Snapshot snapshot)
void CheckForSerializableConflictOut(Relation relation, TransactionId xid, Snapshot snapshot)
bool PageIsPredicateLocked(Relation relation, BlockNumber blkno)
void predicatelock_twophase_recover(FullTransactionId fxid, uint16 info, void *recdata, uint32 len)
void * SerializableXactHandle
void CheckForSerializableConflictIn(Relation relation, ItemPointer tid, BlockNumber blkno)
void CheckTableForSerializableConflictIn(Relation relation)
void PredicateLockTID(Relation relation, ItemPointer tid, Snapshot snapshot, TransactionId tuple_xid)
void AttachSerializableXact(SerializableXactHandle handle)
void PredicateLockTwoPhaseFinish(FullTransactionId xid, bool isCommit)
SerializableXactHandle ShareSerializableXact(void)
void PredicateLockPageCombine(Relation relation, BlockNumber oldblkno, BlockNumber newblkno)
void PreCommit_CheckForSerializationFailure(void)
void ReleasePredicateLocks(bool isCommit, bool isReadOnlySafe)
void PredicateLockRelation(Relation relation, Snapshot snapshot)
void PredicateLockShmemInit(void)
Size PredicateLockShmemSize(void)
PGDLLIMPORT int max_predicate_locks_per_relation
void PostPrepare_PredicateLocks(FullTransactionId fxid)
PGDLLIMPORT int max_predicate_locks_per_xact
void AtPrepare_PredicateLocks(void)
void RegisterPredicateLockingXid(TransactionId xid)
bool CheckForSerializableConflictOutNeeded(Relation relation, Snapshot snapshot)
void TransferPredicateLocksToHeapRelation(Relation relation)
Snapshot GetSerializableTransactionSnapshot(Snapshot snapshot)