]> granicus.if.org Git - postgresql/blob - src/include/storage/procarray.h
Remove cvs keywords from all files.
[postgresql] / src / include / storage / procarray.h
1 /*-------------------------------------------------------------------------
2  *
3  * procarray.h
4  *        POSTGRES process array definitions.
5  *
6  *
7  * Portions Copyright (c) 1996-2010, 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/lock.h"
18 #include "storage/procsignal.h"
19 #include "storage/standby.h"
20 #include "utils/snapshot.h"
21
22
23 extern Size ProcArrayShmemSize(void);
24 extern void CreateSharedProcArray(void);
25 extern void ProcArrayAdd(PGPROC *proc);
26 extern void ProcArrayRemove(PGPROC *proc, TransactionId latestXid);
27
28 extern void ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid);
29 extern void ProcArrayClearTransaction(PGPROC *proc);
30
31 extern void ProcArrayInitRecoveryInfo(TransactionId oldestActiveXid);
32 extern void ProcArrayApplyRecoveryInfo(RunningTransactions running);
33 extern void ProcArrayApplyXidAssignment(TransactionId topxid,
34                                                         int nsubxids, TransactionId *subxids);
35
36 extern void RecordKnownAssignedTransactionIds(TransactionId xid);
37 extern void ExpireTreeKnownAssignedTransactionIds(TransactionId xid,
38                                                                           int nsubxids, TransactionId *subxids,
39                                                                           TransactionId max_xid);
40 extern void ExpireAllKnownAssignedTransactionIds(void);
41 extern void ExpireOldKnownAssignedTransactionIds(TransactionId xid);
42
43 extern RunningTransactions GetRunningTransactionData(void);
44
45 extern Snapshot GetSnapshotData(Snapshot snapshot);
46
47 extern bool TransactionIdIsInProgress(TransactionId xid);
48 extern bool TransactionIdIsActive(TransactionId xid);
49 extern TransactionId GetOldestXmin(bool allDbs, bool ignoreVacuum);
50
51 extern int      GetTransactionsInCommit(TransactionId **xids_p);
52 extern bool HaveTransactionsInCommit(TransactionId *xids, int nxids);
53
54 extern PGPROC *BackendPidGetProc(int pid);
55 extern int      BackendXidGetPid(TransactionId xid);
56 extern bool IsBackendPid(int pid);
57
58 extern VirtualTransactionId *GetCurrentVirtualXIDs(TransactionId limitXmin,
59                                           bool excludeXmin0, bool allDbs, int excludeVacuum,
60                                           int *nvxids);
61 extern VirtualTransactionId *GetConflictingVirtualXIDs(TransactionId limitXmin, Oid dbOid);
62 extern pid_t CancelVirtualTransaction(VirtualTransactionId vxid, ProcSignalReason sigmode);
63
64 extern int      CountActiveBackends(void);
65 extern int      CountDBBackends(Oid databaseid);
66 extern void CancelDBBackends(Oid databaseid, ProcSignalReason sigmode, bool conflictPending);
67 extern int      CountUserBackends(Oid roleid);
68 extern bool CountOtherDBBackends(Oid databaseId,
69                                          int *nbackends, int *nprepared);
70
71 extern void XidCacheRemoveRunningXids(TransactionId xid,
72                                                   int nxids, const TransactionId *xids,
73                                                   TransactionId latestXid);
74
75 #endif   /* PROCARRAY_H */