PostgreSQL Source Code git master
committsdesc.c
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * committsdesc.c
4 * rmgr descriptor routines for access/transam/commit_ts.c
5 *
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 *
10 * IDENTIFICATION
11 * src/backend/access/rmgrdesc/committsdesc.c
12 *
13 *-------------------------------------------------------------------------
14 */
15#include "postgres.h"
16
17#include "access/commit_ts.h"
18
19
20void
22{
23 char *rec = XLogRecGetData(record);
24 uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
25
26 if (info == COMMIT_TS_ZEROPAGE)
27 {
28 int64 pageno;
29
30 memcpy(&pageno, rec, sizeof(pageno));
31 appendStringInfo(buf, "%lld", (long long) pageno);
32 }
33 else if (info == COMMIT_TS_TRUNCATE)
34 {
36
37 appendStringInfo(buf, "pageno %lld, oldestXid %u",
38 (long long) trunc->pageno, trunc->oldestXid);
39 }
40}
41
42const char *
44{
45 switch (info)
46 {
48 return "ZEROPAGE";
50 return "TRUNCATE";
51 default:
52 return NULL;
53 }
54}
uint8_t uint8
Definition: c.h:486
int64_t int64
Definition: c.h:485
#define COMMIT_TS_ZEROPAGE
Definition: commit_ts.h:46
#define COMMIT_TS_TRUNCATE
Definition: commit_ts.h:47
const char * commit_ts_identify(uint8 info)
Definition: committsdesc.c:43
void commit_ts_desc(StringInfo buf, XLogReaderState *record)
Definition: committsdesc.c:21
static char * buf
Definition: pg_test_fsync.c:72
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:145
TransactionId oldestXid
Definition: commit_ts.h:63
#define XLogRecGetInfo(decoder)
Definition: xlogreader.h:410
#define XLogRecGetData(decoder)
Definition: xlogreader.h:415