This task will:
1. Introduce new Type_handler methods:
2. Remove these data type conditions in Item_func_in::fix_length_and_dec()
- switch (m_comparator.cmp_type())
- if (m_comparator.cmp_type() == STRING_RESULT
- if (m_comparator.cmp_type() == ROW_RESULT)
- if ... m_comparator.cmp_type() != INT_RESULT
and use the new Type_handler methods instead.
3. Split in_datetime (which now covers all temporal data types: DATETIME, DATE, TIME) into an abstract parent class in_temporal and two instantiable classes in_datetime (for DATETIME and DATE) and in_time (for TIME).
After this change the behavior of the code responsible for IN bisection search will be fully handled by Type_handler.
There will some explicit XXX_RESULT conditions be left though, in the code responsible for the cmp_items based IN search. This code will be cleaned-up in a separate patch.