clog.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * clog.h
  3. *
  4. * PostgreSQL transaction-commit-log manager
  5. *
  6. * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
  7. * Portions Copyright (c) 1994, Regents of the University of California
  8. *
  9. * src/include/access/clog.h
  10. */
  11. #ifndef CLOG_H
  12. #define CLOG_H
  13. #include "access/xlogreader.h"
  14. #include "lib/stringinfo.h"
  15. /*
  16. * Possible transaction statuses --- note that all-zeroes is the initial
  17. * state.
  18. *
  19. * A "subcommitted" transaction is a committed subtransaction whose parent
  20. * hasn't committed or aborted yet.
  21. */
  22. typedef int XidStatus;
  23. #define TRANSACTION_STATUS_IN_PROGRESS 0x00
  24. #define TRANSACTION_STATUS_COMMITTED 0x01
  25. #define TRANSACTION_STATUS_ABORTED 0x02
  26. #define TRANSACTION_STATUS_SUB_COMMITTED 0x03
  27. extern void TransactionIdSetTreeStatus(TransactionId xid, int nsubxids,
  28. TransactionId *subxids, XidStatus status, XLogRecPtr lsn);
  29. extern XidStatus TransactionIdGetStatus(TransactionId xid, XLogRecPtr *lsn);
  30. extern Size CLOGShmemBuffers(void);
  31. extern Size CLOGShmemSize(void);
  32. extern void CLOGShmemInit(void);
  33. extern void BootStrapCLOG(void);
  34. extern void StartupCLOG(void);
  35. extern void TrimCLOG(void);
  36. extern void ShutdownCLOG(void);
  37. extern void CheckPointCLOG(void);
  38. extern void ExtendCLOG(TransactionId newestXact);
  39. extern void TruncateCLOG(TransactionId oldestXact);
  40. /* XLOG stuff */
  41. #define CLOG_ZEROPAGE 0x00
  42. #define CLOG_TRUNCATE 0x10
  43. extern void clog_redo(XLogReaderState *record);
  44. extern void clog_desc(StringInfo buf, XLogReaderState *record);
  45. extern const char *clog_identify(uint8 info);
  46. #endif /* CLOG_H */