|
These pieces of the code are not friendly to pluggable data types:
uint decimal_scale() const
|
{
|
return decimals < NOT_FIXED_DEC ? decimals :
|
is_temporal_type_with_time(field_type()) ?
|
TIME_SECOND_PART_DIGITS :
|
MY_MIN(max_length, DECIMAL_MAX_SCALE);
|
}
|
uint divisor_precision_increment() const
|
{
|
return decimals < NOT_FIXED_DEC ? decimals :
|
is_temporal_type_with_time(field_type()) ?
|
TIME_SECOND_PART_DIGITS :
|
decimals;
|
}
|
We'll add virtual methods in Type_handler instead:
virtual uint Item_decimal_scale(const Item *item) const;
|
virtual uint Item_divisor_precision_increment(const Item *) const;
|
|