diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 407df9a..e407b34 100644
*** a/src/backend/optimizer/plan/planner.c
--- b/src/backend/optimizer/plan/planner.c
*************** standard_planner(Query *parse, int curso
*** 249,254 ****
--- 249,255 ----
  	glob->lastPlanNodeId = 0;
  	glob->transientPlan = false;
  	glob->dependsOnRole = false;
+ 	glob->parallelModeNeeded = false;
  
  	/*
  	 * Assess whether it's feasible to use parallel mode for this query. We
*************** standard_planner(Query *parse, int curso
*** 290,307 ****
  		glob->parallelModeOK = false;
  	}
  
- 	/*
- 	 * glob->parallelModeNeeded should tell us whether it's necessary to
- 	 * impose the parallel mode restrictions, but we don't actually want to
- 	 * impose them unless we choose a parallel plan, so it is normally set
- 	 * only if a parallel plan is chosen (see create_gather_plan).  That way,
- 	 * people who mislabel their functions but don't use parallelism anyway
- 	 * aren't harmed.  But when force_parallel_mode is set, we enable the
- 	 * restrictions whenever possible for testing purposes.
- 	 */
- 	glob->parallelModeNeeded = glob->parallelModeOK &&
- 		(force_parallel_mode != FORCE_PARALLEL_OFF);
- 
  	/* Determine what fraction of the plan is likely to be scanned */
  	if (cursorOptions & CURSOR_OPT_FAST_PLAN)
  	{
--- 291,296 ----
