• Tom Lane's avatar
    Do ScalarArrayOp estimation correctly when array is a stable expression. · 77585bce
    Tom Lane authored
    Most estimation functions apply estimate_expression_value to see if they
    can reduce an expression to a constant; the key difference is that it
    allows evaluation of stable as well as immutable functions in hopes of
    ending up with a simple Const node.  scalararraysel didn't get the memo
    though, and neither did gincost_opexpr/gincost_scalararrayopexpr.  Fix
    that, and remove a now-unnecessary estimate_expression_value step in the
    subsidiary function scalararraysel_containment.
    
    Per complaint from Alexey Klyukin.  Back-patch to 9.3.  The problem
    goes back further, but I'm hesitant to change estimation behavior in
    long-stable release branches.
    77585bce
array_selfuncs.c 32.4 KB