Skip to content

Commit d67dcb7

Browse files
author
Alexander Barkov
committed
MDEV-15205 Remove mysql_type_to_time_type()
1 parent 28d4cf0 commit d67dcb7

File tree

3 files changed

+10
-43
lines changed

3 files changed

+10
-43
lines changed

sql/field.cc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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(&ltime, 0))
56275626
{
56285627
bzero(&ltime, 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(&ltime, d);
56325631
}

sql/field.h

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -488,37 +488,6 @@ inline enum_field_types real_type_to_type(enum_field_types real_type)
488488
}
489489

490490

491-
static inline enum enum_mysql_timestamp_type
492-
mysql_type_to_time_type(enum enum_field_types mysql_type)
493-
{
494-
switch(mysql_type) {
495-
case MYSQL_TYPE_TIME2:
496-
case MYSQL_TYPE_TIME: return MYSQL_TIMESTAMP_TIME;
497-
case MYSQL_TYPE_TIMESTAMP2:
498-
case MYSQL_TYPE_TIMESTAMP:
499-
case MYSQL_TYPE_DATETIME2:
500-
case MYSQL_TYPE_DATETIME: return MYSQL_TIMESTAMP_DATETIME;
501-
case MYSQL_TYPE_NEWDATE:
502-
case MYSQL_TYPE_DATE: return MYSQL_TIMESTAMP_DATE;
503-
default: return MYSQL_TIMESTAMP_ERROR;
504-
}
505-
}
506-
507-
508-
/**
509-
Tests if field type is temporal, i.e. represents
510-
DATE, TIME, DATETIME or TIMESTAMP types in SQL.
511-
512-
@param type Field type, as returned by field->type().
513-
@retval true If field type is temporal
514-
@retval false If field type is not temporal
515-
*/
516-
inline bool is_temporal_type(enum_field_types type)
517-
{
518-
return mysql_type_to_time_type(type) != MYSQL_TIMESTAMP_ERROR;
519-
}
520-
521-
522491
enum enum_vcol_info_type
523492
{
524493
VCOL_GENERATED_VIRTUAL, VCOL_GENERATED_STORED,

sql/sql_time.cc

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -357,19 +357,19 @@ static bool number_to_time_with_warn(bool neg, ulonglong nr, ulong sec_part,
357357
{
358358
int was_cut;
359359
longlong res;
360-
enum_field_types f_type;
360+
enum_mysql_timestamp_type ts_type;
361361
bool have_warnings;
362362

363363
if (fuzzydate & TIME_TIME_ONLY)
364364
{
365365
fuzzydate= TIME_TIME_ONLY; // clear other flags
366-
f_type= MYSQL_TYPE_TIME;
366+
ts_type= MYSQL_TIMESTAMP_TIME;
367367
res= number_to_time(neg, nr, sec_part, ltime, &was_cut);
368368
have_warnings= MYSQL_TIME_WARN_HAVE_WARNINGS(was_cut);
369369
}
370370
else
371371
{
372-
f_type= MYSQL_TYPE_DATETIME;
372+
ts_type= MYSQL_TIMESTAMP_DATETIME;
373373
if (neg)
374374
{
375375
res= -1;
@@ -385,8 +385,7 @@ static bool number_to_time_with_warn(bool neg, ulonglong nr, ulong sec_part,
385385
{
386386
make_truncated_value_warning(current_thd,
387387
Sql_condition::WARN_LEVEL_WARN, str,
388-
res < 0 ? MYSQL_TIMESTAMP_ERROR
389-
: mysql_type_to_time_type(f_type),
388+
res < 0 ? MYSQL_TIMESTAMP_ERROR : ts_type,
390389
field_name);
391390
}
392391
return res < 0;

0 commit comments

Comments
 (0)