LCOV - code coverage report
Current view: top level - src/bin/pg_waldump - rmgrdesc_utils.c (source / functions) Coverage Total Hit
Test: PostgreSQL 19devel Lines: 100.0 % 20 20
Test Date: 2026-04-18 20:16:25 Functions: 100.0 % 4 4
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /*-------------------------------------------------------------------------
       2              :  *
       3              :  * rmgrdesc_utils.c
       4              :  *    Support functions for rmgrdesc routines
       5              :  *
       6              :  * Copyright (c) 2023-2026, 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         7356 : 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         7356 :     if (count == 0)
      29              :     {
      30           10 :         appendStringInfoString(buf, " []");
      31           10 :         return;
      32              :     }
      33         7346 :     appendStringInfoString(buf, " [");
      34       180631 :     for (int i = 0; i < count; i++)
      35              :     {
      36       173285 :         elem_desc(buf, (char *) array + elem_size * i, data);
      37       173285 :         if (i < count - 1)
      38       165939 :             appendStringInfoString(buf, ", ");
      39              :     }
      40         7346 :     appendStringInfoChar(buf, ']');
      41              : }
      42              : 
      43              : void
      44       172038 : offset_elem_desc(StringInfo buf, void *offset, void *data)
      45              : {
      46       172038 :     appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
      47       172038 : }
      48              : 
      49              : void
      50          626 : redirect_elem_desc(StringInfo buf, void *offset, void *data)
      51              : {
      52          626 :     OffsetNumber *new_offset = (OffsetNumber *) offset;
      53              : 
      54          626 :     appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
      55          626 : }
      56              : 
      57              : void
      58           14 : oid_elem_desc(StringInfo buf, void *relid, void *data)
      59              : {
      60           14 :     appendStringInfo(buf, "%u", *(Oid *) relid);
      61           14 : }
        

Generated by: LCOV version 2.0-1