Andres Freund <and...@anarazel.de> wrote: > Hi, > > On 2020-02-05 10:50:05 +0100, Antonin Houska wrote: > > I can't figure out why ExecGather/ExecGatherMerge do check whether > > num_workers > > is non-zero. I think the code would be a bit clearer if these tests were > > replaced with Assert() statements, as the attached patch does. > > It's probably related to force_parallel_mode. With that we'll IIRC > generate gather nodes even if num_workers == 0.
Those Gather nodes still have non-zero num_workers, see this part of standard_planner: if (force_parallel_mode != FORCE_PARALLEL_OFF && top_plan->parallel_safe) { ... gather->num_workers = 1; gather->single_copy = true; Also, if it num_workers was zero for any reason, my patch would probably make regression tests fail. However I haven't noticed any assertion failure. -- Antonin Houska Web: https://www.cybertec-postgresql.com