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 <coe...@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. >
implicit_xact_chain_test.patch
Description: Binary data