From 37929599499fe5760a9dbab48a10a898879a0d44 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 17 Mar 2021 17:13:43 +1300 Subject: [PATCH] Fix transaction.sql tests in higher isolation levels. It seems like a useful sanity check to be able to run "installcheck" against a cluster running with default_transaction_level set to serializable or repeatable read. Only one thing currently fails in those configurations, so let's fix that. No back-patch for now, because it fails in many other places in some of the stable branches. We'd have to go back and fix those too if we included this configuration in automated testing. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CA%2BhUKGJUaHeK%3DHLATxF1JOKDjKJVrBKA-zmbPAebOM0Se2FQRg%40mail.gmail.com --- src/test/regress/expected/transactions.out | 2 ++ src/test/regress/sql/transactions.sql | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/test/regress/expected/transactions.out b/src/test/regress/expected/transactions.out index 75dc6558d8..61862d595d 100644 --- a/src/test/regress/expected/transactions.out +++ b/src/test/regress/expected/transactions.out @@ -1026,6 +1026,7 @@ SHOW transaction_isolation; -- transaction is active at this point (1 row) ROLLBACK; +SET default_transaction_isolation = 'read committed'; -- START TRANSACTION + COMMIT/ROLLBACK + COMMIT/ROLLBACK AND CHAIN START TRANSACTION ISOLATION LEVEL REPEATABLE READ\; INSERT INTO abc VALUES (17)\; COMMIT\; INSERT INTO abc VALUES (18)\; COMMIT AND CHAIN; -- 17 commit, 18 error ERROR: COMMIT AND CHAIN can only be used in transaction blocks @@ -1043,6 +1044,7 @@ SHOW transaction_isolation; -- out of transaction block read committed (1 row) +RESET default_transaction_isolation; SELECT * FROM abc ORDER BY 1; a ---- diff --git a/src/test/regress/sql/transactions.sql b/src/test/regress/sql/transactions.sql index d1b6ed0280..8886280c0a 100644 --- a/src/test/regress/sql/transactions.sql +++ b/src/test/regress/sql/transactions.sql @@ -578,6 +578,8 @@ START TRANSACTION ISOLATION LEVEL REPEATABLE READ\; INSERT INTO abc VALUES (16)\ SHOW transaction_isolation; -- transaction is active at this point ROLLBACK; +SET default_transaction_isolation = 'read committed'; + -- START TRANSACTION + COMMIT/ROLLBACK + COMMIT/ROLLBACK AND CHAIN START TRANSACTION ISOLATION LEVEL REPEATABLE READ\; INSERT INTO abc VALUES (17)\; COMMIT\; INSERT INTO abc VALUES (18)\; COMMIT AND CHAIN; -- 17 commit, 18 error SHOW transaction_isolation; -- out of transaction block @@ -585,6 +587,8 @@ SHOW transaction_isolation; -- out of transaction block START TRANSACTION ISOLATION LEVEL REPEATABLE READ\; INSERT INTO abc VALUES (19)\; ROLLBACK\; INSERT INTO abc VALUES (20)\; ROLLBACK AND CHAIN; -- 19 rollback, 20 error SHOW transaction_isolation; -- out of transaction block +RESET default_transaction_isolation; + SELECT * FROM abc ORDER BY 1; DROP TABLE abc;