Age Owner Branch data TLA 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 "port.h"
21 : : #include "utils/builtins.h"
22 : :
23 : : Datum
2979 mail@joeconway.com 24 :CBC 3 : pg_config(PG_FUNCTION_ARGS)
25 : : {
2866 rhaas@postgresql.org 26 : 3 : ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
27 : : ConfigData *configdata;
28 : : size_t configdata_len;
29 : 3 : int i = 0;
30 : :
31 : : /* initialize our tuplestore */
544 michael@paquier.xyz 32 : 3 : InitMaterializedSRF(fcinfo, 0);
33 : :
2979 mail@joeconway.com 34 : 3 : configdata = get_configdata(my_exec_path, &configdata_len);
35 [ + + ]: 72 : for (i = 0; i < configdata_len; i++)
36 : : {
37 : : Datum values[2];
38 : : bool nulls[2];
39 : :
780 michael@paquier.xyz 40 : 69 : memset(values, 0, sizeof(values));
41 : 69 : memset(nulls, 0, sizeof(nulls));
42 : :
43 : 69 : values[0] = CStringGetTextDatum(configdata[i].name);
44 : 69 : values[1] = CStringGetTextDatum(configdata[i].setting);
45 : :
769 46 : 69 : tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls);
47 : : }
48 : :
2979 mail@joeconway.com 49 : 3 : return (Datum) 0;
50 : : }
|