On Mon, Mar 15, 2021 at 5:24 PM Thomas Munro <thomas.mu...@gmail.com> wrote:
> However, since commit 862ef372d6b, there *is* one test that fails if
> you run make installcheck against a cluster running with -c
> default_transaction_isolation=serializable: transaction.sql.  Is that
> a mistake?  Is it a goal to be able to run this test suite against all
> 3 isolation levels?

Here's a fix.
From 8c3a6616453c20478448ea4ec03fbae154f2f9cf Mon Sep 17 00:00:00 2001
From: Thomas Munro <tmu...@postgresql.org>
Date: Mon, 15 Mar 2021 23:41:59 +1300
Subject: [PATCH] Fix transaction.sql tests in higher isolation levels.

The tests shouldn't assume that the default isolation level is read
committed.

Discussion: https://postgr.es/m/CA%2BhUKGJUaHeK%3DHLATxF1JOKDjKJVrBKA-zmbPAebOM0Se2FQRg%40mail.gmail.com
---
 src/test/regress/expected/transactions.out | 1 +
 src/test/regress/sql/transactions.sql      | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/test/regress/expected/transactions.out b/src/test/regress/expected/transactions.out
index 75dc6558d8..5781598213 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
diff --git a/src/test/regress/sql/transactions.sql b/src/test/regress/sql/transactions.sql
index d1b6ed0280..c12a94ff69 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
-- 
2.30.1

Reply via email to