Re: Suggested fix for \p and \r in psql

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Daniel Verite" <daniel@manitou-mail.org>
Cc: pgsql-hackers@postgresql.org
Date: 2017-04-02T15:18:09Z
Lists: pgsql-hackers
"Daniel Verite" <daniel@manitou-mail.org> writes:
> I've noticed two issues with the query buffer post-commit e984ef5
> (Support \if ... \elif ... \else ... \endif in psql scripting):

> 1. \p ignores the "previous buffer". Example:

Yeah, I did that intentionally, thinking that the old behavior was
confusing.  We can certainly discuss it though.  I'd tend to agree
with your point that \p and \w should print the same thing, but
maybe neither of them should look at the previous_buf.

> 2. \r keeps the "previous buffer". I think it should clear it.

I don't really agree with this.  The fact that it used to clear both
buffers was an implementation accident that probably nobody had even
understood clearly.  ISTM that loses functionality because you can't
do \g anymore.

			regards, tom lane


Commits

  1. Doc: clarify behavior of OT_WHOLE_LINE and OT_FILEPIPE psql slash commands.

  2. Document psql's behavior of recalling the previously executed query.

  3. Fix behavior of psql's \p to agree with \g, \w, etc.

  4. Support \if ... \elif ... \else ... \endif in psql scripting.