1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-15946 MEDIUMINT(N<8) creates a wrong data type on conversion to string

This commit is contained in:
Alexander Barkov
2018-04-23 18:34:06 +04:00
parent 8fce4065e5
commit 461de7edea
7 changed files with 420 additions and 93 deletions

View File

@ -465,6 +465,20 @@ const Name
Type_handler_datetime_common::m_name_datetime(STRING_WITH_LEN("datetime")),
Type_handler_timestamp_common::m_name_timestamp(STRING_WITH_LEN("timestamp"));
const Type_limits_int
Type_handler_tiny::m_limits_sint8= Type_limits_sint8(),
Type_handler_tiny::m_limits_uint8= Type_limits_uint8(),
Type_handler_short::m_limits_sint16= Type_limits_sint16(),
Type_handler_short::m_limits_uint16= Type_limits_uint16(),
Type_handler_int24::m_limits_sint24= Type_limits_sint24(),
Type_handler_int24::m_limits_uint24= Type_limits_uint24(),
Type_handler_long::m_limits_sint32= Type_limits_sint32(),
Type_handler_long::m_limits_uint32= Type_limits_uint32(),
Type_handler_longlong::m_limits_sint64= Type_limits_sint64(),
Type_handler_longlong::m_limits_uint64= Type_limits_uint64();
/***************************************************************************/
const Type_handler *Type_handler_null::type_handler_for_comparison() const
@ -2488,6 +2502,14 @@ uint32 Type_handler_bit::max_display_length(const Item *item) const
return item->max_length;
}
uint32 Type_handler_general_purpose_int::max_display_length(const Item *item)
const
{
return type_limits_int_by_unsigned_flag(item->unsigned_flag)->char_length();
}
/*************************************************************************/
int Type_handler_time_common::Item_save_in_field(Item *item, Field *field,