PostgreSQL Source Code  git master
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, 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 void
20 array_desc(StringInfo buf, void *array, size_t elem_size, int count,
21  void (*elem_desc) (StringInfo buf, void *elem, void *data),
22  void *data)
23 {
24  if (count == 0)
25  {
27  return;
28  }
30  for (int i = 0; i < count; i++)
31  {
32  elem_desc(buf, (char *) array + elem_size * i, data);
33  if (i < count - 1)
35  }
37 }
38 
39 void
40 offset_elem_desc(StringInfo buf, void *offset, void *data)
41 {
42  appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
43 }
44 
45 void
46 redirect_elem_desc(StringInfo buf, void *offset, void *data)
47 {
48  OffsetNumber *new_offset = (OffsetNumber *) offset;
49 
50  appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
51 }
52 
53 void
54 oid_elem_desc(StringInfo buf, void *relid, void *data)
55 {
56  appendStringInfo(buf, "%u", *(Oid *) relid);
57 }
int i
Definition: isn.c:73
uint16 OffsetNumber
Definition: off.h:24
const void * data
static char * buf
Definition: pg_test_fsync.c:67
unsigned int Oid
Definition: postgres_ext.h:31
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:91
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:176