Commit 1e56883a authored by Robert Haas's avatar Robert Haas

Attempt to clarify comments related to force_parallel_mode.

Per discussion with Tom Lane.

Discussion: http://postgr.es/m/28589.1502902172@sss.pgh.pa.us
parent a2b70c89
...@@ -291,13 +291,21 @@ standard_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) ...@@ -291,13 +291,21 @@ standard_planner(Query *parse, int cursorOptions, ParamListInfo boundParams)
} }
/* /*
* glob->parallelModeNeeded should tell us whether it's necessary to * glob->parallelModeNeeded is normally set to false here and changed to
* impose the parallel mode restrictions, but we don't actually want to * true during plan creation if a Gather or Gather Merge plan is actually
* impose them unless we choose a parallel plan, so it is normally set * created (cf. create_gather_plan, create_gather_merge_plan).
* only if a parallel plan is chosen (see create_gather_plan). That way, *
* people who mislabel their functions but don't use parallelism anyway * However, if force_parallel_mode = on or force_parallel_mode = regress,
* aren't harmed. But when force_parallel_mode is set, we enable the * then we impose parallel mode whenever it's safe to do so, even if the
* restrictions whenever possible for testing purposes. * final plan doesn't use parallelism. It's not safe to do so if the
* query contains anything parallel-unsafe; parallelModeOK will be false
* in that case. Note that parallelModeOK can't change after this point.
* Otherwise, everything in the query is either parallel-safe or
* parallel-restricted, and in either case it should be OK to impose
* parallel-mode restrictions. If that ends up breaking something, then
* either some function the user included in the query is incorrectly
* labelled as parallel-safe or parallel-restricted when in reality it's
* parallel-unsafe, or else the query planner itself has a bug.
*/ */
glob->parallelModeNeeded = glob->parallelModeOK && glob->parallelModeNeeded = glob->parallelModeOK &&
(force_parallel_mode != FORCE_PARALLEL_OFF); (force_parallel_mode != FORCE_PARALLEL_OFF);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment