diff options
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r-- | src/backend/utils/misc/guc.c | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 77cf062685a..a5651ff7f07 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <peter_e@gmx.net>. * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.122 2003/05/02 22:02:47 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.123 2003/05/06 20:26:27 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -2438,12 +2438,41 @@ set_config_by_name(PG_FUNCTION_ARGS) * SHOW command */ void -GetPGVariable(const char *name) +GetPGVariable(const char *name, DestReceiver *dest) { if (strcasecmp(name, "all") == 0) - ShowAllGUCConfig(); + ShowAllGUCConfig(dest); else - ShowGUCConfigOption(name); + ShowGUCConfigOption(name, dest); +} + +TupleDesc +GetPGVariableResultDesc(const char *name) +{ + TupleDesc tupdesc; + + if (strcasecmp(name, "all") == 0) + { + /* need a tuple descriptor representing two TEXT columns */ + tupdesc = CreateTemplateTupleDesc(2, false); + TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name", + TEXTOID, -1, 0, false); + TupleDescInitEntry(tupdesc, (AttrNumber) 2, "setting", + TEXTOID, -1, 0, false); + } + else + { + const char *varname; + + /* Get the canonical spelling of name */ + (void) GetConfigOptionByName(name, &varname); + + /* need a tuple descriptor representing a single TEXT column */ + tupdesc = CreateTemplateTupleDesc(1, false); + TupleDescInitEntry(tupdesc, (AttrNumber) 1, (char *) varname, + TEXTOID, -1, 0, false); + } + return tupdesc; } /* @@ -2468,11 +2497,10 @@ ResetPGVariable(const char *name) * SHOW command */ void -ShowGUCConfigOption(const char *name) +ShowGUCConfigOption(const char *name, DestReceiver *dest) { TupOutputState *tstate; TupleDesc tupdesc; - CommandDest dest = whereToSendOutput; const char *varname; char *value; @@ -2497,12 +2525,11 @@ ShowGUCConfigOption(const char *name) * SHOW ALL command */ void -ShowAllGUCConfig(void) +ShowAllGUCConfig(DestReceiver *dest) { int i; TupOutputState *tstate; TupleDesc tupdesc; - CommandDest dest = whereToSendOutput; char *values[2]; /* need a tuple descriptor representing two TEXT columns */ |