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: "David G. Johnston" <david.g.johnston@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Christoph Berg <christoph.berg@credativ.de>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-06-07T02:53:08Z
Lists: pgsql-bugs
On Mon, Jun 06, 2022 at 01:05:46PM -0700, David G. Johnston wrote:
> We've done worse when dealing with obvious bugs contrary to the
> documentation and that prevent unsafe behavior.  People relying on the
> defined behavior to safely fail when encountering unexpected failure
> producing situations that hopefully never happen get the priority over
> poorly written code that somehow relies on errors not respecting the single
> transaction promise.

Yeah, I think that the past behavior was a bit crazy.  On a
client-side error, psql reports a failure with an error code but would
commit any changes that happened before the command that failed with
the underlying commit created by --single-transaction, while
discarding any future commands.
--
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