PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
rmgrdesc_utils.c
Go to the documentation of this file.
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
17#include "storage/off.h"
18
19/*
20 * Helper function to print an array, in the format described in the
21 * README.
22 */
23void
24array_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{
28 if (count == 0)
29 {
31 return;
32 }
34 for (int i = 0; i < count; i++)
35 {
36 elem_desc(buf, (char *) array + elem_size * i, data);
37 if (i < count - 1)
39 }
41}
42
43void
44offset_elem_desc(StringInfo buf, void *offset, void *data)
45{
46 appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
47}
48
49void
51{
52 OffsetNumber *new_offset = (OffsetNumber *) offset;
53
54 appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
55}
56
57void
58oid_elem_desc(StringInfo buf, void *relid, void *data)
59{
60 appendStringInfo(buf, "%u", *(Oid *) relid);
61}
int i
Definition: isn.c:77
uint16 OffsetNumber
Definition: off.h:24
const void * data
static char * buf
Definition: pg_test_fsync.c:72
unsigned int Oid
Definition: postgres_ext.h:30
void oid_elem_desc(StringInfo buf, void *relid, void *data)
void redirect_elem_desc(StringInfo buf, void *offset, void *data)
void array_desc(StringInfo buf, void *array, size_t elem_size, int count, void(*elem_desc)(StringInfo buf, void *elem, void *data), void *data)
void offset_elem_desc(StringInfo buf, void *offset, void *data)
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:145
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:230
void appendStringInfoChar(StringInfo str, char ch)
Definition: stringinfo.c:242