• Tom Lane's avatar
    Fix handling of bare boolean expressions in mcv_get_match_bitmap. · 3fe2fc6b
    Tom Lane authored
    Since v14, the extended stats machinery will try to estimate for
    otherwise-unsupported boolean expressions if they match an expression
    available from an extended stats object.  mcv.c did not get the memo
    about this, and would spit up with "unknown clause type".  Fortunately
    the case is easy to handle, since we can expect the expression yields
    boolean.
    
    While here, replace some not-terribly-on-point assertions with
    simpler runtime tests for lookup failure.  That seems appropriate
    so that we get an elog not a crash if we somehow get to the new
    it-should-be-a-bool-expression code with a subexpression that
    doesn't match any stats column.
    
    Per report from Danny Shemesh.  Thanks to Justin Pryzby for
    preliminary investigation.
    
    Discussion: https://postgr.es/m/CAFZC=QqD6=27wQPOW1pbRa98KPyuyn+7cL_Ay_Ck-roZV84vHg@mail.gmail.com
    3fe2fc6b
stats_ext.sql 72.1 KB