psql: recall previous command?

From: Neil Conway <neilc(at)samurai(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: psql: recall previous command?
Date: 2005-02-22 04:26:52
Message-ID: 421AB48C.4010604@samurai.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Is there a way to recall the previous command in psql? Obviously, "up
arrow" or Ctrl-P using readline and the default readline bindings is
close, but it recalls the previous _line_ of input. That is not at all
the same thing in the case of a multiple line command, for example.

If there is no way at present, I think there should be. Using "up arrow"
is quite annoying when dealing with multiple line SQL statements.

Two issues:

- how to handle slash commands? Slash commands and SQL statements can be
intermixed:

neilc=# select 1 \timing
Timing is off.
neilc-# ;
?column?
----------
1
(1 row)

So I'm not quite sure what the right behavior here is. We could always
just ignore slash commands (the command would "recall the previous SQL
statement") -- since few slash commands are multi-line, I don't think
that would be too bad.

- when a multiple-line command is recalled, how should it be presented
in the psql input buffer? Perhaps we could strip newlines from recalled
command text, so that the recalled command would fit on a single line.
That would mean the recalled command would look somewhat different than
how the user typed it, although of course the semantics of the query
should be the same. Any better ideas?

-Neil

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2005-02-22 04:48:22 Re: psql: recall previous command?
Previous Message Neil Conway 2005-02-22 04:08:35 left-deep plans?