(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