mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-17098 DATE -> DATETIME replication conversion not working, even in ALL_NON_LOSSY mode
Opened up MYSQL_TYPE _DATETIME{,2} <-> _NEWDATE conversions for replication.
This commit is contained in:
@ -765,14 +765,44 @@ can_convert_field_to(Field *field,
|
||||
case MYSQL_TYPE_TIME:
|
||||
case MYSQL_TYPE_DATETIME:
|
||||
case MYSQL_TYPE_YEAR:
|
||||
case MYSQL_TYPE_NEWDATE:
|
||||
case MYSQL_TYPE_NULL:
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
case MYSQL_TYPE_TIMESTAMP2:
|
||||
case MYSQL_TYPE_DATETIME2:
|
||||
case MYSQL_TYPE_TIME2:
|
||||
DBUG_RETURN(false);
|
||||
case MYSQL_TYPE_NEWDATE:
|
||||
{
|
||||
if (field->real_type() == MYSQL_TYPE_DATETIME2 ||
|
||||
field->real_type() == MYSQL_TYPE_DATETIME)
|
||||
{
|
||||
*order_var= -1;
|
||||
DBUG_RETURN(is_conversion_ok(*order_var, rli));
|
||||
}
|
||||
else
|
||||
{
|
||||
DBUG_RETURN(false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
//case MYSQL_TYPE_DATETIME: TODO: fix MDEV-17394 and uncomment.
|
||||
//
|
||||
//The "old" type does not specify the fraction part size which is required
|
||||
//for correct conversion.
|
||||
case MYSQL_TYPE_DATETIME2:
|
||||
{
|
||||
if (field->real_type() == MYSQL_TYPE_NEWDATE)
|
||||
{
|
||||
*order_var= 1;
|
||||
DBUG_RETURN(is_conversion_ok(*order_var, rli));
|
||||
}
|
||||
else
|
||||
{
|
||||
DBUG_RETURN(false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
DBUG_RETURN(false); // To keep GCC happy
|
||||
}
|
||||
|
Reference in New Issue
Block a user