summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 8858837188d..2ff93b5538a 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -2943,11 +2943,6 @@ bool Item_func_min_max::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
}
unpack_time(min_max, ltime);
- if (!(fuzzy_date & TIME_TIME_ONLY) &&
- ((null_value= check_date_with_warn(ltime, fuzzy_date,
- MYSQL_TIMESTAMP_ERROR))))
- return true;
-
if (compare_as_dates->field_type() == MYSQL_TYPE_DATE)
{
ltime->time_type= MYSQL_TIMESTAMP_DATE;
@@ -2958,8 +2953,15 @@ bool Item_func_min_max::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
ltime->time_type= MYSQL_TIMESTAMP_TIME;
ltime->hour+= (ltime->month * 32 + ltime->day) * 24;
ltime->month= ltime->day= 0;
+ if (adjust_time_range_with_warn(ltime,
+ std::min<uint>(decimals, TIME_SECOND_PART_DIGITS)))
+ return (null_value= true);
}
+ if (!(fuzzy_date & TIME_TIME_ONLY) &&
+ ((null_value= check_date_with_warn(ltime, fuzzy_date,
+ MYSQL_TIMESTAMP_ERROR))))
+ return true;
return (null_value= 0);
}