Re: Custom Scan APIs (Re: Custom Plan node) - Mailing list pgsql-hackers

From Shigeru Hanada
Subject Re: Custom Scan APIs (Re: Custom Plan node)
Date
Msg-id CAEZqfEeMs+m5so6dESupvOhjsPfDdiBXf84YpyEDGCjVeHCZ5w@mail.gmail.com
Whole thread Raw
In response to Re: Custom Scan APIs (Re: Custom Plan node)  (Kohei KaiGai <kaigai@kaigai.gr.jp>)
Responses Re: Custom Scan APIs (Re: Custom Plan node)
List pgsql-hackers
Hi KaiGai-san,


2013/11/29 Kohei KaiGai <kaigai@kaigai.gr.jp>:
> The attached ones are the revised patches.
>
> I merged all the propositions from Jim. Thanks, it made the documentation
> quality better. Also, I fixed up cosmetic stuff around whitespace <-> tab.
>
> An actual code changes are to follow the changes in FunctionScan when
> CustomScan replaces a FunctionScan. It puts a List * object instead of
> a single expression tree, to have multiple functions.
>
> Nothing were changed from the previous version.

I first reviewed postgres_fdw portion of the patches to learn the
outline of Custom Plan.  Wiki page is also a good textbook of the
feature.  I have some random comments about the basic design of Custom
Plan:

(1) IIUC add_join_path and add_scan_path are added to allow extensions
to plug their code into planner.

(2) FDW framework has executor callbacks based on existing executor
nodes.  Is there any plan to integrate them into one way, or wrap on
by another?  I'm not sure that we should have two similar framework
side by side.
# I'm sorry if I've missed the past discussion about this issue.

(3) Internal routines such as is_self_managed_relation and
has_wholerow_reference seem to be useful for other FDWs.  Is it able
to move them  into core?

(4) postgres_fdw estimates costs of join by calculating local numbers.How about to support remote estimation by
throwingEXPLALAIN query
 
when use_remote_estimates = true.

-- 
Shigeru HANADA



pgsql-hackers by date:

Previous
From: Sameer Kumar
Date:
Subject: Changes in Trigger Firing
Next
From: Stefan Kaltenbrunner
Date:
Subject: Re: Why we are going to have to go DirectIO