Re: BUG #15977: Inconsistent behavior in chained transactions
От | fn ln |
---|---|
Тема | Re: BUG #15977: Inconsistent behavior in chained transactions |
Дата | |
Msg-id | CA+99BHrULLrx-g+Ga68F7bzNa9mQR9ezBzHsDihsQ+0=Q0LiCA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #15977: Inconsistent behavior in chained transactions (Fabien COELHO <coelho@cri.ensmp.fr>) |
Список | pgsql-bugs |
Added two kinds of test for the implicit transaction: in single query and in implicit block.
The patch file is now created with Unix-style line ending (LF).
2019年8月29日(木) 15:30 Fabien COELHO <coelho@cri.ensmp.fr>:
Hello,
> COMMIT AND CHAIN in implicit block leaves blockState as TBLOCK_STARTED,
> which doesn't trigger the chaining. but ROLLBACK AND CHAIN sets the
> blockState into TBLOCK_ABORT_PENDING, so the chaining is triggered.
>
> I think disabling s->chain beforehand should do the desired behavior.
Patch applies with "patch", although "git apply" complained because of
CRLF line terminations forced by the octet-stream mime type.
Patch compiles cleanly. Make check ok.
Patch works for me, and solution seems appropriate. It should be committed
for pg 12.0.
There could be a test added in "regress/sql/transactions.sql", I'd suggest
something like:
-- implicit transaction and not chained.
COMMIT AND CHAIN;
COMMIT;
ROLLBACK AND CHAIN;
ROLLBACK;
which should show the appropriate "no transaction in progress" warnings.
Doc could be made a little clearer about what to expect when there is no
explicit transaction in progress.
--
Fabien.
В списке pgsql-bugs по дате отправления: