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-12T16:36:55Z
Lists: pgsql-hackers
On 4/12/22 11:19 AM, Tom Lane wrote:
> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>> On 4/11/22 4:11 PM, Tom Lane wrote:
>>> 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.
> 
> It'd just look like this, I think.  I see from looking at guc.c that
> boot_val can be NULL, so we'd better use IS DISTINCT FROM.

(IS DISTINCT FROM is pretty handy :)

I tested it and I like this a lot better, at least it's much more 
consolidated. They all seem to be generated (directories, timezones, 
collations/encodings).

The one exception to this seems to be "max_stack_depth", which is 
rendering on my "\dconfig" though I didn't change it, an it's showing 
it's default value of 2MB. "boot_val" says 100, "reset_val" says 2048, 
and it's commented out in my postgresql.conf. Do we want to align that?

That said, the patch itself LGTM.

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.