LCOV - code coverage report
Current view: top level - src/backend/utils/misc - pg_config.c (source / functions) Hit Total Coverage
Test: PostgreSQL 16beta1 Lines: 12 12 100.0 %
Date: 2023-05-31 00:12:04 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-2023, 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 "catalog/pg_type.h"
      18             : #include "common/config_info.h"
      19             : #include "funcapi.h"
      20             : #include "miscadmin.h"
      21             : #include "port.h"
      22             : #include "utils/builtins.h"
      23             : 
      24             : Datum
      25           6 : pg_config(PG_FUNCTION_ARGS)
      26             : {
      27           6 :     ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
      28             :     ConfigData *configdata;
      29             :     size_t      configdata_len;
      30           6 :     int         i = 0;
      31             : 
      32             :     /* initialize our tuplestore */
      33           6 :     InitMaterializedSRF(fcinfo, 0);
      34             : 
      35           6 :     configdata = get_configdata(my_exec_path, &configdata_len);
      36         144 :     for (i = 0; i < configdata_len; i++)
      37             :     {
      38             :         Datum       values[2];
      39             :         bool        nulls[2];
      40             : 
      41         138 :         memset(values, 0, sizeof(values));
      42         138 :         memset(nulls, 0, sizeof(nulls));
      43             : 
      44         138 :         values[0] = CStringGetTextDatum(configdata[i].name);
      45         138 :         values[1] = CStringGetTextDatum(configdata[i].setting);
      46             : 
      47         138 :         tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls);
      48             :     }
      49             : 
      50           6 :     return (Datum) 0;
      51             : }

Generated by: LCOV version 1.14