]> granicus.if.org Git - postgresql/commit
Rethink the GetForeignUpperPaths API (again).
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 Jul 2016 17:12:34 +0000 (13:12 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 Jul 2016 17:12:34 +0000 (13:12 -0400)
commit9e703987a8a1961af8edd751169a8ae1055890eb
treeb451ae53827e50d001aa3b074fa9d411cdd2e1cd
parent5ce5e4a12ee7175cd3fc356d9d38307e1d715827
Rethink the GetForeignUpperPaths API (again).

In the previous design, the GetForeignUpperPaths FDW callback hook was
called before we got around to labeling upper relations with the proper
consider_parallel flag; this meant that any upper paths created by an FDW
would be marked not-parallel-safe.  While that's probably just as well
right now, we aren't going to want it to be true forever.  Hence, abandon
the idea that FDWs should be allowed to inject upper paths before the core
code has gotten around to creating the relevant upper relation.  (Well,
actually they still can, but it's on their own heads how well it works.)
Instead, adopt the same API already designed for create_upper_paths_hook:
we call GetForeignUpperPaths after each upperrel has been created and
populated with the paths the core planner knows how to make.
doc/src/sgml/fdwhandler.sgml
src/backend/optimizer/README
src/backend/optimizer/plan/planagg.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/prep/prepunion.c
src/include/foreign/fdwapi.h