(2018/07/27 4:50), Robert Haas wrote:
> On Thu, Jul 26, 2018 at 1:14 AM, Etsuro Fujita
> <fujita.etsuro@lab.ntt.co.jp> wrote:
>> because we currently don't consider gathering partial child-scan or
>> child-join paths. I think we might consider that in future, though.
>
> You generally want to put the Gather node as high up in the plan tree
> as possible. I think the only case in which this is beneficial is if
> you can't put the Gather or Gather Merge node above the Append because
> only some of the children are parallel-safe. In that case, a separate
> Gather per child can be better than no parallelism at all. It's a
> rare case, but it can happen. Actually, I thought we had code for this
> already: see the end of apply_scanjoin_target_to_paths().
Agreed. Thanks for the explanation!
(I think that at least currently, there is no need for the Gather and
GatherMerge cases in reparameterize_path_by_child, but I don't object to
keeping those as-is there.)
Best regards,
Etsuro Fujita