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-2024, 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
373 pg@bowt.ie 24 :CBC 6177 : 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 [ + + ]: 6177 : if (count == 0)
29 : : {
30 : 8 : appendStringInfoString(buf, " []");
31 : 8 : return;
32 : : }
370 33 : 6169 : appendStringInfoString(buf, " [");
373 34 [ + + ]: 97528 : for (int i = 0; i < count; i++)
35 : : {
36 : 91359 : elem_desc(buf, (char *) array + elem_size * i, data);
370 37 [ + + ]: 91359 : if (i < count - 1)
38 : 85190 : appendStringInfoString(buf, ", ");
39 : : }
194 drowley@postgresql.o 40 :GNC 6169 : appendStringInfoChar(buf, ']');
41 : : }
42 : :
43 : : void
373 pg@bowt.ie 44 :CBC 90056 : offset_elem_desc(StringInfo buf, void *offset, void *data)
45 : : {
46 : 90056 : appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
47 : 90056 : }
48 : :
49 : : void
50 : 673 : redirect_elem_desc(StringInfo buf, void *offset, void *data)
51 : : {
52 : 673 : OffsetNumber *new_offset = (OffsetNumber *) offset;
53 : :
54 : 673 : appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
55 : 673 : }
56 : :
57 : : void
370 pg@bowt.ie 58 :GBC 6 : oid_elem_desc(StringInfo buf, void *relid, void *data)
59 : : {
373 60 : 6 : appendStringInfo(buf, "%u", *(Oid *) relid);
61 : 6 : }
|