Re: psql \r and \e -- what does clearing the query buffer actually do?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: psql \r and \e -- what does clearing the query buffer actually do?
Date: 2023-10-23 18:50:13
Message-ID: 410256.1698087013@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Merlin Moncure <mmoncure(at)gmail(dot)com> writes:
> \r (clear 'query buffer'): Other than dutifully reporting that the query
> buffer has been cleared, I cannot for the life of me detect any observable
> behavior.

Uh ... surely there's a lot. For example:

regression=# foo
regression-# bar;
ERROR: syntax error at or near "foo"
LINE 1: foo
^
regression=# foo
regression-# \r
Query buffer reset (cleared).
regression=# bar;
ERROR: syntax error at or near "bar"
LINE 1: bar;
^
regression=#

> Perhaps, it is reset, only to re-reset to last known prompt when prompt
> returned, but,
> \r\e
> ...claims to rest but the query buffer still contains the last executed
> command, which will then run with :q! in vim.

What \r clears is the current (active) input buffer. \e is documented
thus:

If no filename is given, the current query buffer is copied to a
temporary file which is then edited in the same fashion. Or, if the
current query buffer is empty, the most recently executed query is
copied to a temporary file and edited in the same fashion.

So \r\e will indeed result in editing the previous query.

> Regarding \e, things mostly work sanely, except that there is no way to not
> run a query except to explicitly write a blank buffer back, say with vim
> :wq after deleting all the lines in the buffer..

It's sufficient to get rid of any trailing semicolon in the editor.
Again, the man page's discussion of \e seems to me to cover this.
If you want to suggest some adjustments to make it clearer, we
could discuss that.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message pf 2023-10-23 18:54:59 Disk wait problem...
Previous Message Merlin Moncure 2023-10-23 18:27:24 psql \r and \e -- what does clearing the query buffer actually do?