Re: Improving psql's \password command

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Bossart, Nathan" <bossartn(at)amazon(dot)com>
Cc: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Improving psql's \password command
Date: 2021-11-20 21:57:56
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

"Bossart, Nathan" <bossartn(at)amazon(dot)com> writes:
> On 11/19/21, 9:17 AM, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Hmm, initdb's prompt-for-superuser-password might need it.

> I'm able to cancel the superuser password prompt in initdb already.
> It looks like the signal handlers aren't set up until after
> get_su_pwd().

Right; I misread that code in an overly hasty scan.

> I did find some missing control-C handling in
> pg_receivewal/pg_recvlogical, though. Attached is a patch for those.

Meh ... I'm inclined to fix those programs by just moving their pqsignal
calls down to after their initial GetConnection calls, as attached.
This'd be simple enough to back-patch, for one thing.

It could be argued that this doesn't provide a nice experience if
(a) somebody changes your password mid-run and (b) you actually
need to make a new connection for some reason and (c) you want
to give up at that point instead of putting in the new password.
But I doubt it's worth so much extra complication to address that
edge case. We've had about zero field complaints about the existing
behavior in those programs, so the cost/benefit ratio seems poor.

regards, tom lane

PS: I noticed that StreamLogicalLog leaks its query buffer if
GetConnection fails. Probably not very exciting, but we might
as well fix that, as included below.

Attachment Content-Type Size
delay-setting-up-signal-handlers.patch text/x-diff 2.5 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2021-11-20 22:58:07 Re: Test::More version
Previous Message Tom Lane 2021-11-20 21:16:45 Re: Feature Proposal: Connection Pool Optimization - Change the Connection User