• Tom Lane's avatar
    More fixes for planner's handling of LATERAL. · c1774d2c
    Tom Lane authored
    Re-allow subquery pullup for LATERAL subqueries, except when the subquery
    is below an outer join and contains lateral references to relations outside
    that outer join.  If we pull up in such a case, we risk introducing lateral
    cross-references into outer joins' ON quals, which is something the code is
    entirely unprepared to cope with right now; and I'm not sure it'll ever be
    worth coping with.
    
    Support lateral refs in VALUES (this seems to be the only additional path
    type that needs such support as a consequence of re-allowing subquery
    pullup).
    
    Put in a slightly hacky fix for joinpath.c's refusal to consider
    parameterized join paths even when there cannot be any unparameterized
    ones.  This was causing "could not devise a query plan for the given query"
    failures in queries involving more than two FROM items.
    
    Put in an even more hacky fix for distribute_qual_to_rels() being unhappy
    with join quals that contain references to rels outside their syntactic
    scope; which is to say, disable that test altogether.  Need to think about
    how to preserve some sort of debugging cross-check here, while not
    expending more cycles than befits a debugging cross-check.
    c1774d2c
planner.c 103 KB