• T
    Provide a planner hook at a suitable place for creating upper-rel Paths. · 5864d6a4
    Tom Lane 提交于
    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.
    5864d6a4
planner.c 142.9 KB