Coverage Report

Created: 2025-07-03 06:49

/src/postgres/src/backend/access/rmgrdesc/rmgrdesc_utils.c
Line
Count
Source (jump to first uncovered line)
1
/*-------------------------------------------------------------------------
2
 *
3
 * rmgrdesc_utils.c
4
 *    Support functions for rmgrdesc routines
5
 *
6
 * Copyright (c) 2023-2025, PostgreSQL Global Development Group
7
 *
8
 *
9
 * IDENTIFICATION
10
 *    src/backend/access/rmgrdesc/rmgrdesc_utils.c
11
 *
12
 *-------------------------------------------------------------------------
13
 */
14
#include "postgres.h"
15
16
#include "access/rmgrdesc_utils.h"
17
#include "storage/off.h"
18
19
/*
20
 * Helper function to print an array, in the format described in the
21
 * README.
22
 */
23
void
24
array_desc(StringInfo buf, void *array, size_t elem_size, int count,
25
       void (*elem_desc) (StringInfo buf, void *elem, void *data),
26
       void *data)
27
0
{
28
0
  if (count == 0)
29
0
  {
30
0
    appendStringInfoString(buf, " []");
31
0
    return;
32
0
  }
33
0
  appendStringInfoString(buf, " [");
34
0
  for (int i = 0; i < count; i++)
35
0
  {
36
0
    elem_desc(buf, (char *) array + elem_size * i, data);
37
0
    if (i < count - 1)
38
0
      appendStringInfoString(buf, ", ");
39
0
  }
40
0
  appendStringInfoChar(buf, ']');
41
0
}
42
43
void
44
offset_elem_desc(StringInfo buf, void *offset, void *data)
45
0
{
46
0
  appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
47
0
}
48
49
void
50
redirect_elem_desc(StringInfo buf, void *offset, void *data)
51
0
{
52
0
  OffsetNumber *new_offset = (OffsetNumber *) offset;
53
54
0
  appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
55
0
}
56
57
void
58
oid_elem_desc(StringInfo buf, void *relid, void *data)
59
0
{
60
0
  appendStringInfo(buf, "%u", *(Oid *) relid);
61
0
}