Re: why not parallel seq scan for slow functions

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Jeff Janes <jeff.janes@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-08-16T11:23:34Z
Lists: pgsql-hackers
On Tue, Aug 15, 2017 at 7:15 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Sat, Aug 12, 2017 at 9:18 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>> I think skipping a generation of gather paths for scan node or top
>> level join node generated via standard_join_search seems straight
>> forward, but skipping for paths generated via geqo seems to be tricky
>> (See use of generate_gather_paths in merge_clump).  Assuming, we find
>> some way to skip it for top level scan/join node, I don't think that
>> will be sufficient, we have some special way to push target list below
>> Gather node in apply_projection_to_path, we need to move that part as
>> well in generate_gather_paths.
>
> I don't think that can work, because at that point we don't know what
> target list the upper node wants to impose.
>

I am suggesting to call generate_gather_paths just before we try to
apply projection on paths in grouping_planner (file:planner.c;
line:1787; commit:004a9702).  Won't the target list for upper nodes be
available at that point?


-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Commits

  1. Rewrite the code that applies scan/join targets to paths.

  2. Teach create_projection_plan to omit projection where possible.

  3. Make the upper part of the planner work by generating and comparing Paths.