Hi, While reviewing the patch for parallel REFRESH MATERIALIZED VIEW, I noticed that select_parallel.sql and write_parallel.sql believe that (1) the tests are supposed to work with serializable as a default isolation level, and (2) parallelism would be inhibited by that, so they'd better use something else explicitly. Here's a patch to update that second thing in light of commit bb16aba5. I don't think it matters enough to bother back-patching it.
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? @@ -1032,7 +1032,7 @@ SHOW transaction_isolation; -- out of transaction block transaction_isolation ----------------------- - read committed + serializable (1 row)
From 21115a0721aedec9c39a1d41bc38ec2b96960ff1 Mon Sep 17 00:00:00 2001 From: Thomas Munro <thomas.mu...@gmail.com> Date: Mon, 15 Mar 2021 17:08:25 +1300 Subject: [PATCH] Parallel regression tests don't need workaround for SERIALIZABLE. SERIALIZABLE no longer inhibits parallelism, so the comment and workaround in {select,write}_parallel.sql are obsolete since commit bb16aba5 (release 12). Also fix a nearby typo. --- src/test/regress/expected/select_parallel.out | 4 +--- src/test/regress/expected/write_parallel.out | 6 ++---- src/test/regress/sql/select_parallel.sql | 4 +--- src/test/regress/sql/write_parallel.sql | 6 ++---- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/test/regress/expected/select_parallel.out b/src/test/regress/expected/select_parallel.out index 9b0c418db7..05ebcb284a 100644 --- a/src/test/regress/expected/select_parallel.out +++ b/src/test/regress/expected/select_parallel.out @@ -3,9 +3,7 @@ -- create function sp_parallel_restricted(int) returns int as $$begin return $1; end$$ language plpgsql parallel restricted; --- Serializable isolation would disable parallel query, so explicitly use an --- arbitrary other level. -begin isolation level repeatable read; +begin; -- encourage use of parallel plans set parallel_setup_cost=0; set parallel_tuple_cost=0; diff --git a/src/test/regress/expected/write_parallel.out b/src/test/regress/expected/write_parallel.out index 0c4da2591a..77705f9a70 100644 --- a/src/test/regress/expected/write_parallel.out +++ b/src/test/regress/expected/write_parallel.out @@ -1,16 +1,14 @@ -- -- PARALLEL -- --- Serializable isolation would disable parallel query, so explicitly use an --- arbitrary other level. -begin isolation level repeatable read; +begin; -- encourage use of parallel plans set parallel_setup_cost=0; set parallel_tuple_cost=0; set min_parallel_table_scan_size=0; set max_parallel_workers_per_gather=4; -- --- Test write operations that has an underlying query that is eligble +-- Test write operations that has an underlying query that is eligible -- for parallel plans -- explain (costs off) create table parallel_write as diff --git a/src/test/regress/sql/select_parallel.sql b/src/test/regress/sql/select_parallel.sql index 5a01a98b26..d31e290ec2 100644 --- a/src/test/regress/sql/select_parallel.sql +++ b/src/test/regress/sql/select_parallel.sql @@ -5,9 +5,7 @@ create function sp_parallel_restricted(int) returns int as $$begin return $1; end$$ language plpgsql parallel restricted; --- Serializable isolation would disable parallel query, so explicitly use an --- arbitrary other level. -begin isolation level repeatable read; +begin; -- encourage use of parallel plans set parallel_setup_cost=0; diff --git a/src/test/regress/sql/write_parallel.sql b/src/test/regress/sql/write_parallel.sql index 78b479cedf..a5d63112c9 100644 --- a/src/test/regress/sql/write_parallel.sql +++ b/src/test/regress/sql/write_parallel.sql @@ -2,9 +2,7 @@ -- PARALLEL -- --- Serializable isolation would disable parallel query, so explicitly use an --- arbitrary other level. -begin isolation level repeatable read; +begin; -- encourage use of parallel plans set parallel_setup_cost=0; @@ -13,7 +11,7 @@ set min_parallel_table_scan_size=0; set max_parallel_workers_per_gather=4; -- --- Test write operations that has an underlying query that is eligble +-- Test write operations that has an underlying query that is eligible -- for parallel plans -- explain (costs off) create table parallel_write as -- 2.30.1