test_with_noleader.patch
application/octet-stream
Filename: test_with_noleader.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/test/regress/expected/select_parallel.out | 109 | 0 |
| src/test/regress/sql/select_parallel.sql | 33 | 0 |
diff --git a/src/test/regress/expected/select_parallel.out b/src/test/regress/expected/select_parallel.out
index ff00d47..ff3e083 100644
--- a/src/test/regress/expected/select_parallel.out
+++ b/src/test/regress/expected/select_parallel.out
@@ -35,6 +35,40 @@ select round(avg(aa)), sum(aa) from a_star a1;
14 | 355
(1 row)
+-- leader participation disabled.
+set parallel_leader_participation = off;
+-- Note : With no leader, subplans become non-partial, unless parallel_workers
+-- is set for each of them.
+alter table c_star set (parallel_workers = 3);
+alter table d_star set (parallel_workers = 3);
+alter table a_star set (parallel_workers = 3);
+alter table b_star set (parallel_workers = 3);
+alter table e_star set (parallel_workers = 3);
+alter table f_star set (parallel_workers = 3);
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+ QUERY PLAN
+-----------------------------------------------------
+ Finalize Aggregate
+ -> Gather
+ Workers Planned: 3
+ -> Partial Aggregate
+ -> Parallel Append
+ -> Parallel Seq Scan on a_star
+ -> Parallel Seq Scan on b_star
+ -> Parallel Seq Scan on c_star
+ -> Parallel Seq Scan on d_star
+ -> Parallel Seq Scan on e_star
+ -> Parallel Seq Scan on f_star
+(11 rows)
+
+select round(avg(aa)), sum(aa) from a_star a1_1;
+ round | sum
+-------+-----
+ 14 | 355
+(1 row)
+
+reset parallel_leader_participation;
-- Parallel Append with both partial and non-partial subplans
alter table c_star set (parallel_workers = 0);
alter table d_star set (parallel_workers = 0);
@@ -61,6 +95,32 @@ select round(avg(aa)), sum(aa) from a_star a2;
14 | 355
(1 row)
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+ QUERY PLAN
+-----------------------------------------------------
+ Finalize Aggregate
+ -> Gather
+ Workers Planned: 3
+ -> Partial Aggregate
+ -> Parallel Append
+ -> Seq Scan on d_star
+ -> Seq Scan on c_star
+ -> Parallel Seq Scan on a_star
+ -> Parallel Seq Scan on b_star
+ -> Parallel Seq Scan on e_star
+ -> Parallel Seq Scan on f_star
+(11 rows)
+
+select round(avg(aa)), sum(aa) from a_star a2_1;
+ round | sum
+-------+-----
+ 14 | 355
+(1 row)
+
+reset parallel_leader_participation;
-- Parallel Append with only non-partial subplans
alter table a_star set (parallel_workers = 0);
alter table b_star set (parallel_workers = 0);
@@ -89,6 +149,32 @@ select round(avg(aa)), sum(aa) from a_star a3;
14 | 355
(1 row)
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+ QUERY PLAN
+--------------------------------------------
+ Finalize Aggregate
+ -> Gather
+ Workers Planned: 3
+ -> Partial Aggregate
+ -> Parallel Append
+ -> Seq Scan on d_star
+ -> Seq Scan on f_star
+ -> Seq Scan on e_star
+ -> Seq Scan on b_star
+ -> Seq Scan on c_star
+ -> Seq Scan on a_star
+(11 rows)
+
+select round(avg(aa)), sum(aa) from a_star a3_1;
+ round | sum
+-------+-----
+ 14 | 355
+(1 row)
+
+reset parallel_leader_participation;
-- Disable Parallel Append
alter table a_star reset (parallel_workers);
alter table b_star reset (parallel_workers);
@@ -120,6 +206,29 @@ select round(avg(aa)), sum(aa) from a_star a4;
14 | 355
(1 row)
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+ QUERY PLAN
+--------------------------------
+ Aggregate
+ -> Append
+ -> Seq Scan on a_star
+ -> Seq Scan on b_star
+ -> Seq Scan on c_star
+ -> Seq Scan on d_star
+ -> Seq Scan on e_star
+ -> Seq Scan on f_star
+(8 rows)
+
+select round(avg(aa)), sum(aa) from a_star a4_1;
+ round | sum
+-------+-----
+ 14 | 355
+(1 row)
+
+reset parallel_leader_participation;
reset enable_parallel_append;
-- test with leader participation disabled
set parallel_leader_participation = off;
diff --git a/src/test/regress/sql/select_parallel.sql b/src/test/regress/sql/select_parallel.sql
index 1035d04..a79422f 100644
--- a/src/test/regress/sql/select_parallel.sql
+++ b/src/test/regress/sql/select_parallel.sql
@@ -19,6 +19,20 @@ set max_parallel_workers_per_gather=4;
explain (costs off)
select round(avg(aa)), sum(aa) from a_star;
select round(avg(aa)), sum(aa) from a_star a1;
+-- leader participation disabled.
+set parallel_leader_participation = off;
+-- Note : With no leader, subplans become non-partial, unless parallel_workers
+-- is set for each of them.
+alter table c_star set (parallel_workers = 3);
+alter table d_star set (parallel_workers = 3);
+alter table a_star set (parallel_workers = 3);
+alter table b_star set (parallel_workers = 3);
+alter table e_star set (parallel_workers = 3);
+alter table f_star set (parallel_workers = 3);
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+select round(avg(aa)), sum(aa) from a_star a1_1;
+reset parallel_leader_participation;
-- Parallel Append with both partial and non-partial subplans
alter table c_star set (parallel_workers = 0);
@@ -26,6 +40,13 @@ alter table d_star set (parallel_workers = 0);
explain (costs off)
select round(avg(aa)), sum(aa) from a_star;
select round(avg(aa)), sum(aa) from a_star a2;
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+select round(avg(aa)), sum(aa) from a_star a2_1;
+reset parallel_leader_participation;
+
-- Parallel Append with only non-partial subplans
alter table a_star set (parallel_workers = 0);
@@ -35,6 +56,12 @@ alter table f_star set (parallel_workers = 0);
explain (costs off)
select round(avg(aa)), sum(aa) from a_star;
select round(avg(aa)), sum(aa) from a_star a3;
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+select round(avg(aa)), sum(aa) from a_star a3_1;
+reset parallel_leader_participation;
-- Disable Parallel Append
alter table a_star reset (parallel_workers);
@@ -47,6 +74,12 @@ set enable_parallel_append to off;
explain (costs off)
select round(avg(aa)), sum(aa) from a_star;
select round(avg(aa)), sum(aa) from a_star a4;
+-- leader participation disabled.
+set parallel_leader_participation = off;
+explain (costs off)
+ select round(avg(aa)), sum(aa) from a_star;
+select round(avg(aa)), sum(aa) from a_star a4_1;
+reset parallel_leader_participation;
reset enable_parallel_append;
-- test with leader participation disabled