*** pgsql/src/include/storage/procarray.h 2009/06/11 14:49:12 1.26 --- pgsql/src/include/storage/procarray.h 2009/12/19 01:32:44 1.27 *************** *** 7,13 **** * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * ! * $PostgreSQL: pgsql/src/include/storage/procarray.h,v 1.25 2009/04/04 17:40:36 tgl Exp $ * *------------------------------------------------------------------------- */ --- 7,13 ---- * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * ! * $PostgreSQL: pgsql/src/include/storage/procarray.h,v 1.26 2009/06/11 14:49:12 momjian Exp $ * *------------------------------------------------------------------------- */ *************** *** 15,20 **** --- 15,21 ---- #define PROCARRAY_H #include "storage/lock.h" + #include "storage/standby.h" #include "utils/snapshot.h" *************** extern void ProcArrayRemove(PGPROC *proc *** 26,31 **** --- 27,45 ---- extern void ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid); extern void ProcArrayClearTransaction(PGPROC *proc); + extern void ProcArrayInitRecoveryInfo(TransactionId oldestActiveXid); + extern void ProcArrayApplyRecoveryInfo(RunningTransactions running); + extern void ProcArrayApplyXidAssignment(TransactionId topxid, + int nsubxids, TransactionId *subxids); + + extern void RecordKnownAssignedTransactionIds(TransactionId xid); + extern void ExpireTreeKnownAssignedTransactionIds(TransactionId xid, + int nsubxids, TransactionId *subxids); + extern void ExpireAllKnownAssignedTransactionIds(void); + extern void ExpireOldKnownAssignedTransactionIds(TransactionId xid); + + extern RunningTransactions GetRunningTransactionData(void); + extern Snapshot GetSnapshotData(Snapshot snapshot); extern bool TransactionIdIsInProgress(TransactionId xid); *************** extern bool IsBackendPid(int pid); *** 42,47 **** --- 56,66 ---- extern VirtualTransactionId *GetCurrentVirtualXIDs(TransactionId limitXmin, bool excludeXmin0, bool allDbs, int excludeVacuum, int *nvxids); + extern VirtualTransactionId *GetConflictingVirtualXIDs(TransactionId limitXmin, + Oid dbOid, bool skipExistingConflicts); + extern pid_t CancelVirtualTransaction(VirtualTransactionId vxid, + int cancel_mode); + extern int CountActiveBackends(void); extern int CountDBBackends(Oid databaseid); extern int CountUserBackends(Oid roleid);