PostgreSQL Source Code  git master
pg_config.c File Reference
#include "postgres.h"
#include "common/config_info.h"
#include "funcapi.h"
#include "miscadmin.h"
#include "port.h"
#include "utils/builtins.h"
Include dependency graph for pg_config.c:

Go to the source code of this file.

Functions

Datum pg_config (PG_FUNCTION_ARGS)
 

Function Documentation

◆ pg_config()

Datum pg_config ( PG_FUNCTION_ARGS  )

Definition at line 24 of file pg_config.c.

25 {
26  ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
27  ConfigData *configdata;
28  size_t configdata_len;
29  int i = 0;
30 
31  /* initialize our tuplestore */
32  InitMaterializedSRF(fcinfo, 0);
33 
34  configdata = get_configdata(my_exec_path, &configdata_len);
35  for (i = 0; i < configdata_len; i++)
36  {
37  Datum values[2];
38  bool nulls[2];
39 
40  memset(values, 0, sizeof(values));
41  memset(nulls, 0, sizeof(nulls));
42 
43  values[0] = CStringGetTextDatum(configdata[i].name);
44  values[1] = CStringGetTextDatum(configdata[i].setting);
45 
46  tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls);
47  }
48 
49  return (Datum) 0;
50 }
static Datum values[MAXATTR]
Definition: bootstrap.c:152
#define CStringGetTextDatum(s)
Definition: builtins.h:97
ConfigData * get_configdata(const char *my_exec_path, size_t *configdata_len)
Definition: config_info.c:33
void InitMaterializedSRF(FunctionCallInfo fcinfo, bits32 flags)
Definition: funcapi.c:76
char my_exec_path[MAXPGPATH]
Definition: globals.c:78
int i
Definition: isn.c:73
uintptr_t Datum
Definition: postgres.h:64
TupleDesc setDesc
Definition: execnodes.h:340
Tuplestorestate * setResult
Definition: execnodes.h:339
void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc, const Datum *values, const bool *isnull)
Definition: tuplestore.c:750
const char * name

References CStringGetTextDatum, get_configdata(), i, InitMaterializedSRF(), my_exec_path, name, ReturnSetInfo::setDesc, ReturnSetInfo::setResult, tuplestore_putvalues(), and values.