Coverage Report

Created: 2026-08-14 06:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/postgres/src/backend/access/rmgrdesc/smgrdesc.c
Line
Count
Source
1
/*-------------------------------------------------------------------------
2
 *
3
 * smgrdesc.c
4
 *    rmgr descriptor routines for catalog/storage.c
5
 *
6
 * Portions Copyright (c) 1996-2026, 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
17
#include "catalog/storage_xlog.h"
18
19
20
void
21
smgr_desc(StringInfo buf, XLogReaderState *record)
22
0
{
23
0
  char     *rec = XLogRecGetData(record);
24
0
  uint8   info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
25
26
0
  if (info == XLOG_SMGR_CREATE)
27
0
  {
28
0
    xl_smgr_create *xlrec = (xl_smgr_create *) rec;
29
30
0
    appendStringInfoString(buf,
31
0
                 relpathperm(xlrec->rlocator, xlrec->forkNum).str);
32
0
  }
33
0
  else if (info == XLOG_SMGR_TRUNCATE)
34
0
  {
35
0
    xl_smgr_truncate *xlrec = (xl_smgr_truncate *) rec;
36
37
0
    appendStringInfo(buf, "%s to %u blocks flags %d",
38
0
             relpathperm(xlrec->rlocator, MAIN_FORKNUM).str,
39
0
             xlrec->blkno, xlrec->flags);
40
0
  }
41
0
}
42
43
const char *
44
smgr_identify(uint8 info)
45
0
{
46
0
  const char *id = NULL;
47
48
0
  switch (info & ~XLR_INFO_MASK)
49
0
  {
50
0
    case XLOG_SMGR_CREATE:
51
0
      id = "CREATE";
52
0
      break;
53
0
    case XLOG_SMGR_TRUNCATE:
54
0
      id = "TRUNCATE";
55
0
      break;
56
0
  }
57
58
0
  return id;
59
0
}