• Tomas Vondra's avatar
    Simplify bitmap updates in multivariate MCV code · 7d24f6a4
    Tomas Vondra authored
    When evaluating clauses on a multivariate MCV list, we build a bitmap
    tracking how the clauses match each item of the MCV list.  When updating
    the bitmap we need to consider the current value (tracking how the item
    matches preceding clauses), match for the current clause and whether the
    clauses are connected by AND or OR.
    
    Until now the logic was copied on every place updating the bitmap, which
    was not quite readable.  So just move it to a separate function and call
    it where needed.
    
    Backpatch to 12, where the code was introduced. While not a bugfix, this
    should make maintenance and future backpatches easier.
    
    Discussion: https://postgr.es/m/8736jdhbhc.fsf%40ansel.ydns.eu
    7d24f6a4
mcv.c 54 KB