• Peter Eisentraut's avatar
    postgres_fdw: Fix join push down with extensions · 332bec1e
    Peter Eisentraut authored
    Objects in an extension are shippable to a foreign server if the
    extension is part of the foreign server definition's shippable
    extensions list.  But this was not properly considered in some cases
    when checking whether a join condition can be pushed to a foreign server
    and the join condition uses an object from a shippable extension.  So
    the join would never be pushed down in those cases.
    
    So, the list of extensions needs to be made available in fpinfo of the
    relation being considered to be pushed down before any expressions are
    assessed for being shippable.  Fix foreign_join_ok() to do that for a
    join relation.
    
    The code to save FDW options in fpinfo is scattered at multiple places.
    Bring all of that together into functions apply_server_options(),
    apply_table_options(), and merge_fdw_options().
    
    David Rowley and Ashutosh Bapat, per report from David Rowley
    332bec1e
postgres_fdw.out 363 KB