Thread: pgsql: Fix behavior of AND CHAIN outside of explicit transactionblocks

pgsql: Fix behavior of AND CHAIN outside of explicit transactionblocks

From
Peter Eisentraut
Date:
Fix behavior of AND CHAIN outside of explicit transaction blocks

When using COMMIT AND CHAIN or ROLLBACK AND CHAIN not in an explicit
transaction block, the previous implementation would leave a
transaction block active in the ROLLBACK case but not the COMMIT case.
To fix for now, error out when using these commands not in an explicit
transaction block.  This restriction could be lifted if a sensible
definition and implementation is found.

Bug: #15977
Author: fn ln <emuser20140816@gmail.com>
Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr>

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/b6d72ddd5fbf3f6eb79597ab0c8ec3aaa7c16805

Modified Files
--------------
doc/src/sgml/ref/commit.sgml               |  3 +-
doc/src/sgml/ref/rollback.sgml             |  3 +-
src/backend/access/transam/xact.c          | 58 +++++++++++++++-------
src/test/regress/expected/transactions.out | 78 ++++++++++++++++++++++++++++++
src/test/regress/sql/transactions.sql      | 43 ++++++++++++++++
5 files changed, 166 insertions(+), 19 deletions(-)