diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 463b24ba903..be5814f888a 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -593,6 +593,8 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions, { Path *cheapest_partial_path; cheapest_partial_path = linitial(final_rel->partial_pathlist); + if (force_parallel_mode == FORCE_PARALLEL_ON) + final_rel->pathlist = NIL; add_path(final_rel, cheapest_partial_path, root); set_cheapest(final_rel); } diff --git a/src/test/regress/expected/incremental_sort.out b/src/test/regress/expected/incremental_sort.out index 9bdd3486d2b..c5f52e1e97f 100644 --- a/src/test/regress/expected/incremental_sort.out +++ b/src/test/regress/expected/incremental_sort.out @@ -589,7 +589,6 @@ select explain_analyze_without_memory('select * from (select * from t order by a Optimizer: Postgres query optimizer (13 rows) -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 55')); jsonb_pretty ------------------------------------------------- @@ -626,6 +625,7 @@ select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from ] (1 row) +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 55'); explain_analyze_inc_sort_nodes_verify_invariants -------------------------------------------------- @@ -815,7 +815,6 @@ select explain_analyze_without_memory('select * from (select * from t order by a Optimizer: Postgres query optimizer (14 rows) -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 70')); jsonb_pretty ------------------------------------------------- @@ -861,6 +860,7 @@ select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from ] (1 row) +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 70'); explain_analyze_inc_sort_nodes_verify_invariants -------------------------------------------------- diff --git a/src/test/regress/expected/incremental_sort_optimizer.out b/src/test/regress/expected/incremental_sort_optimizer.out index 97550c1beda..f5fd24f81ba 100644 --- a/src/test/regress/expected/incremental_sort_optimizer.out +++ b/src/test/regress/expected/incremental_sort_optimizer.out @@ -560,7 +560,6 @@ select explain_analyze_without_memory('select * from (select * from t order by a Optimizer: Pivotal Optimizer (GPORCA) (9 rows) -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 55')); jsonb_pretty -------------- @@ -568,6 +567,7 @@ select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from ] (1 row) +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 55'); explain_analyze_inc_sort_nodes_verify_invariants -------------------------------------------------- @@ -743,7 +743,6 @@ select explain_analyze_without_memory('select * from (select * from t order by a Optimizer: Pivotal Optimizer (GPORCA) (10 rows) -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 70')); jsonb_pretty -------------- @@ -751,6 +750,7 @@ select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from ] (1 row) +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 70'); explain_analyze_inc_sort_nodes_verify_invariants -------------------------------------------------- diff --git a/src/test/regress/sql/incremental_sort.sql b/src/test/regress/sql/incremental_sort.sql index eb7a1082f2b..afd1dab2045 100644 --- a/src/test/regress/sql/incremental_sort.sql +++ b/src/test/regress/sql/incremental_sort.sql @@ -147,8 +147,8 @@ select * from (select * from t order by a) s order by a, b limit 55; -- Test EXPLAIN ANALYZE with only a fullsort group. set max_parallel_workers_per_gather = 0; select explain_analyze_without_memory('select * from (select * from t order by a) s order by a, b limit 55'); -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 55')); +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 55'); delete from t; @@ -181,8 +181,8 @@ rollback; -- Test EXPLAIN ANALYZE with both fullsort and presorted groups. set max_parallel_workers_per_gather = 0; select explain_analyze_without_memory('select * from (select * from t order by a) s order by a, b limit 70'); -reset max_parallel_workers_per_gather; select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 70')); +reset max_parallel_workers_per_gather; select explain_analyze_inc_sort_nodes_verify_invariants('select * from (select * from t order by a) s order by a, b limit 70'); delete from t;