How to I select value of GUC that has - in its name?

From: hubert depesz lubaczewski <depesz(at)depesz(dot)com>
To: pgsql-general mailing list <pgsql-general(at)postgresql(dot)org>
Subject: How to I select value of GUC that has - in its name?
Date: 2021-02-09 14:40:59
Message-ID: 20210209144059.GA21360@depesz.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,
question from IRC, but I couldn't find an answer.

I can set custom guc with - in name, but I can't figure out how to
select it.

Without minus, it works great:

=$ psql -X -c 'show custom.guc'
ERROR: unrecognized configuration parameter "custom.guc"

=$ psql -X -c "alter user depesz set custom.guc = '123'"
ALTER ROLE

=$ psql -X -c 'show custom.guc'
custom.guc
------------
123
(1 row)

If I'd try to set variable with - in name:

$ alter user depesz set custom.bad-guc = '1a';
ERROR: syntax error at or near "-"
LINE 1: alter user depesz set custom.bad-guc = '1a';
^
$ alter user depesz set custom."bad-guc" = '1a';
ALTER ROLE

$ select * from pg_db_role_setting where setrole = 'depesz'::regrole;
setdatabase │ setrole │ setconfig
─────────────┼─────────┼─────────────────────────────────────────────────────────
0 │ 16384 │ {application_name=xxx,custom.guc=123,custom.bad-guc=1a}
(1 row)

OK. Looks like it's set. But I can't show it (this is after reconnect):

$ show custom."bad-guc";
ERROR: unrecognized configuration parameter "custom.bad-guc"

$ show "custom"."bad-guc";
ERROR: unrecognized configuration parameter "custom.bad-guc"

$ show "custom.bad-guc";
ERROR: unrecognized configuration parameter "custom.bad-guc"

I know I can simply not use dashes in names, but if I can *set* it, how
can I get the value back?

depesz

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Edward Macnaghten 2021-02-09 14:49:19 Re: How to I select value of GUC that has - in its name?
Previous Message Thomas Kellerer 2021-02-09 13:42:41 Re: Postgres 9.4 Needed