Re: How about a psql backslash command to show GUCs?

Jonathan S. Katz <jkatz@postgresql.org>

From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Julien Rouhaud <rjuju123@gmail.com>, Christoph Berg <myon@debian.org>, Pavel Stehule <pavel.stehule@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, Joe Conway <mail@joeconway.com>, Mark Dilger <mark.dilger@enterprisedb.com>, Andrew Dunstan <andrew@dunslane.net>, David Rowley <dgrowleyml@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-12T00:35:52Z
Lists: pgsql-hackers
On 4/11/22 4:11 PM, Tom Lane wrote:
> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>> My question is if we're only going to list out the settings that are
>> customized, are we going to:
> 
>> 1. Hide a setting if it matches a default value, even if a user set it
>> to be the default value? OR
>> 2. Comment out all of the settings in a generated postgresql.conf file?
> 
> As committed, it prints anything that's shown as "source != 'default'"
> in pg_settings, which means anything for which the value wasn't
> taken from the wired-in default.  I suppose an alternative definition
> could be "setting != boot_val".  Not really sure if that's better.
> 
> This idea does somewhat address my unhappiness upthread about printing
> values with source = 'internal', but I see that it gets confused by
> some GUCs with custom show hooks, like unix_socket_permissions.
> Maybe it needs to be "source != 'default' AND setting != boot_val"?

Running through a few GUCs, that seems reasonable. Happy to test the 
patch out prior to commit to see if it renders better.

Jonathan

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Be more careful about GucSource for internally-driven GUC settings.

  2. Fix case sensitivity in psql's tab completion for GUC names.

  3. Further tweak the default behavior of psql's \dconfig.

  4. Tweak the default behavior of psql's \dconfig.

  5. psql: add \dconfig command to show server's configuration parameters.

  6. Allow granting SET and ALTER SYSTEM privileges on GUC parameters.