pgsql: Fix recently-introduced breakage in psql's \connect command.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix recently-introduced breakage in psql's \connect command.
Date: 2020-11-29 20:22:27
Message-ID: E1kjTDH-0003wt-3M@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix recently-introduced breakage in psql's \connect command.

Through my misreading of what the existing code actually did,
commits 85c54287a et al. broke psql's behavior for the case where
"\c connstring" provides a password in the connstring. We should
use that password in such a case, but as of 85c54287a we ignored it
(and instead, prompted for a password).

Commit 94929f1cf fixed that in HEAD, but since I thought it was
cleaning up a longstanding misbehavior and not one I'd just created,
I didn't back-patch it.

Hence, back-patch the portions of 94929f1cf having to do with
password management. In addition to fixing the introduced bug,
this means that "\c -reuse-previous=on connstring" will allow
re-use of an existing connection's password if the connstring
doesn't change user/host/port. That didn't happen before, but
it seems like a bug fix, and anyway I'm loath to have significant
differences in this code across versions.

Also fix an error with the same root cause about whether or not to
override a connstring's setting of client_encoding. As of 85c54287a
we always did so; restore the previous behavior of overriding only
when stdin/stdout are a terminal and there's no environment setting
of PGCLIENTENCODING. (I find that definition a bit surprising, but
right now doesn't seem like the time to revisit it.)

Per bug #16746 from Krzysztof Gradek. As with the previous patch,
back-patch to all supported branches.

Discussion: https://postgr.es/m/16746-44b30e2edf4335d4@postgresql.org

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3f59a05f0fa8c4f5f43fe0f5fed3291cf2cf224a

Modified Files
--------------
doc/src/sgml/ref/psql-ref.sgml | 2 ++
src/bin/psql/command.c | 66 +++++++++++++++++++++++++++++++-----------
2 files changed, 51 insertions(+), 17 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Fujii Masao 2020-11-30 02:09:12 pgsql: Improve log message about termination of background workers.
Previous Message Tom Lane 2020-11-29 18:58:57 pgsql: Doc: clarify behavior of PQconnectdbParams().