(2012/02/14 23:50), Tom Lane wrote:
> Shigeru Hanada<shigeru.hanada@gmail.com> writes:
>> (2012/02/14 17:40), Etsuro Fujita wrote:
>>> As discussed at
>>> that thread, it would have to change the PlanForeignScan API to let the
>>> FDW generate multiple paths and dump them all to add_path instead of
>>> returning a FdwPlan struct.
>
>> Multiple valuable Paths for a scan of a foreign table by FDW, but
>> changing PlanForeignScan to return list of FdwPlan in 9.2 seems too
>> hasty.
>
> I would really like to see that happen in 9.2, because the longer we let
> that mistake live, the harder it will be to change. More and more FDWs
> are getting written. I don't think it's that hard to do: we just have
> to agree that PlanForeignScan should return void and call add_path for
> itself, possibly more than once.
Agreed. I fixed the PlanForeignScan API. Please find attached a patch.
> If we do that, I'm inclined to think
> we cou;d get rid of the separate Node type FdwPlan, and just incorporate
> "List *fdw_private" into ForeignPath and ForeignScan.
+1 While the patch retains the struct FdwPlan, I would like to get rid
of it at next version of the patch.
Best regards,
Etsuro Fujita