init
This commit is contained in:
78
db_include/access/commit_ts.h
Executable file
78
db_include/access/commit_ts.h
Executable file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* commit_ts.h
|
||||
*
|
||||
* PostgreSQL commit timestamp manager
|
||||
*
|
||||
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* src/include/access/commit_ts.h
|
||||
*/
|
||||
#ifndef COMMIT_TS_H
|
||||
#define COMMIT_TS_H
|
||||
|
||||
#include "access/xlog.h"
|
||||
#include "datatype/timestamp.h"
|
||||
#include "replication/origin.h"
|
||||
#include "storage/sync.h"
|
||||
#include "utils/guc.h"
|
||||
|
||||
|
||||
extern PGDLLIMPORT bool track_commit_timestamp;
|
||||
|
||||
extern bool check_track_commit_timestamp(bool *newval, void **extra,
|
||||
GucSource source);
|
||||
|
||||
extern void TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids,
|
||||
TransactionId *subxids, TimestampTz timestamp,
|
||||
RepOriginId nodeid);
|
||||
extern bool TransactionIdGetCommitTsData(TransactionId xid,
|
||||
TimestampTz *ts, RepOriginId *nodeid);
|
||||
extern TransactionId GetLatestCommitTsData(TimestampTz *ts,
|
||||
RepOriginId *nodeid);
|
||||
|
||||
extern Size CommitTsShmemBuffers(void);
|
||||
extern Size CommitTsShmemSize(void);
|
||||
extern void CommitTsShmemInit(void);
|
||||
extern void BootStrapCommitTs(void);
|
||||
extern void StartupCommitTs(void);
|
||||
extern void CommitTsParameterChange(bool newvalue, bool oldvalue);
|
||||
extern void CompleteCommitTsInitialization(void);
|
||||
extern void CheckPointCommitTs(void);
|
||||
extern void ExtendCommitTs(TransactionId newestXact);
|
||||
extern void TruncateCommitTs(TransactionId oldestXact);
|
||||
extern void SetCommitTsLimit(TransactionId oldestXact,
|
||||
TransactionId newestXact);
|
||||
extern void AdvanceOldestCommitTsXid(TransactionId oldestXact);
|
||||
|
||||
extern int committssyncfiletag(const FileTag *ftag, char *path);
|
||||
|
||||
/* XLOG stuff */
|
||||
#define COMMIT_TS_ZEROPAGE 0x00
|
||||
#define COMMIT_TS_TRUNCATE 0x10
|
||||
|
||||
typedef struct xl_commit_ts_set
|
||||
{
|
||||
TimestampTz timestamp;
|
||||
RepOriginId nodeid;
|
||||
TransactionId mainxid;
|
||||
/* subxact Xids follow */
|
||||
} xl_commit_ts_set;
|
||||
|
||||
#define SizeOfCommitTsSet (offsetof(xl_commit_ts_set, mainxid) + \
|
||||
sizeof(TransactionId))
|
||||
|
||||
typedef struct xl_commit_ts_truncate
|
||||
{
|
||||
int pageno;
|
||||
TransactionId oldestXid;
|
||||
} xl_commit_ts_truncate;
|
||||
|
||||
#define SizeOfCommitTsTruncate (offsetof(xl_commit_ts_truncate, oldestXid) + \
|
||||
sizeof(TransactionId))
|
||||
|
||||
extern void commit_ts_redo(XLogReaderState *record);
|
||||
extern void commit_ts_desc(StringInfo buf, XLogReaderState *record);
|
||||
extern const char *commit_ts_identify(uint8 info);
|
||||
|
||||
#endif /* COMMIT_TS_H */
|
||||
Reference in New Issue
Block a user