Re: Improving psql's \password command

Nathan Bossart <bossartn@amazon.com>

From: "Bossart, Nathan" <bossartn@amazon.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-11-18T00:34:25Z
Lists: pgsql-hackers
On 11/17/21, 4:15 PM, "Tom Lane" <tgl@sss.pgh.pa.us> wrote:
> Pushed with a little further tweaking --- mostly, I felt that
> explicitly referring to SIGINT in the API names was too
> implementation-specific, so I renamed things.

Thanks!

> As you mentioned, there are several other simple_prompt() calls
> that could usefully be improved.  (I think the one in startup.c
> may be OK because we've not set up the SIGINT handler yet,
> though.)  I wondered whether it's worth refactoring some more
> to have just one function that sets up the context mechanism.

I'll get started on these.

> I was also of two minds about whether to add a context option
> to pg_get_line_buf().  I stuck with your choice not to, but
> it does look a bit inconsistent.

Yeah, I figured it'd be simple enough to add that if/when it's needed.

Nathan

Commits

  1. pg_receivewal, pg_recvlogical: allow canceling initial password prompt.

  2. Allow psql's other uses of simple_prompt() to be interrupted by ^C.

  3. Provide a variant of simple_prompt() that can be interrupted by ^C.

  4. Make psql's \password default to CURRENT_USER, not PQuser(conn).