diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2021-10-22 19:43:19 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2022-01-19 18:10:11 +0300 |
commit | 05877df472fa95cab763dfb1299e81681a12da73 (patch) | |
tree | 00753389e2ddeb3931cb3fdb605b2c92064373b1 /sql/sql_statistics.cc | |
parent | f3f78bed8530e1e858d5ed87054f2ac672760824 (diff) | |
download | mariadb-git-05877df472fa95cab763dfb1299e81681a12da73.tar.gz |
MDEV-26849: JSON Histograms: point selectivity estimates are off
.. for non-existent values.
Handle this special case.
Diffstat (limited to 'sql/sql_statistics.cc')
-rw-r--r-- | sql/sql_statistics.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index c62230a9af1..c87330316f4 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -3882,7 +3882,8 @@ double get_column_range_cardinality(Field *field, { res= col_non_nulls * hist->point_selectivity(field, min_endp, - avg_frequency / col_non_nulls); + avg_frequency / col_non_nulls, + tab_records); } } else if (avg_frequency == 0.0) @@ -3973,7 +3974,8 @@ double get_column_range_cardinality(Field *field, */ double Histogram_binary::point_selectivity(Field *field, key_range *endpoint, - double avg_sel) + double avg_sel, + double total_records) { double sel; Column_statistics *col_stats= field->read_stats; |