Thread: pgsql: Remove "fuzzy comparison" logic in qsort comparison function for
pgsql: Remove "fuzzy comparison" logic in qsort comparison function for
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Remove "fuzzy comparison" logic in qsort comparison function for choose_bitmap_and(). It was way too fuzzy --- per comment, it was meant to be 1% relative difference, but was actually coded as 0.01 absolute difference, thus causing selectivities of say 0.001 and 0.000000000001 to be treated as equal. I believe this thinko explains Maxim Boguk's recent complaint. While we could change it to a relative test coded like compare_fuzzy_path_costs(), there's a bigger problem here, which is that any fuzziness at all renders the comparison function non-transitive, which could confuse qsort() to the point of delivering completely wrong results. So forget the whole thing and just do an exact comparison. Tags: ---- REL8_1_STABLE Modified Files: -------------- pgsql/src/backend/optimizer/path: indxpath.c (r1.191.2.8 -> r1.191.2.9) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/indxpath.c.diff?r1=1.191.2.8&r2=1.191.2.9)