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-2024, 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 
20 void
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 
42 const char *
44 {
45  switch (info)
46  {
47  case COMMIT_TS_ZEROPAGE:
48  return "ZEROPAGE";
49  case COMMIT_TS_TRUNCATE:
50  return "TRUNCATE";
51  default:
52  return NULL;
53  }
54 }
unsigned char uint8
Definition: c.h:504
#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:73
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:97
TransactionId oldestXid
Definition: commit_ts.h:63
#define XLogRecGetInfo(decoder)
Definition: xlogreader.h:410
#define XLogRecGetData(decoder)
Definition: xlogreader.h:415
#define XLR_INFO_MASK
Definition: xlogrecord.h:62