1/*-------------------------------------------------------------------------
4 * POSTGRES lock manager 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/lmgr.h
12 *-------------------------------------------------------------------------
23/* XactLockTableWait operations */
58/* Lock a relation for extension */
65/* Lock to recompute pg_database.datfrozenxid in the current database */
68/* Lock a page (currently only used within indexes) */
73/* Lock a tuple (see heap_lock_tuple before assuming you understand this) */
76 LOCKMODE lockmode,
bool logLockFailure);
79/* Lock an XID (used to wait for a transaction to finish) */
87/* Lock VXIDs, specified by conflicting locktags */
91/* Lock an XID for tuple insertion (used to wait for an insertion to finish) */
96/* Lock a general object (other than a relation) of the current database */
104/* Lock a shared-across-databases object (other than a relation) */
122/* Describe a locktag for error messages */
bool ConditionalLockRelationOid(Oid relid, LOCKMODE lockmode)
void UnlockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode)
void LockSharedObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
bool ConditionalLockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
bool ConditionalLockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode, bool logLockFailure)
void UnlockRelationOid(Oid relid, LOCKMODE lockmode)
void LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void UnlockRelation(Relation relation, LOCKMODE lockmode)
void DescribeLockTag(StringInfo buf, const LOCKTAG *tag)
void SpeculativeInsertionWait(TransactionId xid, uint32 token)
bool ConditionalLockSharedObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void UnlockSharedObjectForSession(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress)
void LockRelationIdForSession(LockRelId *relid, LOCKMODE lockmode)
void RelationInitLockInfo(Relation relation)
void LockRelationOid(Oid relid, LOCKMODE lockmode)
void LockRelation(Relation relation, LOCKMODE lockmode)
void UnlockRelationId(LockRelId *relid, LOCKMODE lockmode)
void WaitForLockers(LOCKTAG heaplocktag, LOCKMODE lockmode, bool progress)
bool ConditionalXactLockTableWait(TransactionId xid, bool logLockFailure)
void XactLockTableDelete(TransactionId xid)
void XactLockTableInsert(TransactionId xid)
uint32 SpeculativeInsertionLockAcquire(TransactionId xid)
void LockRelationForExtension(Relation relation, LOCKMODE lockmode)
bool CheckRelationLockedByMe(Relation relation, LOCKMODE lockmode, bool orstronger)
@ XLTW_RecheckExclusionConstr
void UnlockApplyTransactionForSession(Oid suboid, TransactionId xid, uint16 objid, LOCKMODE lockmode)
void SpeculativeInsertionLockRelease(TransactionId xid)
void LockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
bool ConditionalLockRelationForExtension(Relation relation, LOCKMODE lockmode)
bool CheckRelationOidLockedByMe(Oid relid, LOCKMODE lockmode, bool orstronger)
void UnlockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
void UnlockRelationIdForSession(LockRelId *relid, LOCKMODE lockmode)
bool ConditionalLockRelation(Relation relation, LOCKMODE lockmode)
void LockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode)
bool ConditionalLockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void LockDatabaseFrozenIds(LOCKMODE lockmode)
void UnlockRelationForExtension(Relation relation, LOCKMODE lockmode)
const char * GetLockNameFromTagType(uint16 locktag_type)
void UnlockSharedObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void XactLockTableWait(TransactionId xid, Relation rel, const ItemPointerData *ctid, XLTW_Oper oper)
void LockApplyTransactionForSession(Oid suboid, TransactionId xid, uint16 objid, LOCKMODE lockmode)
void LockSharedObjectForSession(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void LockRelationId(LockRelId *relid, LOCKMODE lockmode)
bool LockHasWaitersRelation(Relation relation, LOCKMODE lockmode)
void UnlockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
int RelationExtensionLockWaiterCount(Relation relation)
Operator oper(ParseState *pstate, List *opname, Oid ltypeId, Oid rtypeId, bool noError, int location)