Re: Optimization for updating foreign tables in Postgres FDW - Mailing list pgsql-hackers

From Stephen Frost
Subject Re: Optimization for updating foreign tables in Postgres FDW
Date
Msg-id 20140911153049.GC16422@tamriel.snowman.net
Whole thread Raw
In response to Re: Optimization for updating foreign tables in Postgres FDW  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Responses Re: Optimization for updating foreign tables in Postgres FDW  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
* Albe Laurenz (laurenz.albe@wien.gv.at) wrote:
> Etsuro Fujita wrote:
> > I agree with you on that point.  So, I've updated the patch to have the
> > explicit flag, as you proposed.  Attached is the updated version of the
> > patch.  In this version, I've also revised code and its comments a bit.
>
> Thank you, I have set the patch to "Ready for Committer".

I had a few minutes, so I started looking at this patch and I definitely
like where it's going.  One concern which was brought up that I didn't
see completely addressed was around UPDATE/DELETE with LIMIT, which
seems to be making progress towards getting in.  Presumably, we'd simply
disallow this optimization in that case, but we'll need a way to
identify that case..

I have to admit that, while I applaud the effort made to have this
change only be to postgres_fdw, I'm not sure that having the
update/delete happening during the Scan phase and then essentially
no-op'ing the ExecForeignUpdate/ExecForeignDelete is entirely in-line
with the defined API.

I would have thought we'd add a capability check function that says "can
this Modify be completely pushed down" and then have a way for that to
happen in ExecForeignUpdate/ExecForeignDelete.  That means changes to
the existing API, of course, and if people feel that's unnecessary then
I'd suggest that we need to at least document that we're willing to
support these bulk operations happening on the remote siude during the
pre-Modify Scan and not during the ExecForeignUpdate/ExecForeignDelete.
Thanks,
    Stephen

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: bad estimation together with large work_mem generates terrible slow hash joins
Next
From: Robert Haas
Date:
Subject: Re: Patch to support SEMI and ANTI join removal