pgsql: Fix psql's \connect command some more.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix psql's \connect command some more.
Date: 2021-03-23 18:28:07
Message-ID: E1lOll9-0007TL-Rq@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix psql's \connect command some more.

Jasen Betts reported yet another unintended side effect of commit
85c54287a: reconnecting with "\c service=whatever" did not have the
expected results. The reason is that starting from the output of
PQconndefaults() effectively allows environment variables (such
as PGPORT) to override entries in the service file, whereas the
normal priority is the other way around.

Not using PQconndefaults at all would require yet a third main code
path in do_connect's parameter setup, so I don't really want to fix
it that way. But we can have the logic effectively ignore all the
default values for just a couple more lines of code.

This patch doesn't change the behavior for "\c -reuse-previous=on
service=whatever". That remains significantly different from before
85c54287a, because many more parameters will be re-used, and thus
not be possible for service entries to replace. But I think this
is (mostly?) intentional. In any case, since libpq does not report
where it got parameter values from, it's hard to do differently.

Per bug #16936 from Jasen Betts. As with the previous patches,
back-patch to all supported branches. (9.5 is unfortunately now
out of support, so this won't get fixed there.)

Discussion: https://postgr.es/m/16936-3f524322a53a29f0@postgresql.org

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/beac4bd65dcf02a86013120c660498e50f3f88dd

Modified Files
--------------
src/bin/psql/command.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2021-03-23 18:44:06 Re: pgsql: Add a new GUC and a reloption to enable inserts in parallel-mode
Previous Message Tom Lane 2021-03-23 15:24:24 pgsql: Avoid possible crash while finishing up a heap rewrite.