@@ -5545,11 +5545,9 @@ void Field_temporal::set_warnings(Sql_condition::enum_warning_level trunc_level,
55455545 a DATE field and non-zero time part is thrown away.
55465546 */
55475547 if (was_cut & MYSQL_TIME_WARN_TRUNCATED)
5548- set_datetime_warning (trunc_level, WARN_DATA_TRUNCATED,
5549- str, mysql_type_to_time_type (type ()), 1 );
5548+ set_datetime_warning (trunc_level, WARN_DATA_TRUNCATED, str, ts_type, 1 );
55505549 if (was_cut & MYSQL_TIME_WARN_OUT_OF_RANGE)
5551- set_datetime_warning (ER_WARN_DATA_OUT_OF_RANGE,
5552- str, mysql_type_to_time_type (type ()), 1 );
5550+ set_datetime_warning (ER_WARN_DATA_OUT_OF_RANGE, str, ts_type, 1 );
55535551}
55545552
55555553
@@ -5585,14 +5583,15 @@ int Field_temporal_with_date::store_TIME_with_warning(MYSQL_TIME *ltime,
55855583 }
55865584 else if (!MYSQL_TIME_WARN_HAVE_WARNINGS (was_cut) &&
55875585 (MYSQL_TIME_WARN_HAVE_NOTES (was_cut) ||
5588- (mysql_type_to_time_type ( type () ) == MYSQL_TIMESTAMP_DATE &&
5586+ (type_handler ()-> mysql_timestamp_type ( ) == MYSQL_TIMESTAMP_DATE &&
55895587 (ltime->hour || ltime->minute || ltime->second || ltime->second_part ))))
55905588 {
55915589 trunc_level= Sql_condition::WARN_LEVEL_NOTE;
55925590 was_cut|= MYSQL_TIME_WARN_TRUNCATED;
55935591 ret= 3 ;
55945592 }
5595- set_warnings (trunc_level, str, was_cut, mysql_type_to_time_type (type ()));
5593+ set_warnings (trunc_level, str, was_cut,
5594+ type_handler ()->mysql_timestamp_type ());
55965595 store_TIME (ltime);
55975596 return was_cut ? ret : 0 ;
55985597}
@@ -5682,7 +5681,7 @@ my_decimal *Field_temporal::val_decimal(my_decimal *d)
56825681 if (get_date (<ime, 0 ))
56835682 {
56845683 bzero (<ime, sizeof (ltime));
5685- ltime.time_type = mysql_type_to_time_type ( type () );
5684+ ltime.time_type = type_handler ()-> mysql_timestamp_type ( );
56865685 }
56875686 return TIME_to_my_decimal (<ime, d);
56885687}
0 commit comments