aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-04-11 15:11:46 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2022-04-11 15:11:46 -0400
commit5e70d8b5d18b0a71528dc6f11ade31a9d10e00cb (patch)
tree04efa0db49e5d4030d0983a4e6eda8dc8d160457
parent3c702b3ed1519624d50e7a42283b8d481a579f77 (diff)
downloadpostgresql-5e70d8b5d18b0a71528dc6f11ade31a9d10e00cb.tar.gz
postgresql-5e70d8b5d18b0a71528dc6f11ade31a9d10e00cb.zip
Tweak the default behavior of psql's \dconfig.
\dconfig without an argument originally printed all parameters, but it seems more useful to print only those parameters with non-default settings. You can easily get the show-everything behavior with "\dconfig *", but that output is unwieldy and seems unlikely to be wanted very often. Per suggestion from Christoph Berg. Discussion: https://postgr.es/m/YlFQLzlPi4QD0wSi@msg.df7cb.de
-rw-r--r--doc/src/sgml/ref/psql-ref.sgml10
-rw-r--r--src/bin/psql/describe.c16
2 files changed, 17 insertions, 9 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 92e5c503003..592356019b5 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -129,7 +129,7 @@ echo '\x \\ SELECT * FROM foo;' | psql
for more details about how the server handles multi-query strings.)
</para>
<para>
- If having several commands executed in one transaction is not desired,
+ If having several commands executed in one transaction is not desired,
use repeated <option>-c</option> commands or feed multiple commands to
<application>psql</application>'s standard input,
either using <application>echo</application> as illustrated above, or
@@ -1385,9 +1385,11 @@ testdb=&gt;
<listitem>
<para>
Lists server configuration parameters and their values.
- If <replaceable class="parameter">pattern</replaceable>
- is specified, only parameters whose names match the pattern are
- listed.
+ If <replaceable class="parameter">pattern</replaceable> is specified,
+ only parameters whose names match the pattern are listed. Without
+ a <replaceable class="parameter">pattern</replaceable>, only
+ parameters that are set to non-default values are listed.
+ (Use <literal>\dconfig *</literal> to see all parameters.)
If <literal>+</literal> is appended to the command name, each
parameter is listed with its data type, context in which the
parameter can be set, and access privileges (if non-default access
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index d04ba2b0290..e7377d4583f 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -4404,10 +4404,13 @@ describeConfigurationParameters(const char *pattern, bool verbose,
" LEFT JOIN pg_catalog.pg_parameter_acl p\n"
" ON pg_catalog.lower(s.name) = p.parname\n");
- processSQLNamePattern(pset.db, &buf, pattern,
- false, false,
- NULL, "pg_catalog.lower(s.name)", NULL,
- NULL);
+ if (pattern)
+ processSQLNamePattern(pset.db, &buf, pattern,
+ false, false,
+ NULL, "pg_catalog.lower(s.name)", NULL,
+ NULL);
+ else
+ appendPQExpBufferStr(&buf, "WHERE s.source <> 'default'\n");
appendPQExpBufferStr(&buf, "ORDER BY 1;");
@@ -4417,7 +4420,10 @@ describeConfigurationParameters(const char *pattern, bool verbose,
return false;
myopt.nullPrint = NULL;
- myopt.title = _("List of configuration parameters");
+ if (pattern)
+ myopt.title = _("List of configuration parameters");
+ else
+ myopt.title = _("List of non-default configuration parameters");
myopt.translate_header = true;
printQuery(res, &myopt, pset.queryFout, false, pset.logfile);