PostgreSQL Source Code git master
Loading...
Searching...
No Matches
procarray.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * procarray.h
4 * POSTGRES process array definitions.
5 *
6 *
7 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/storage/procarray.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef PROCARRAY_H
15#define PROCARRAY_H
16
17#include "storage/standby.h"
18#include "utils/relcache.h"
19#include "utils/snapshot.h"
20
21
22extern void ProcArrayAdd(PGPROC *proc);
24
26extern void ProcArrayClearTransaction(PGPROC *proc);
27
31 int nsubxids, TransactionId *subxids);
32
35 int nsubxids, TransactionId *subxids,
40
41extern int GetMaxSnapshotXidCount(void);
42extern int GetMaxSnapshotSubxidCount(void);
43
44extern Snapshot GetSnapshotData(Snapshot snapshot);
45
49
51
56 bool allDbs);
58extern void GetReplicationHorizons(TransactionId *xmin, TransactionId *catalog_xmin);
59
62 int nvxids, int type);
63
64extern PGPROC *ProcNumberGetProc(int procNumber);
65extern void ProcNumberGetTransactionIds(int procNumber, TransactionId *xid,
66 TransactionId *xmin, int *nsubxid,
67 bool *overflowed);
68extern PGPROC *BackendPidGetProc(int pid);
69extern PGPROC *BackendPidGetProcWithLock(int pid);
70extern int BackendXidGetPid(TransactionId xid);
71extern bool IsBackendPid(int pid);
72
74 bool excludeXmin0, bool allDbs, int excludeVacuum,
75 int *nvxids);
77
78extern bool SignalRecoveryConflict(PGPROC *proc, pid_t pid, RecoveryConflictReason reason);
81
82
83extern bool MinimumActiveBackends(int min);
86extern int CountUserBackends(Oid roleid);
87extern bool CountOtherDBBackends(Oid databaseId,
88 int *nbackends, int *nprepared);
89extern void TerminateOtherDBBackends(Oid databaseId);
90
92 int nxids, const TransactionId *xids,
94
96 TransactionId catalog_xmin, bool already_locked);
97
99 TransactionId *catalog_xmin);
100
101#endif /* PROCARRAY_H */
uint32 TransactionId
Definition c.h:736
unsigned int Oid
static int fb(int x)
TransactionId GetOldestNonRemovableTransactionId(Relation rel)
Definition procarray.c:1944
void ProcArrayGetReplicationSlotXmin(TransactionId *xmin, TransactionId *catalog_xmin)
Definition procarray.c:3988
RunningTransactions GetRunningTransactionData(Oid dbid)
Definition procarray.c:2630
VirtualTransactionId * GetCurrentVirtualXIDs(TransactionId limitXmin, bool excludeXmin0, bool allDbs, int excludeVacuum, int *nvxids)
Definition procarray.c:3297
bool SignalRecoveryConflictWithVirtualXID(VirtualTransactionId vxid, RecoveryConflictReason reason)
Definition procarray.c:3497
TransactionId GetOldestSafeDecodingTransactionId(bool catalogOnly)
Definition procarray.c:2919
void XidCacheRemoveRunningXids(TransactionId xid, int nxids, const TransactionId *xids, TransactionId latestXid)
Definition procarray.c:4011
bool MinimumActiveBackends(int min)
Definition procarray.c:3589
void TerminateOtherDBBackends(Oid databaseId)
Definition procarray.c:3848
void ExpireAllKnownAssignedTransactionIds(void)
Definition procarray.c:4551
void ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
Definition procarray.c:663
void RecordKnownAssignedTransactionIds(TransactionId xid)
Definition procarray.c:4456
TransactionId GetOldestTransactionIdConsideredRunning(void)
Definition procarray.c:1973
int GetMaxSnapshotSubxidCount(void)
Definition procarray.c:2019
int CountDBConnections(Oid databaseid)
Definition procarray.c:3671
void GetReplicationHorizons(TransactionId *xmin, TransactionId *catalog_xmin)
Definition procarray.c:1986
void ProcArrayAdd(PGPROC *proc)
Definition procarray.c:464
Snapshot GetSnapshotData(Snapshot snapshot)
Definition procarray.c:2114
bool HaveVirtualXIDsDelayingChkpt(VirtualTransactionId *vxids, int nvxids, int type)
Definition procarray.c:3062
void SignalRecoveryConflictWithDatabase(Oid databaseid, RecoveryConflictReason reason)
Definition procarray.c:3542
void KnownAssignedTransactionIdsIdleMaintenance(void)
Definition procarray.c:4617
int GetMaxSnapshotXidCount(void)
Definition procarray.c:2008
int CountDBBackends(Oid databaseid)
Definition procarray.c:3642
PGPROC * BackendPidGetProcWithLock(int pid)
Definition procarray.c:3192
PGPROC * BackendPidGetProc(int pid)
Definition procarray.c:3169
bool ProcArrayInstallRestoredXmin(TransactionId xmin, PGPROC *proc)
Definition procarray.c:2555
void ProcArrayApplyRecoveryInfo(RunningTransactions running)
Definition procarray.c:1045
void ProcArrayClearTransaction(PGPROC *proc)
Definition procarray.c:899
void ProcNumberGetTransactionIds(int procNumber, TransactionId *xid, TransactionId *xmin, int *nsubxid, bool *overflowed)
Definition procarray.c:3133
int CountUserBackends(Oid roleid)
Definition procarray.c:3703
void ProcArrayApplyXidAssignment(TransactionId topxid, int nsubxids, TransactionId *subxids)
Definition procarray.c:1309
TransactionId GetOldestActiveTransactionId(bool inCommitOnly, bool allDbs)
Definition procarray.c:2845
bool CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared)
Definition procarray.c:3755
PGPROC * ProcNumberGetProc(int procNumber)
Definition procarray.c:3111
int BackendXidGetPid(TransactionId xid)
Definition procarray.c:3229
bool IsBackendPid(int pid)
Definition procarray.c:3264
void ProcArraySetReplicationSlotXmin(TransactionId xmin, TransactionId catalog_xmin, bool already_locked)
Definition procarray.c:3963
void ProcArrayInitRecovery(TransactionId initializedUptoXID)
Definition procarray.c:1014
void ProcArrayRemove(PGPROC *proc, TransactionId latestXid)
Definition procarray.c:561
VirtualTransactionId * GetConflictingVirtualXIDs(TransactionId limitXmin, Oid dbOid)
Definition procarray.c:3389
void ExpireTreeKnownAssignedTransactionIds(TransactionId xid, int nsubxids, TransactionId *subxids, TransactionId max_xid)
Definition procarray.c:4525
bool SignalRecoveryConflict(PGPROC *proc, pid_t pid, RecoveryConflictReason reason)
Definition procarray.c:3467
VirtualTransactionId * GetVirtualXIDsDelayingChkpt(int *nvxids, int type)
Definition procarray.c:3017
bool ProcArrayInstallImportedXmin(TransactionId xmin, VirtualTransactionId *sourcevxid)
Definition procarray.c:2471
bool TransactionIdIsInProgress(TransactionId xid)
Definition procarray.c:1393
void ExpireOldKnownAssignedTransactionIds(TransactionId xid)
Definition procarray.c:4585
RecoveryConflictReason
Definition standby.h:32
Definition proc.h:179
const char * type