Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, robertmhaas@gmail.com, christoph.berg@credativ.de, pgsql-bugs@lists.postgresql.org
Date: 2022-06-15T06:09:53Z
Lists: pgsql-bugs
On Tue, Jun 14, 2022 at 10:31:21AM +0900, Michael Paquier wrote:
> Okay, let's do so then on HEAD.  I'll wait a bit more, in case others
> have an opinion to offer on the matter.

Well, done.  One thing that I find a bit surprising in all that is the 
lack of consistency in the handling of the return code of psql when
the last switch fails when not using ON_ERROR_STOP.  For example, psql
fails if the last switch is a slash command from -c, but succeeds if
the last switch is a slash command in a file from -f that exists.
This comes down to the way failures are passed down from MainLoop() so
I am not sure if this is worth worrying about and nobody has
complained about that AFAIK, but I have added some extra tests to at
least document everything I could think about to track changes, in
case somebody plays with this code in the future.
--
Michael

Commits

  1. Tweak behavior of psql --single-transaction depending on ON_ERROR_STOP

  2. Doc: remove a04ccf6df from release notes, now that it's reverted.

  3. Revert "Fix psql's single transaction mode on client-side errors with -c/-f switches".

  4. Fix psql's single transaction mode on client-side errors with -c/-f switches