Age Owner Branch data TLA Line data Source code
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
883 pg@bowt.ie 24 :CBC 6243 : 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 : : {
28 [ + + ]: 6243 : if (count == 0)
29 : : {
30 : 10 : appendStringInfoString(buf, " []");
31 : 10 : return;
32 : : }
880 33 : 6233 : appendStringInfoString(buf, " [");
883 34 [ + + ]: 98317 : for (int i = 0; i < count; i++)
35 : : {
36 : 92084 : elem_desc(buf, (char *) array + elem_size * i, data);
880 37 [ + + ]: 92084 : if (i < count - 1)
38 : 85851 : appendStringInfoString(buf, ", ");
39 : : }
704 drowley@postgresql.o 40 : 6233 : appendStringInfoChar(buf, ']');
41 : : }
42 : :
43 : : void
883 pg@bowt.ie 44 : 90740 : offset_elem_desc(StringInfo buf, void *offset, void *data)
45 : : {
46 : 90740 : appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
47 : 90740 : }
48 : :
49 : : void
50 : 682 : redirect_elem_desc(StringInfo buf, void *offset, void *data)
51 : : {
52 : 682 : OffsetNumber *new_offset = (OffsetNumber *) offset;
53 : :
54 : 682 : appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
55 : 682 : }
56 : :
57 : : void
880 58 : 6 : oid_elem_desc(StringInfo buf, void *relid, void *data)
59 : : {
883 60 : 6 : appendStringInfo(buf, "%u", *(Oid *) relid);
61 : 6 : }
|