LCOV - code coverage report
Current view: top level - src/backend/utils/misc - pg_config.c (source / functions) Hit Total Coverage
Test: PostgreSQL 18devel Lines: 12 12 100.0 %
Date: 2024-11-21 08:14:44 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*-------------------------------------------------------------------------
       2             :  *
       3             :  * pg_config.c
       4             :  *      Expose same output as pg_config except as an SRF
       5             :  *
       6             :  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
       7             :  * Portions Copyright (c) 1994, Regents of the University of California
       8             :  *
       9             :  * IDENTIFICATION
      10             :  *    src/backend/utils/misc/pg_config.c
      11             :  *
      12             :  *-------------------------------------------------------------------------
      13             :  */
      14             : 
      15             : #include "postgres.h"
      16             : 
      17             : #include "common/config_info.h"
      18             : #include "funcapi.h"
      19             : #include "miscadmin.h"
      20             : #include "utils/builtins.h"
      21             : 
      22             : Datum
      23           6 : pg_config(PG_FUNCTION_ARGS)
      24             : {
      25           6 :     ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
      26             :     ConfigData *configdata;
      27             :     size_t      configdata_len;
      28           6 :     int         i = 0;
      29             : 
      30             :     /* initialize our tuplestore */
      31           6 :     InitMaterializedSRF(fcinfo, 0);
      32             : 
      33           6 :     configdata = get_configdata(my_exec_path, &configdata_len);
      34         144 :     for (i = 0; i < configdata_len; i++)
      35             :     {
      36             :         Datum       values[2];
      37             :         bool        nulls[2];
      38             : 
      39         138 :         memset(values, 0, sizeof(values));
      40         138 :         memset(nulls, 0, sizeof(nulls));
      41             : 
      42         138 :         values[0] = CStringGetTextDatum(configdata[i].name);
      43         138 :         values[1] = CStringGetTextDatum(configdata[i].setting);
      44             : 
      45         138 :         tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls);
      46             :     }
      47             : 
      48           6 :     return (Datum) 0;
      49             : }

Generated by: LCOV version 1.14