diff options
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 0651c1d58bd..0048d36d2ea 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -8100,6 +8100,7 @@ best_access_path(JOIN *join, if ((records >= s->found_records || best > s->read_time) && // (1) !(best_key && best_key->key == MAX_KEY) && // (2) !(s->quick && best_key && s->quick->index == best_key->key && // (2) + s->table->quick_keys.is_set(best_key->key) && // (2) best_max_key_part >= s->table->quick_key_parts[best_key->key]) &&// (2) !((s->table->file->ha_table_flags() & HA_TABLE_SCAN_ON_INDEX) && // (3) ! s->table->covering_keys.is_clear_all() && best_key && !s->quick) &&// (3) @@ -13761,7 +13762,7 @@ double JOIN_TAB::scan_time() ha_rows JOIN_TAB::get_examined_rows() { double examined_rows; - SQL_SELECT *sel= filesort? filesort->select : this->select; + const SQL_SELECT *sel= get_sql_select(); if (sel && sel->quick && use_quick != 2) examined_rows= (double)sel->quick->records; @@ -26770,13 +26771,12 @@ bool JOIN_TAB::save_explain_data(Explain_table_access *eta, eta->key.clear(); eta->quick_info= NULL; - SQL_SELECT *tab_select; /* We assume that if this table does pre-sorting, then it doesn't do filtering with SQL_SELECT. */ DBUG_ASSERT(!(select && filesort)); - tab_select= (filesort)? filesort->select : select; + const SQL_SELECT *tab_select= get_sql_select(); if (filesort) { |