diff --git a/src/test/regress/expected/alter_table_set_access_method.out b/src/test/regress/expected/alter_table_set_access_method.out index 8a6f335a7..938c6bc0d 100644 --- a/src/test/regress/expected/alter_table_set_access_method.out +++ b/src/test/regress/expected/alter_table_set_access_method.out @@ -1,5 +1,6 @@ --- test for Postgres version --- should error before PG12 +-- +-- ALTER_TABLE_SET_ACCESS_METHOD +-- CREATE TABLE alter_am_pg_version_table (a INT); SELECT alter_table_set_access_method('alter_am_pg_version_table', 'columnar'); NOTICE: creating a new table for public.alter_am_pg_version_table @@ -770,8 +771,15 @@ RESET client_min_messages; create table events (event_id bigserial, event_time timestamptz default now(), payload text); create index on events (event_id); insert into events (payload) select 'hello-'||s from generate_series(1,10) s; +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset BEGIN; + \if :server_version_ge_16 + SET LOCAL debug_parallel_query = regress; + \else SET LOCAL force_parallel_mode = regress; + \endif SET LOCAL min_parallel_table_scan_size = 1; SET LOCAL parallel_tuple_cost = 0; SET LOCAL max_parallel_workers = 4; diff --git a/src/test/regress/expected/columnar_fallback_scan.out b/src/test/regress/expected/columnar_fallback_scan.out index c31db0c43..b65e4118c 100644 --- a/src/test/regress/expected/columnar_fallback_scan.out +++ b/src/test/regress/expected/columnar_fallback_scan.out @@ -21,7 +21,14 @@ select count(*), min(i), max(i), avg(i) from fallback_scan; -- Negative test: try to force a parallel plan with at least two -- workers, but columnar should reject it and use a non-parallel scan. -- +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset +\if :server_version_ge_16 +set debug_parallel_query = regress; +\else set force_parallel_mode = regress; +\endif set min_parallel_table_scan_size = 1; set parallel_tuple_cost = 0; set max_parallel_workers = 4; @@ -39,7 +46,11 @@ select count(*), min(i), max(i), avg(i) from fallback_scan; 150000 | 1 | 150000 | 75000.500000000000 (1 row) -set force_parallel_mode to default; +\if :server_version_ge_16 +set debug_parallel_query = default; +\else +set force_parallel_mode = default; +\endif set min_parallel_table_scan_size to default; set parallel_tuple_cost to default; set max_parallel_workers to default; diff --git a/src/test/regress/expected/columnar_indexes.out b/src/test/regress/expected/columnar_indexes.out index 2a7c09634..cd05108b2 100644 --- a/src/test/regress/expected/columnar_indexes.out +++ b/src/test/regress/expected/columnar_indexes.out @@ -1,4 +1,6 @@ -- +-- COLUMNAR_INDEXES +-- -- Testing indexes on on columnar tables. -- CREATE SCHEMA columnar_indexes; @@ -598,6 +600,9 @@ create table events (event_id bigserial, event_time timestamptz default now(), p BEGIN; -- this wouldn't flush any data insert into events (payload) select 'hello-'||s from generate_series(1, 10) s; + SHOW server_version \gset + SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 + \gset -- Since table is large enough, normally postgres would prefer using -- parallel workers when building the index. -- @@ -609,7 +614,11 @@ BEGIN; -- by postgres and throws an error. For this reason, here we don't expect -- following commnad to fail since we prevent using parallel workers for -- columnar tables. + \if :server_version_ge_16 + SET LOCAL debug_parallel_query = regress; + \else SET LOCAL force_parallel_mode = regress; + \endif SET LOCAL min_parallel_table_scan_size = 1; SET LOCAL parallel_tuple_cost = 0; SET LOCAL max_parallel_workers = 4; diff --git a/src/test/regress/expected/columnar_partitioning.out b/src/test/regress/expected/columnar_partitioning.out index e84953a0b..cd530b3f9 100644 --- a/src/test/regress/expected/columnar_partitioning.out +++ b/src/test/regress/expected/columnar_partitioning.out @@ -1,3 +1,6 @@ +-- +-- COLUMNAR_PARTITIONING +-- CREATE TABLE parent(ts timestamptz, i int, n numeric, s text) PARTITION BY RANGE (ts); -- row partitions @@ -17,8 +20,15 @@ INSERT INTO parent SELECT '2020-03-15', 30, 300, 'three thousand' FROM generate_series(1,100000); INSERT INTO parent SELECT '2020-04-15', 30, 300, 'three thousand' FROM generate_series(1,100000); +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset -- run parallel plans +\if :server_version_ge_16 +SET debug_parallel_query = regress; +\else SET force_parallel_mode = regress; +\endif SET min_parallel_table_scan_size = 1; SET parallel_tuple_cost = 0; SET max_parallel_workers = 4; @@ -121,7 +131,11 @@ SELECT count(*), sum(i), min(i), max(i) FROM parent; (1 row) SET columnar.enable_custom_scan TO DEFAULT; +\if :server_version_ge_16 +SET debug_parallel_query TO DEFAULT; +\else SET force_parallel_mode TO DEFAULT; +\endif SET min_parallel_table_scan_size TO DEFAULT; SET parallel_tuple_cost TO DEFAULT; SET max_parallel_workers TO DEFAULT; diff --git a/src/test/regress/sql/alter_table_set_access_method.sql b/src/test/regress/sql/alter_table_set_access_method.sql index d7720cfda..24dc89fe4 100644 --- a/src/test/regress/sql/alter_table_set_access_method.sql +++ b/src/test/regress/sql/alter_table_set_access_method.sql @@ -1,5 +1,7 @@ --- test for Postgres version --- should error before PG12 +-- +-- ALTER_TABLE_SET_ACCESS_METHOD +-- + CREATE TABLE alter_am_pg_version_table (a INT); SELECT alter_table_set_access_method('alter_am_pg_version_table', 'columnar'); DROP TABLE alter_am_pg_version_table; @@ -258,8 +260,16 @@ create table events (event_id bigserial, event_time timestamptz default now(), p create index on events (event_id); insert into events (payload) select 'hello-'||s from generate_series(1,10) s; +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset + BEGIN; + \if :server_version_ge_16 + SET LOCAL debug_parallel_query = regress; + \else SET LOCAL force_parallel_mode = regress; + \endif SET LOCAL min_parallel_table_scan_size = 1; SET LOCAL parallel_tuple_cost = 0; SET LOCAL max_parallel_workers = 4; diff --git a/src/test/regress/sql/columnar_fallback_scan.sql b/src/test/regress/sql/columnar_fallback_scan.sql index 28e521eaf..93a701062 100644 --- a/src/test/regress/sql/columnar_fallback_scan.sql +++ b/src/test/regress/sql/columnar_fallback_scan.sql @@ -20,7 +20,16 @@ select count(*), min(i), max(i), avg(i) from fallback_scan; -- Negative test: try to force a parallel plan with at least two -- workers, but columnar should reject it and use a non-parallel scan. -- + +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset + +\if :server_version_ge_16 +set debug_parallel_query = regress; +\else set force_parallel_mode = regress; +\endif set min_parallel_table_scan_size = 1; set parallel_tuple_cost = 0; set max_parallel_workers = 4; @@ -28,7 +37,11 @@ set max_parallel_workers_per_gather = 4; explain (costs off) select count(*), min(i), max(i), avg(i) from fallback_scan; select count(*), min(i), max(i), avg(i) from fallback_scan; -set force_parallel_mode to default; +\if :server_version_ge_16 +set debug_parallel_query = default; +\else +set force_parallel_mode = default; +\endif set min_parallel_table_scan_size to default; set parallel_tuple_cost to default; set max_parallel_workers to default; diff --git a/src/test/regress/sql/columnar_indexes.sql b/src/test/regress/sql/columnar_indexes.sql index 34895f503..28716c970 100644 --- a/src/test/regress/sql/columnar_indexes.sql +++ b/src/test/regress/sql/columnar_indexes.sql @@ -1,4 +1,6 @@ -- +-- COLUMNAR_INDEXES +-- -- Testing indexes on on columnar tables. -- @@ -448,6 +450,10 @@ BEGIN; -- this wouldn't flush any data insert into events (payload) select 'hello-'||s from generate_series(1, 10) s; + SHOW server_version \gset + SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 + \gset + -- Since table is large enough, normally postgres would prefer using -- parallel workers when building the index. -- @@ -459,7 +465,12 @@ BEGIN; -- by postgres and throws an error. For this reason, here we don't expect -- following commnad to fail since we prevent using parallel workers for -- columnar tables. + + \if :server_version_ge_16 + SET LOCAL debug_parallel_query = regress; + \else SET LOCAL force_parallel_mode = regress; + \endif SET LOCAL min_parallel_table_scan_size = 1; SET LOCAL parallel_tuple_cost = 0; SET LOCAL max_parallel_workers = 4; diff --git a/src/test/regress/sql/columnar_partitioning.sql b/src/test/regress/sql/columnar_partitioning.sql index 8ae26ee3e..01a9e892e 100644 --- a/src/test/regress/sql/columnar_partitioning.sql +++ b/src/test/regress/sql/columnar_partitioning.sql @@ -1,3 +1,6 @@ +-- +-- COLUMNAR_PARTITIONING +-- CREATE TABLE parent(ts timestamptz, i int, n numeric, s text) PARTITION BY RANGE (ts); @@ -21,8 +24,16 @@ INSERT INTO parent SELECT '2020-03-15', 30, 300, 'three thousand' INSERT INTO parent SELECT '2020-04-15', 30, 300, 'three thousand' FROM generate_series(1,100000); +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset + -- run parallel plans +\if :server_version_ge_16 +SET debug_parallel_query = regress; +\else SET force_parallel_mode = regress; +\endif SET min_parallel_table_scan_size = 1; SET parallel_tuple_cost = 0; SET max_parallel_workers = 4; @@ -46,7 +57,11 @@ EXPLAIN (costs off) SELECT count(*), sum(i), min(i), max(i) FROM parent; SELECT count(*), sum(i), min(i), max(i) FROM parent; SET columnar.enable_custom_scan TO DEFAULT; +\if :server_version_ge_16 +SET debug_parallel_query TO DEFAULT; +\else SET force_parallel_mode TO DEFAULT; +\endif SET min_parallel_table_scan_size TO DEFAULT; SET parallel_tuple_cost TO DEFAULT; SET max_parallel_workers TO DEFAULT;