Re: proposal: alternative psql commands quit and exit - Mailing list pgsql-hackers

From Geoff Winkless
Subject Re: proposal: alternative psql commands quit and exit
Date
Msg-id CAEzk6feRR-XNr-Lzv5f5LADjmexSFSfVau77UqqFXEnMhSus2A@mail.gmail.com
Whole thread Raw
In response to Re: proposal: alternative psql commands quit and exit  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: proposal: alternative psql commands quit and exit
List pgsql-hackers
On 15 January 2018 at 17:53, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Geoff Winkless <pgsqladmin@geoff.dj> writes:
>> At this point it depends quite how far down the rabbit-hole you want
>> to go to stop people googling "how do I exit psql", I suppose :p
>
> Well, I concur with Robert's comment upthread that we don't want to
> print any advice that's possibly wrong.  So I'd rather provide hints
> that are sure to work, rather than hints that might represent the
> way to get out with fewest keystrokes, but could go wrong in unusual
> situations.

A quick PoC.

I should say upfront that I've no axe to grind over this, if no-one
likes the idea I don't mind: I'm not sure I like it myself (it's quite
an aggressive stance to take, I think) - I just wanted to see if it
would work, and provide it as a working possibility.

Basically, I intercept every keypress before we send it to readline.
If it's 4 (Ctrl-D) we replace the buffer with \q<lf> which then quits,
even if there's something in the buffer. So simply sending "Ctrl-D to
quit" would always be true. Everything else just gets passed through
to readline directly.

Would need additional work to make the same thing work when readline
is disabled. I decided it wouldn't be worth the effort if the basic
idea of always intercepting Ctrl-D doesn't gain traction.

It's patched against 9.5.1, purely because that's the version I
already had source built for on my devbox. Again, if the idea is one
that people like I'm happy to rebase it against head.

I've also no idea whether Ctrl-D would be 4 in other locales.

I also don't know how much of the boilerplate code from the readline
docs is required, eg the sigwinch stuff.

Geoff

Attachment

pgsql-hackers by date:

Previous
From: Amit Khandekar
Date:
Subject: Re: [HACKERS] UPDATE of partition key
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: [HACKERS] [PATCH] Improve geometric types