]> granicus.if.org Git - postgresql/commit
Fix booltestsel() for case where we have NULL stats but not MCV stats.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Jul 2013 04:44:09 +0000 (00:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Jul 2013 04:44:22 +0000 (00:44 -0400)
commit808d1f8122223a19d7796e2b50878b1b42450263
treedb0fa4c68dd59d93b87ea6aa58c97121fefb0166
parent7f5cfe914de49130d86b2e1e9636b7135e577ef1
Fix booltestsel() for case where we have NULL stats but not MCV stats.

In a boolean column that contains mostly nulls, ANALYZE might not find
enough non-null values to populate the most-common-values stats,
but it would still create a pg_statistic entry with stanullfrac set.
The logic in booltestsel() for this situation did the wrong thing for
"col IS NOT TRUE" and "col IS NOT FALSE" tests, forgetting that null
values would satisfy these tests (so that the true selectivity would
be close to one, not close to zero).  Per bug #8274.

Fix by Andrew Gierth, some comment-smithing by me.
src/backend/utils/adt/selfuncs.c