/* * multixact.h * * PostgreSQL multi-transaction-log manager * * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * $PostgreSQL$ */ #ifndef MULTIXACT_H #define MULTIXACT_H #define InvalidMultiXactId ((MultiXactId) 0) #define FirstMultiXactId ((MultiXactId) 1) #define MultiXactIdIsValid(multi) ((multi) != InvalidMultiXactId) extern void MultiXactIdWait(MultiXactId multi); extern MultiXactId MultiXactIdExpand(MultiXactId multi, bool isMulti, TransactionId xid); extern bool MultiXactIdIsRunning(MultiXactId multi); extern void MultiXactIdSetMin(void); extern bool MultiXactIdPrecedes(MultiXactId multi1, MultiXactId multi2); extern void AtEOXact_MultiXact(void); extern int MultiXactShmemSize(void); extern void MultiXactShmemInit(void); extern void BootStrapMultiXact(void); extern void StartupMultiXact(MultiXactId nextMulti); extern void ShutdownMultiXact(void); extern MultiXactId MultiXactGetCheckptMulti(bool is_shutdown); extern void CheckPointMultiXact(void); extern void MultiXactSetNextMXact(MultiXactId nextMulti); #endif /* MULTIXACT_H */