• Tom Lane's avatar
    Don't believe MinMaxExpr is leakproof without checking. · 68a13f28
    Tom Lane authored
    MinMaxExpr invokes the btree comparison function for its input datatype,
    so it's only leakproof if that function is.  Many such functions are
    indeed leakproof, but others are not, and we should not just assume that
    they are.  Hence, adjust contain_leaked_vars to verify the leakproofness
    of the referenced function explicitly.
    
    I didn't add a regression test because it would need to depend on
    some particular comparison function being leaky, and that's a moving
    target, per discussion.
    
    This has been wrong all along, so back-patch to supported branches.
    
    Discussion: https://postgr.es/m/31042.1546194242@sss.pgh.pa.us
    68a13f28
clauses.c 166 KB