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-03-11 10:16:42 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         5776 : 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         5776 :     if (count == 0)
      29              :     {
      30           12 :         appendStringInfoString(buf, " []");
      31           12 :         return;
      32              :     }
      33         5764 :     appendStringInfoString(buf, " [");
      34        95884 :     for (int i = 0; i < count; i++)
      35              :     {
      36        90120 :         elem_desc(buf, (char *) array + elem_size * i, data);
      37        90120 :         if (i < count - 1)
      38        84356 :             appendStringInfoString(buf, ", ");
      39              :     }
      40         5764 :     appendStringInfoChar(buf, ']');
      41              : }
      42              : 
      43              : void
      44        89032 : offset_elem_desc(StringInfo buf, void *offset, void *data)
      45              : {
      46        89032 :     appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
      47        89032 : }
      48              : 
      49              : void
      50          510 : redirect_elem_desc(StringInfo buf, void *offset, void *data)
      51              : {
      52          510 :     OffsetNumber *new_offset = (OffsetNumber *) offset;
      53              : 
      54          510 :     appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
      55          510 : }
      56              : 
      57              : void
      58            6 : oid_elem_desc(StringInfo buf, void *relid, void *data)
      59              : {
      60            6 :     appendStringInfo(buf, "%u", *(Oid *) relid);
      61            6 : }
        

Generated by: LCOV version 2.0-1