• Andrew Gierth's avatar
    postgres_fdw: don't push ORDER BY with no vars (bug #15352) · bf2d0462
    Andrew Gierth authored
    Commit aa09cd24 changed a condition in find_em_expr_for_rel from
    being a bms_equal comparison of relids to bms_is_subset, in order to
    support order by clauses on foreign joins. But this also allows
    through the degenerate case of expressions with no Vars at all (and
    hence empty relids), including integer constants which will be parsed
    unexpectedly on the remote (viz. "ERROR: ORDER BY position 0 is not in
    select list" as in the bug report).
    
    Repair by adding an additional !bms_is_empty test.
    
    Backpatch through to 9.6 where the aforementioned change was made.
    
    Per bug #15352 from Maksym Boguk; analysis and patch by me.
    
    Discussion: https://postgr.es/m/153518420278.1478.14875560810251994661@wrigleys.postgresql.org
    bf2d0462
postgres_fdw.c 171 KB