Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL)
-
None
Description
Item_cond::fix_fields() and Item_func_between::fix_fields() update these optimizer related SELECT_LEX members:
thd->lex->current_select->cond_count and
|
thd->lex->current_select->between_count
|
The purpose of these members is to allocate optimizer related buffers in:
- update_ref_and_keys() in sql_select.cc and
- check_func_dependency() in opt_table_elimination,cc
and it seems they have no any other purposes..
This looks like a dead code and the collected values are never used:
- cond_count and_between_count are later always initialized to 0 before the walk(count_sargable_conds) call in update_ref_and_keys().
- moreover, using the values collected during fix_fields() would not be correct to allocate optimized related buffers, because the code in fix_fields() does not distinguish between different query parts, so the items can be just a part of the SELECT list rather than a part of WHERE/HAVING/ON.