|
This is a subtask for MDEV-14630, which can be done in a self-contained change.
Item_basic_value has a number of methods:
- is_basic_value(), which tests type() internally.
- null_eq()
- int_eq()
- str_eq()
- real_eq()
It's descendants:
- Item_param
- Item_null
- Item_int
- Item_double
- Item_float
- Item_string
use the mentioned methods in eq().
Additionally, Item_param tests cmp_type(), which is bad for pluggable data types (because constants of different pluggable data types will be able to have the same cmp_type(), but they are not equal to each other).
This task is to change the code to be based on Type_handler methods instead of Item::type() and Item::cmp_type() tests.
|