Pluggable data types should be able to:
- define their own way to calculate data type attributes for explicit CAST
- or reject explicit CAST operations to certain data type targets
Under terms of this task we'll introduce:
virtual bool Item_func_signed_fix_length_and_dec(Item_func_signed *item) const;
|
virtual bool Item_func_unsigned_fix_length_and_dec(Item_func_unsigned *item) const;
|
virtual bool Item_double_typecast_fix_length_and_dec(Item_double_typecast *item) const;
|
virtual bool Item_decimal_typecast_fix_length_and_dec(Item_decimal_typecast *item) const;
|
virtual bool Item_char_typecast_fix_length_and_dec(Item_char_typecast *item) const;
|
virtual bool Item_time_typecast_fix_length_and_dec(Item_time_typecast *item) const;
|
virtual bool Item_date_typecast_fix_length_and_dec(Item_date_typecast *item) const;
|
virtual bool Item_datetime_typecast_fix_length_and_dec(Item_datetime_typecast *item) const;
|
We'll also disallow explicit CAST from GEOMETRY to numeric and temporal data types,
as well as from GEOMETRY to CHAR.
Explicit CAST from GEOMETRY to BINARY will still be possible.