aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/planner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r--src/backend/optimizer/plan/planner.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index ba6992df25c..d9e2b45065e 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -326,12 +326,9 @@ standard_planner(Query *parse, int cursorOptions, ParamListInfo boundParams)
* Optionally add a Gather node for testing purposes, provided this is
* actually a safe thing to do. (Note: we assume adding a Material node
* above did not change the parallel safety of the plan, so we can still
- * rely on best_path->parallel_safe. However, that flag doesn't account
- * for subplans, which we are unable to transmit to workers presently.)
+ * rely on best_path->parallel_safe.)
*/
- if (force_parallel_mode != FORCE_PARALLEL_OFF &&
- best_path->parallel_safe &&
- glob->subplans == NIL)
+ if (force_parallel_mode != FORCE_PARALLEL_OFF && best_path->parallel_safe)
{
Gather *gather = makeNode(Gather);
@@ -782,10 +779,10 @@ subquery_planner(PlannerGlobal *glob, Query *parse,
SS_identify_outer_params(root);
/*
- * If any initPlans were created in this query level, increment the
- * surviving Paths' costs to account for them. They won't actually get
- * attached to the plan tree till create_plan() runs, but we want to be
- * sure their costs are included now.
+ * If any initPlans were created in this query level, adjust the surviving
+ * Paths' costs and parallel-safety flags to account for them. The
+ * initPlans won't actually get attached to the plan tree till
+ * create_plan() runs, but we must include their effects now.
*/
final_rel = fetch_upper_rel(root, UPPERREL_FINAL, NULL);
SS_charge_for_initplans(root, final_rel);