Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error
От
Kyotaro Horiguchi
Тема
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error
Дата
Msg-id
20220613.160701.975499861789120736.horikyota.ntt@gmail.com
Ответ на
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error (Michael Paquier)
Список
Дерево обсуждения
BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error PG Bug reporting form <noreply@postgresql.org>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Christoph Berg <christoph.berg@credativ.de>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Robert Haas <robertmhaas@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error "David G. Johnston" <david.g.johnston@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Tom Lane <tgl@sss.pgh.pa.us>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Tom Lane <tgl@sss.pgh.pa.us>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Tom Lane <tgl@sss.pgh.pa.us>
Re: Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Tom Lane <tgl@sss.pgh.pa.us>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
psql --on-error-stop (Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still) commits after client-side error Christoph Berg <christoph.berg@credativ.de>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Christoph Berg <christoph.berg@credativ.de>
Re: BUG #17504: psql --single-transaction -vON_ERROR_STOP=1 still commits after client-side error Michael Paquier <michael@paquier.xyz>
At Mon, 13 Jun 2022 15:45:05 +0900, Michael Paquier wrote in > On Fri, Jun 10, 2022 at 12:12:11PM -0400, Tom Lane wrote: > > Alternatively, one could argue that once we've decided to issue > > ROLLBACK, there's not really any reason to continue performing > > additional -c/-f actions, so that a sufficient fix would be to > > get rid of the loop's ON_ERROR_STOP conditionality: > > > > - if (successResult != EXIT_SUCCESS && pset.on_error_stop) > > + if (successResult != EXIT_SUCCESS) > > break; > > This suggestion does not look right to me with --single-transaction. > If not using ON_ERROR_STOP, I think that we should still loop through > all the switches given by the caller and force a COMMIT all the time > because the intention is that we don't care about failures while > processing. This gives me the attached as a result for HEAD, where we Agreed. It is actually a bug that on_error_stop is ignored here. > would issue a ROLLBACK only when using ON_ERROR_STOP to stop > immediately if there is a backend-side error or a client-side error. > I have expanded the tests where not using ON_ERROR_STOP, with errors > triggered at the end of the set of switches. - res = PSQLexec((successResult == EXIT_SUCCESS) ? . + res = PSQLexec((successResult != EXIT_SUCCESS && pset.on_error_stop) ? Thanks! > Now, do we really want to introduce this new behavior on HEAD? We are > post-beta so this does not me make me really comfortable if both > Robert and you don't like the change, even if the behavior of > --single-transaction/ON_ERROR_STOP on client-side failure is weird to > me and others from upthread. If you'd prefer see the original logic > in place, I don't mind putting the code in its previous shape. > However, I would like to keep all those TAP tests because we have zero > coverage in this area, and we have the base file to be able to do so > now. +1 for at least add the tests. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
В списке pgsql-bugs по дате отправления
От: Michael Paquier
Дата: