PostgreSQL Source Code git master
Loading...
Searching...
No Matches
commit_ts.h
Go to the documentation of this file.
1/*
2 * commit_ts.h
3 *
4 * PostgreSQL commit timestamp manager
5 *
6 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * src/include/access/commit_ts.h
10 */
11#ifndef COMMIT_TS_H
12#define COMMIT_TS_H
13
14#include "access/xlog.h"
15#include "datatype/timestamp.h"
16#include "replication/origin.h"
17#include "storage/sync.h"
18
19
21
24 ReplOriginId nodeid);
26 TimestampTz *ts, ReplOriginId *nodeid);
28 ReplOriginId *nodeid);
29
30extern void BootStrapCommitTs(void);
31extern void StartupCommitTs(void);
32extern void CommitTsParameterChange(bool newvalue, bool oldvalue);
33extern void CompleteCommitTsInitialization(void);
34extern void CheckPointCommitTs(void);
36extern void TruncateCommitTs(TransactionId oldestXact);
37extern void SetCommitTsLimit(TransactionId oldestXact,
39extern void AdvanceOldestCommitTsXid(TransactionId oldestXact);
40
41extern int committssyncfiletag(const FileTag *ftag, char *path);
42
43/* XLOG stuff */
44#define COMMIT_TS_ZEROPAGE 0x00
45#define COMMIT_TS_TRUNCATE 0x10
46
52
53#define SizeOfCommitTsTruncate (offsetof(xl_commit_ts_truncate, oldestXid) + \
54 sizeof(TransactionId))
55
56extern void commit_ts_redo(XLogReaderState *record);
57extern void commit_ts_desc(StringInfo buf, XLogReaderState *record);
58extern const char *commit_ts_identify(uint8 info);
59
60#endif /* COMMIT_TS_H */
#define PGDLLIMPORT
Definition c.h:1421
uint8_t uint8
Definition c.h:622
int64_t int64
Definition c.h:621
uint32 TransactionId
Definition c.h:736
void StartupCommitTs(void)
Definition commit_ts.c:613
void CommitTsParameterChange(bool newvalue, bool oldvalue)
Definition commit_ts.c:645
void AdvanceOldestCommitTsXid(TransactionId oldestXact)
Definition commit_ts.c:919
const char * commit_ts_identify(uint8 info)
int committssyncfiletag(const FileTag *ftag, char *path)
Definition commit_ts.c:1032
void CompleteCommitTsInitialization(void)
Definition commit_ts.c:623
void TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids, TransactionId *subxids, TimestampTz timestamp, ReplOriginId nodeid)
Definition commit_ts.c:150
void TruncateCommitTs(TransactionId oldestXact)
Definition commit_ts.c:866
void commit_ts_redo(XLogReaderState *record)
Definition commit_ts.c:995
void BootStrapCommitTs(void)
Definition commit_ts.c:599
void commit_ts_desc(StringInfo buf, XLogReaderState *record)
void SetCommitTsLimit(TransactionId oldestXact, TransactionId newestXact)
Definition commit_ts.c:892
TransactionId GetLatestCommitTsData(TimestampTz *ts, ReplOriginId *nodeid)
Definition commit_ts.c:369
void ExtendCommitTs(TransactionId newestXact)
Definition commit_ts.c:821
bool TransactionIdGetCommitTsData(TransactionId xid, TimestampTz *ts, ReplOriginId *nodeid)
Definition commit_ts.c:283
PGDLLIMPORT bool track_commit_timestamp
Definition commit_ts.c:121
void CheckPointCommitTs(void)
Definition commit_ts.c:799
int64 TimestampTz
Definition timestamp.h:39
static char buf[DEFAULT_XLOG_SEG_SIZE]
int64 timestamp
static int fb(int x)
Definition sync.h:51
TransactionId oldestXid
Definition commit_ts.h:50
uint16 ReplOriginId
Definition xlogdefs.h:69