codekingpro/portable-devtools
115k
1/*2 * commit_ts.h3 *4 * PostgreSQL commit timestamp manager5 *6 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group7 * Portions Copyright (c) 1994, Regents of the University of California8 *9 * src/include/access/commit_ts.h10 */11#ifndef COMMIT_TS_H12#define COMMIT_TS_H13 14#include "access/xlog.h"15#include "datatype/timestamp.h"16#include "replication/origin.h"17#include "storage/sync.h"18 19 20extern PGDLLIMPORT bool track_commit_timestamp;21 22extern void TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids,23 TransactionId *subxids, TimestampTz timestamp,24 RepOriginId nodeid);25extern bool TransactionIdGetCommitTsData(TransactionId xid,26 TimestampTz *ts, RepOriginId *nodeid);27extern TransactionId GetLatestCommitTsData(TimestampTz *ts,28 RepOriginId *nodeid);29 30extern Size CommitTsShmemBuffers(void);31extern Size CommitTsShmemSize(void);32extern void CommitTsShmemInit(void);33extern void BootStrapCommitTs(void);34extern void StartupCommitTs(void);35extern void CommitTsParameterChange(bool newvalue, bool oldvalue);36extern void CompleteCommitTsInitialization(void);37extern void CheckPointCommitTs(void);38extern void ExtendCommitTs(TransactionId newestXact);39extern void TruncateCommitTs(TransactionId oldestXact);40extern void SetCommitTsLimit(TransactionId oldestXact,41 TransactionId newestXact);42extern void AdvanceOldestCommitTsXid(TransactionId oldestXact);43 44extern int committssyncfiletag(const FileTag *ftag, char *path);45 46/* XLOG stuff */47#define COMMIT_TS_ZEROPAGE 0x0048#define COMMIT_TS_TRUNCATE 0x1049 50typedef struct xl_commit_ts_set51{52 TimestampTz timestamp;53 RepOriginId nodeid;54 TransactionId mainxid;55 /* subxact Xids follow */56} xl_commit_ts_set;57 58#define SizeOfCommitTsSet (offsetof(xl_commit_ts_set, mainxid) + \59 sizeof(TransactionId))60 61typedef struct xl_commit_ts_truncate62{63 int pageno;64 TransactionId oldestXid;65} xl_commit_ts_truncate;66 67#define SizeOfCommitTsTruncate (offsetof(xl_commit_ts_truncate, oldestXid) + \68 sizeof(TransactionId))69 70extern void commit_ts_redo(XLogReaderState *record);71extern void commit_ts_desc(StringInfo buf, XLogReaderState *record);72extern const char *commit_ts_identify(uint8 info);73 74#endif /* COMMIT_TS_H */75 