77 if (relation->
rd_rel->relisshared)
856 cxt =
gettext_noop(
"while updating tuple (%u,%u) in relation \"%s\"");
859 cxt =
gettext_noop(
"while deleting tuple (%u,%u) in relation \"%s\"");
862 cxt =
gettext_noop(
"while locking tuple (%u,%u) in relation \"%s\"");
865 cxt =
gettext_noop(
"while locking updated version (%u,%u) of tuple in relation \"%s\"");
868 cxt =
gettext_noop(
"while inserting index tuple (%u,%u) in relation \"%s\"");
871 cxt =
gettext_noop(
"while checking uniqueness of tuple (%u,%u) in relation \"%s\"");
874 cxt =
gettext_noop(
"while rechecking updated tuple (%u,%u) in relation \"%s\"");
877 cxt =
gettext_noop(
"while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"");
917 foreach(lc, locktags)
962 const int index[] = {
1249 _(
"relation %u of database %u"),
1255 _(
"extension of relation %u of database %u"),
1261 _(
"pg_database.datfrozenxid of database %u"),
1266 _(
"page %u of relation %u of database %u"),
1273 _(
"tuple (%u,%u) of relation %u of database %u"),
1281 _(
"transaction %u"),
1286 _(
"virtual transaction %d/%u"),
1292 _(
"speculative token %u of transaction %u"),
1298 _(
"object %u of class %u of database %u"),
1306 _(
"user lock [%u,%u,%u]"),
1313 _(
"advisory lock [%u,%u,%u,%u]"),
1321 _(
"remote transaction %u of subscription %u of database %u"),
1328 _(
"unrecognized locktag type %d"),
void pgstat_progress_update_param(int index, int64 val)
void pgstat_progress_update_multi_param(int nparam, const int *index, const int64 *val)
static Datum values[MAXATTR]
#define OidIsValid(objectId)
bool IsSharedRelation(Oid relationId)
ErrorContextCallback * error_context_stack
Assert(PointerIsAligned(start, uint64))
void AcceptInvalidationMessages(void)
static OffsetNumber ItemPointerGetOffsetNumber(const ItemPointerData *pointer)
static BlockNumber ItemPointerGetBlockNumber(const ItemPointerData *pointer)
static bool ItemPointerIsValid(const ItemPointerData *pointer)
List * lappend(List *list, void *datum)
void list_free(List *list)
void list_free_deep(List *list)
bool ConditionalLockRelationOid(Oid relid, LOCKMODE lockmode)
void XactLockTableWait(TransactionId xid, Relation rel, ItemPointer ctid, XLTW_Oper oper)
void LockSharedObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
bool ConditionalLockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode, bool logLockFailure)
bool ConditionalLockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
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 LockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode)
void XactLockTableInsert(TransactionId xid)
uint32 SpeculativeInsertionLockAcquire(TransactionId xid)
void LockRelationForExtension(Relation relation, LOCKMODE lockmode)
bool CheckRelationLockedByMe(Relation relation, LOCKMODE lockmode, bool orstronger)
void UnlockApplyTransactionForSession(Oid suboid, TransactionId xid, uint16 objid, LOCKMODE lockmode)
void SpeculativeInsertionLockRelease(TransactionId xid)
static void XactLockTableWaitErrorCb(void *arg)
void LockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
bool ConditionalLockRelationForExtension(Relation relation, LOCKMODE lockmode)
bool CheckRelationOidLockedByMe(Oid relid, LOCKMODE lockmode, bool orstronger)
static void SetLocktagRelationOid(LOCKTAG *tag, Oid relid)
void UnlockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
void UnlockRelationIdForSession(LockRelId *relid, LOCKMODE lockmode)
bool ConditionalLockRelation(Relation relation, LOCKMODE lockmode)
static uint32 speculativeInsertionToken
bool ConditionalLockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void LockDatabaseFrozenIds(LOCKMODE lockmode)
struct XactLockTableWaitInfo XactLockTableWaitInfo
void UnlockRelationForExtension(Relation relation, LOCKMODE lockmode)
const char * GetLockNameFromTagType(uint16 locktag_type)
void UnlockSharedObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
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)
void UnlockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode)
@ XLTW_RecheckExclusionConstr
LockAcquireResult LockAcquire(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock, bool dontWait)
bool LockHeldByMe(const LOCKTAG *locktag, LOCKMODE lockmode, bool orstronger)
int LockWaiterCount(const LOCKTAG *locktag)
bool LockRelease(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock)
bool VirtualXactLock(VirtualTransactionId vxid, bool wait)
VirtualTransactionId * GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode, int *countp)
LockAcquireResult LockAcquireExtended(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock, bool dontWait, bool reportMemoryError, LOCALLOCK **locallockp, bool logLockFailure)
bool LockHasWaiters(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock)
void MarkLockClear(LOCALLOCK *locallock)
#define SET_LOCKTAG_DATABASE_FROZEN_IDS(locktag, dboid)
#define SET_LOCKTAG_RELATION_EXTEND(locktag, dboid, reloid)
@ LOCKTAG_RELATION_EXTEND
@ LOCKTAG_SPECULATIVE_TOKEN
@ LOCKTAG_APPLY_TRANSACTION
@ LOCKTAG_DATABASE_FROZEN_IDS
@ LOCKTAG_VIRTUALTRANSACTION
#define SET_LOCKTAG_APPLY_TRANSACTION(locktag, dboid, suboid, xid, objid)
#define VirtualTransactionIdIsValid(vxid)
#define SET_LOCKTAG_TRANSACTION(locktag, xid)
#define SET_LOCKTAG_RELATION(locktag, dboid, reloid)
#define SET_LOCKTAG_SPECULATIVE_INSERTION(locktag, xid, token)
#define LOCKTAG_LAST_TYPE
#define SET_LOCKTAG_PAGE(locktag, dboid, reloid, blocknum)
#define SET_LOCKTAG_TUPLE(locktag, dboid, reloid, blocknum, offnum)
#define SET_LOCKTAG_OBJECT(locktag, dboid, classoid, objoid, objsubid)
@ LOCKACQUIRE_ALREADY_CLEAR
const char *const LockTagTypeNames[]
Operator oper(ParseState *pstate, List *opname, Oid ltypeId, Oid rtypeId, bool noError, int location)
PGPROC * ProcNumberGetProc(ProcNumber procNumber)
bool TransactionIdIsInProgress(TransactionId xid)
#define PROGRESS_WAITFOR_DONE
#define PROGRESS_WAITFOR_TOTAL
#define PROGRESS_WAITFOR_CURRENT_PID
#define RelationGetRelid(relation)
#define RelationGetRelationName(relation)
#define RelationIsValid(relation)
void pg_usleep(long microsec)
void appendStringInfo(StringInfo str, const char *fmt,...)
TransactionId SubTransGetTopmostTransaction(TransactionId xid)
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
#define TransactionIdEquals(id1, id2)
#define TransactionIdIsValid(xid)
TransactionId GetTopTransactionIdIfAny(void)