Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
Description
This task will:
1. Introduce new Type_handler methods:
virtual in_vector *make_in_vector(THD *thd, const Item_func_in *func, uint nargs) const;
|
virtual bool Item_func_in_fix_comparator_compatible_types(THD *thd, Item_func_in *) const;
|
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.
Attachments
Issue Links
- blocks
-
MDEV-4912 Data type plugin API version 1
- Closed