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.
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.