multixact.h 1.25 KB
Newer Older
1 2 3 4 5 6 7 8
/*
 * 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
 *
9
 * $PostgreSQL: pgsql/src/include/access/multixact.h,v 1.2 2005/05/03 19:42:41 tgl Exp $
10 11 12 13 14 15 16 17 18
 */
#ifndef MULTIXACT_H
#define MULTIXACT_H

#define InvalidMultiXactId	((MultiXactId) 0)
#define FirstMultiXactId	((MultiXactId) 1)

#define MultiXactIdIsValid(multi) ((multi) != InvalidMultiXactId)

19 20
extern MultiXactId MultiXactIdCreate(TransactionId xid1, TransactionId xid2);
extern MultiXactId MultiXactIdExpand(MultiXactId multi, TransactionId xid);
21
extern bool MultiXactIdIsRunning(MultiXactId multi);
22
extern void MultiXactIdWait(MultiXactId multi);
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
extern void MultiXactIdSetOldestMember(void);

extern void AtEOXact_MultiXact(void);

extern int	MultiXactShmemSize(void);
extern void MultiXactShmemInit(void);
extern void BootStrapMultiXact(void);
extern void StartupMultiXact(void);
extern void ShutdownMultiXact(void);
extern MultiXactId MultiXactGetCheckptMulti(bool is_shutdown);
extern void CheckPointMultiXact(void);
extern void MultiXactSetNextMXact(MultiXactId nextMulti);
extern void MultiXactAdvanceNextMXact(MultiXactId minMulti);

#endif   /* MULTIXACT_H */