• Tom Lane's avatar
    Fix oversight in flattening of subqueries with empty FROM. · fca8e59c
    Tom Lane authored
    I missed a restriction that commit f4abd024
    should have enforced: we can't pull up an empty-FROM subquery if it's under
    an outer join, because then we'd need to wrap its output columns in
    PlaceHolderVars.  As the code currently stands, the PHVs end up with empty
    relid sets, which doesn't work (and is correctly caught by an Assert).
    
    It's possible that this could be fixed by assigning the PHVs the relid
    sets of the parent FromExpr/JoinExpr, but getting that to work is more
    complication than I care to add right now; indeed it's likely that
    we'll never bother, since pulling up empty-FROM subqueries is a rather
    marginal optimization anyway.
    
    Per report from Andreas Seltenreich.  Back-patch to 9.5 where the faulty
    code was added.
    fca8e59c
prepjointree.c 97.2 KB