• T
    Fix mark_placeholder_maybe_needed to handle LATERAL references. · 4da6439b
    Tom Lane 提交于
    If a PlaceHolderVar contains a pulled-up LATERAL reference, its minimum
    possible evaluation level might be higher in the join tree than its
    original syntactic location.  That in turn affects the ph_needed level for
    any contained PlaceHolderVars (that is, those PHVs had better propagate up
    the join tree at least to the evaluation level of the outer PHV).  We got
    this mostly right, but mark_placeholder_maybe_needed() failed to account
    for the effect, and in consequence could leave the inner PHVs with
    ph_may_need less than what their ultimate ph_needed value will be.  That's
    bad because it could lead to failure to select a join order that will allow
    evaluation of the inner PHV at a valid location.  Fix that, and add an
    Assert that checks that we don't ever set ph_needed to more than
    ph_may_need.
    4da6439b
join.out 113.3 KB