summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/opt_range.cc24
1 files changed, 13 insertions, 11 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index ee328dadad6..59ded7354f1 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -1610,17 +1610,6 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
}
param.key_parts_end=key_parts;
- /* Calculate cost of full index read for the shortest covering index */
- if (!head->used_keys.is_clear_all())
- {
- int key_for_use= find_shortest_key(head, &head->used_keys);
- double key_read_time= get_index_only_read_time(&param, records,
- key_for_use);
- DBUG_PRINT("info", ("'all'+'using index' scan will be using key %d, "
- "read time %g", key_for_use, key_read_time));
- if (key_read_time < read_time)
- read_time= key_read_time;
- }
if ((tree=get_mm_tree(&param,cond)))
{
@@ -1683,6 +1672,19 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
SEL_IMERGE *imerge;
TABLE_READ_PLAN *best_conj_trp= NULL, *new_conj_trp;
LINT_INIT(new_conj_trp); /* no empty index_merge lists possible */
+
+ /* Calculate cost of full index read for the shortest covering index */
+ if (!head->used_keys.is_clear_all())
+ {
+ int key_for_use= find_shortest_key(head, &head->used_keys);
+ double key_read_time= get_index_only_read_time(&param, records,
+ key_for_use);
+ DBUG_PRINT("info", ("'all'+'using index' scan will be using key %d, "
+ "read time %g", key_for_use, key_read_time));
+ if (key_read_time < read_time)
+ read_time= key_read_time;
+ }
+
DBUG_PRINT("info",("No range reads possible,"
" trying to construct index_merge"));
List_iterator_fast<SEL_IMERGE> it(tree->merges);