Item_param has two parallel systems to maintain the data type:
- Type_handler_hybrid_field_type, which is used externally, like for a regular Item.
- enum_item_param_state constants INT_VALUE, DECIMAL_VALUE, REAL_VALUE, STRING_VALUE, TIME_VALUE, which are used internally, to maintain the data stored inside Item_param::value.
We'll do the following:
- Remove the data type specific constants from enum_item_param_state
- Add a new value SHORT_DATA_VALUE instead, for all data types.
- Start using Type_handler_hybrid_field_type to maintain Item_param::value internally.
After this change, enum_item_param_state will look like this:
Note, SHORT_DATA_VALUE is needed to distinguish the state from LONG_DATA_VALUE.
These changes are needed to simplify further work for: