LCOV - code coverage report
Current view: top level - src/backend/access/rmgrdesc - rmgrdesc_utils.c (source / functions) Coverage Total Hit
Test: PostgreSQL 19devel Lines: 75.0 % 20 15
Test Date: 2026-03-02 09:15:03 Functions: 75.0 % 4 3
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           87 : 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           87 :     if (count == 0)
      29              :     {
      30            0 :         appendStringInfoString(buf, " []");
      31            0 :         return;
      32              :     }
      33           87 :     appendStringInfoString(buf, " [");
      34          513 :     for (int i = 0; i < count; i++)
      35              :     {
      36          426 :         elem_desc(buf, (char *) array + elem_size * i, data);
      37          426 :         if (i < count - 1)
      38          339 :             appendStringInfoString(buf, ", ");
      39              :     }
      40           87 :     appendStringInfoChar(buf, ']');
      41              : }
      42              : 
      43              : void
      44          376 : offset_elem_desc(StringInfo buf, void *offset, void *data)
      45              : {
      46          376 :     appendStringInfo(buf, "%u", *(OffsetNumber *) offset);
      47          376 : }
      48              : 
      49              : void
      50           42 : redirect_elem_desc(StringInfo buf, void *offset, void *data)
      51              : {
      52           42 :     OffsetNumber *new_offset = (OffsetNumber *) offset;
      53              : 
      54           42 :     appendStringInfo(buf, "%u->%u", new_offset[0], new_offset[1]);
      55           42 : }
      56              : 
      57              : void
      58            0 : oid_elem_desc(StringInfo buf, void *relid, void *data)
      59              : {
      60            0 :     appendStringInfo(buf, "%u", *(Oid *) relid);
      61            0 : }
        

Generated by: LCOV version 2.0-1