• Tom Lane's avatar
    Remove ph_may_need from PlaceHolderInfo, with attendant simplifications. · 1b1d3d92
    Tom Lane authored
    The planner logic that attempted to make a preliminary estimate of the
    ph_needed levels for PlaceHolderVars seems to be completely broken by
    lateral references.  Fortunately, the potential join order optimization
    that this code supported seems to be of relatively little value in
    practice; so let's just get rid of it rather than trying to fix it.
    
    Getting rid of this allows fairly substantial simplifications in
    placeholder.c, too, so planning in such cases should be a bit faster.
    
    Issue noted while pursuing bugs reported by Jeremy Evans and Antonin
    Houska, though this doesn't in itself fix either of their reported cases.
    What this does do is prevent an Assert crash in the kind of query
    illustrated by the added regression test.  (I'm not sure that the plan for
    that query is stable enough across platforms to be usable as a regression
    test output ... but we'll soon find out from the buildfarm.)
    
    Back-patch to 9.3.  The problem case can't arise without LATERAL, so
    no need to touch older branches.
    1b1d3d92
equalfuncs.c 67 KB