mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
Force parallelism in partition_aggregate
Commit db0d67db2 tweaked sort costing, which however resulted in a couple plan changes in our regression tests. Most of the new plans were fine, but partition_aggregate were meant to test parallel plans and the new plans were serial. Fix that by lowering parallel_setup_cost to 0, which is enough to switch to the parallel plan again. Commit 1349d2790 already made the plans parallel again, but do this anyway to keep the tests in sync with 15, to make backpatching simpler. Report and patch by David Rowley. Author: David Rowley Reviewed-by: Tomas Vondra Discussion: https://postgr.es/m/CAApHDvpVFgWzXdtUQkjyOPhNrNvumRi_=ftgS79KeAZ92tnHKQ@mail.gmail.com
This commit is contained in:
parent
92e7b7722d
commit
2fe6b2a806
@ -942,6 +942,7 @@ INSERT INTO pagg_tab_ml SELECT i % 30, i % 10, to_char(i % 4, 'FM0000') FROM gen
|
||||
ANALYZE pagg_tab_ml;
|
||||
-- For Parallel Append
|
||||
SET max_parallel_workers_per_gather TO 2;
|
||||
SET parallel_setup_cost = 0;
|
||||
-- Full aggregation at level 1 as GROUP BY clause matches with PARTITION KEY
|
||||
-- for level 1 only. For subpartitions, GROUP BY clause does not match with
|
||||
-- PARTITION KEY, but still we do not see a partial aggregation as array_agg()
|
||||
@ -1025,6 +1026,7 @@ SELECT a, sum(b), array_agg(distinct c), count(*) FROM pagg_tab_ml GROUP BY a HA
|
||||
-> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_3
|
||||
(25 rows)
|
||||
|
||||
RESET parallel_setup_cost;
|
||||
-- Full aggregation at level 1 as GROUP BY clause matches with PARTITION KEY
|
||||
-- for level 1 only. For subpartitions, GROUP BY clause does not match with
|
||||
-- PARTITION KEY, thus we will have a partial aggregation for them.
|
||||
|
@ -222,6 +222,7 @@ ANALYZE pagg_tab_ml;
|
||||
|
||||
-- For Parallel Append
|
||||
SET max_parallel_workers_per_gather TO 2;
|
||||
SET parallel_setup_cost = 0;
|
||||
|
||||
-- Full aggregation at level 1 as GROUP BY clause matches with PARTITION KEY
|
||||
-- for level 1 only. For subpartitions, GROUP BY clause does not match with
|
||||
@ -235,6 +236,8 @@ SELECT a, sum(b), array_agg(distinct c), count(*) FROM pagg_tab_ml GROUP BY a HA
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT a, sum(b), array_agg(distinct c), count(*) FROM pagg_tab_ml GROUP BY a HAVING avg(b) < 3;
|
||||
|
||||
RESET parallel_setup_cost;
|
||||
|
||||
-- Full aggregation at level 1 as GROUP BY clause matches with PARTITION KEY
|
||||
-- for level 1 only. For subpartitions, GROUP BY clause does not match with
|
||||
-- PARTITION KEY, thus we will have a partial aggregation for them.
|
||||
|
Loading…
x
Reference in New Issue
Block a user