diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_select.cc | 5 | ||||
-rw-r--r-- | sql/sql_statistics.cc | 2 |
2 files changed, 2 insertions, 5 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index c8c238945ae..ca867b04f51 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -9033,9 +9033,6 @@ double table_multi_eq_cond_selectivity(JOIN *join, uint idx, JOIN_TAB *s, if (!cond_equal || !cond_equal->current_level.elements) return sel; - if (!s->keyuse) - return sel; - Item_equal *item_equal; List_iterator_fast<Item_equal> it(cond_equal->current_level); TABLE *table= s->table; @@ -9126,7 +9123,7 @@ double table_multi_eq_cond_selectivity(JOIN *join, uint idx, JOIN_TAB *s, curr_eq_fld_sel= get_column_avg_frequency(fld) / fld->table->stat_records(); if (curr_eq_fld_sel < 1.0) - set_if_bigger(eq_fld_sel, curr_eq_fld_sel); + set_if_smaller(eq_fld_sel, curr_eq_fld_sel); } sel*= eq_fld_sel; } diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 7b600bd45c4..5c6c2499485 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -3700,7 +3700,7 @@ double get_column_avg_frequency(Field * field) Column_statistics *col_stats= field->read_stats; - if (!col_stats) + if (!is_eits_usable(field)) res= (double)table->stat_records(); else res= col_stats->get_avg_frequency(); |