Coverage Report

Created: 2025-07-03 06:49

/src/postgres/src/backend/utils/misc/pg_config.c
Line
Count
Source (jump to first uncovered line)
1
/*-------------------------------------------------------------------------
2
 *
3
 * pg_config.c
4
 *    Expose same output as pg_config except as an SRF
5
 *
6
 * Portions Copyright (c) 1996-2025, 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
pg_config(PG_FUNCTION_ARGS)
24
0
{
25
0
  ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
26
0
  ConfigData *configdata;
27
0
  size_t    configdata_len;
28
0
  int     i = 0;
29
30
  /* initialize our tuplestore */
31
0
  InitMaterializedSRF(fcinfo, 0);
32
33
0
  configdata = get_configdata(my_exec_path, &configdata_len);
34
0
  for (i = 0; i < configdata_len; i++)
35
0
  {
36
0
    Datum   values[2];
37
0
    bool    nulls[2];
38
39
0
    memset(values, 0, sizeof(values));
40
0
    memset(nulls, 0, sizeof(nulls));
41
42
0
    values[0] = CStringGetTextDatum(configdata[i].name);
43
0
    values[1] = CStringGetTextDatum(configdata[i].setting);
44
45
0
    tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls);
46
0
  }
47
48
0
  return (Datum) 0;
49
0
}