PostgreSQL Source Code git master
smgrdesc.c
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * smgrdesc.c
4 * rmgr descriptor routines for catalog/storage.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/smgrdesc.c
12 *
13 *-------------------------------------------------------------------------
14 */
15#include "postgres.h"
16
18
19
20void
22{
23 char *rec = XLogRecGetData(record);
24 uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
25
26 if (info == XLOG_SMGR_CREATE)
27 {
28 xl_smgr_create *xlrec = (xl_smgr_create *) rec;
29
31 relpathperm(xlrec->rlocator, xlrec->forkNum).str);
32 }
33 else if (info == XLOG_SMGR_TRUNCATE)
34 {
35 xl_smgr_truncate *xlrec = (xl_smgr_truncate *) rec;
36
37 appendStringInfo(buf, "%s to %u blocks flags %d",
39 xlrec->blkno, xlrec->flags);
40 }
41}
42
43const char *
45{
46 const char *id = NULL;
47
48 switch (info & ~XLR_INFO_MASK)
49 {
51 id = "CREATE";
52 break;
54 id = "TRUNCATE";
55 break;
56 }
57
58 return id;
59}
uint8_t uint8
Definition: c.h:500
static char * buf
Definition: pg_test_fsync.c:72
@ MAIN_FORKNUM
Definition: relpath.h:58
#define relpathperm(rlocator, forknum)
Definition: relpath.h:146
const char * smgr_identify(uint8 info)
Definition: smgrdesc.c:44
void smgr_desc(StringInfo buf, XLogReaderState *record)
Definition: smgrdesc.c:21
#define XLOG_SMGR_CREATE
Definition: storage_xlog.h:30
#define XLOG_SMGR_TRUNCATE
Definition: storage_xlog.h:31
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:145
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:230
ForkNumber forkNum
Definition: storage_xlog.h:36
RelFileLocator rlocator
Definition: storage_xlog.h:35
RelFileLocator rlocator
Definition: storage_xlog.h:49
BlockNumber blkno
Definition: storage_xlog.h:48
#define XLogRecGetInfo(decoder)
Definition: xlogreader.h:410
#define XLogRecGetData(decoder)
Definition: xlogreader.h:415
#define XLR_INFO_MASK
Definition: xlogrecord.h:62