pgsql: Fix booltestsel() for case where we have NULL stats but not MCV - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix booltestsel() for case where we have NULL stats but not MCV
Date
Msg-id E1V1qxN-0004RZ-3s@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/b32a25c3d5292c800c0468097b9a63e931a0af0f

Modified Files
--------------
src/backend/utils/adt/selfuncs.c |   22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix booltestsel() for case where we have NULL stats but not MCV
Next
From: Tom Lane
Date:
Subject: pgsql: Fix booltestsel() for case where we have NULL stats but not MCV