From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Provide a planner hook at a suitable place for creating upper-re |
Date: | 2016-03-14 23:23:36 |
Message-ID: | E1afbpo-0003Gf-UU@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Provide a planner hook at a suitable place for creating upper-rel Paths.
In the initial revision of the upper-planner pathification work, the only
available way for an FDW or custom-scan provider to inject Paths
representing post-scan-join processing was to insert them during scan-level
GetForeignPaths or similar processing. While that's not impossible, it'd
require quite a lot of duplicative processing to look forward and see if
the extension would be capable of implementing the whole query. To improve
matters for custom-scan providers, provide a hook function at the point
where the core code is about to start filling in upperrel Paths. At this
point Paths are available for the whole scan/join tree, which should reduce
the amount of redundant effort considerably.
(An alternative design that was suggested was to provide a separate hook
for each post-scan-join processing step, but that seems messy and not
clearly more useful.)
Following our time-honored tradition, there's no documentation for this
hook outside the source code.
As-is, this hook is only meant for custom scan providers, which we can't
assume very much about. A followon patch will implement an FDW callback
to let FDWs do the same thing in a somewhat more structured fashion.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/5864d6a4b62ada2ad60a8c456b4ee62972a9c10d
Modified Files
--------------
src/backend/optimizer/plan/planner.c | 26 ++++++++++++++++++++++++++
src/backend/optimizer/prep/prepjointree.c | 1 +
src/include/nodes/relation.h | 3 +++
src/include/optimizer/planner.h | 5 +++++
4 files changed, 35 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2016-03-14 23:51:16 | pgsql: Fix EXPLAIN ANALYZE SELECT INTO not to choose a parallel plan. |
Previous Message | Tom Lane | 2016-03-14 21:31:35 | pgsql: Allow callers of create_foreignscan_path to specify nondefault P |