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


Reply via email to