On Mon, Mar 14, 2016 at 1:37 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> On Mon, Mar 14, 2016 at 1:04 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >>> It would be better if we invent an FDW callback that's meant to be >>> invoked at this stage, but only call it for FDW(s) actively involved >>> in the query. I'm not sure exactly what that ought to look like though. >>> Maybe only call the FDW identified as possible owner of the topmost >>> scan/join relation? > >> I think in the short term that's as well as we're going to do, so +1. >> In the long run, I'm interested in making FDWs be able to optimize >> queries like foreigntab JOIN localtab ON foreigntab.x = localtab.x >> (e.g. by copying localtab to the remote side when it's small); but >> that will require revisiting some old decisions, too. > > Yeah. An alternative definition that would support that would be to > call the upper-path-providing callback for each FDW that's responsible > for any base relation of the query. But I think that that would often > lead to a lot of redundant/wasted computation, and it's not clear to > me that we can support such cases without other changes as well.
Sure, that's fine with me. Are you going to go make these changes now? Eventually, we might just support a configurable flag on FDWs where FDWs that want to do this sort of thing can request callbacks on every join and every upper rel in the query. But that can wait. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers