• Tom Lane's avatar
    Further mucking with PlaceHolderVar-related restrictions on join order. · 4200a928
    Tom Lane authored
    Commit 85e5e222 turns out not to have taken
    care of all cases of the partially-evaluatable-PlaceHolderVar problem found
    by Andreas Seltenreich's fuzz testing.  I had set it up to check for risky
    PHVs only in the event that we were making a star-schema-based exception to
    the param_source_rels join ordering heuristic.  However, it turns out that
    the problem can occur even in joins that satisfy the param_source_rels
    heuristic, in which case allow_star_schema_join() isn't consulted.
    Refactor so that we check for risky PHVs whenever the proposed join has
    any remaining parameterization.
    
    Back-patch to 9.2, like the previous patch (except for the regression test
    case, which only works back to 9.3 because it uses LATERAL).
    
    Note that this discovery implies that problems of this sort could've
    occurred in 9.2 and up even before the star-schema patch; though I've not
    tried to prove that experimentally.
    4200a928
joinpath.c 48.3 KB