@@ -5489,11 +5489,9 @@ void Field_temporal::set_warnings(Sql_condition::enum_warning_level trunc_level,
54895489 a DATE field and non-zero time part is thrown away.
54905490 */
54915491 if (was_cut & MYSQL_TIME_WARN_TRUNCATED)
5492- set_datetime_warning (trunc_level, WARN_DATA_TRUNCATED,
5493- str, mysql_type_to_time_type (type ()), 1 );
5492+ set_datetime_warning (trunc_level, WARN_DATA_TRUNCATED, str, ts_type, 1 );
54945493 if (was_cut & MYSQL_TIME_WARN_OUT_OF_RANGE)
5495- set_datetime_warning (ER_WARN_DATA_OUT_OF_RANGE,
5496- str, mysql_type_to_time_type (type ()), 1 );
5494+ set_datetime_warning (ER_WARN_DATA_OUT_OF_RANGE, str, ts_type, 1 );
54975495}
54985496
54995497
@@ -5529,14 +5527,15 @@ int Field_temporal_with_date::store_TIME_with_warning(MYSQL_TIME *ltime,
55295527 }
55305528 else if (!MYSQL_TIME_WARN_HAVE_WARNINGS (was_cut) &&
55315529 (MYSQL_TIME_WARN_HAVE_NOTES (was_cut) ||
5532- (mysql_type_to_time_type ( type () ) == MYSQL_TIMESTAMP_DATE &&
5530+ (type_handler ()-> mysql_timestamp_type ( ) == MYSQL_TIMESTAMP_DATE &&
55335531 (ltime->hour || ltime->minute || ltime->second || ltime->second_part ))))
55345532 {
55355533 trunc_level= Sql_condition::WARN_LEVEL_NOTE;
55365534 was_cut|= MYSQL_TIME_WARN_TRUNCATED;
55375535 ret= 3 ;
55385536 }
5539- set_warnings (trunc_level, str, was_cut, mysql_type_to_time_type (type ()));
5537+ set_warnings (trunc_level, str, was_cut,
5538+ type_handler ()->mysql_timestamp_type ());
55405539 store_TIME (ltime);
55415540 return was_cut ? ret : 0 ;
55425541}
@@ -5626,7 +5625,7 @@ my_decimal *Field_temporal::val_decimal(my_decimal *d)
56265625 if (get_date (<ime, 0 ))
56275626 {
56285627 bzero (<ime, sizeof (ltime));
5629- ltime.time_type = mysql_type_to_time_type ( type () );
5628+ ltime.time_type = type_handler ()-> mysql_timestamp_type ( );
56305629 }
56315630 return TIME_to_my_decimal (<ime, d);
56325631}
0 commit comments