Loading mysql-test/r/func_time.result +3 −0 Original line number Diff line number Diff line Loading @@ -815,4 +815,7 @@ union (select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H); H 5 select last_day('0000-00-00'); last_day('0000-00-00') NULL End of 4.1 tests mysql-test/t/func_time.test +6 −0 Original line number Diff line number Diff line Loading @@ -446,4 +446,10 @@ union union (select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H); # # Bug #23653: crash if last_day('0000-00-00') # select last_day('0000-00-00'); --echo End of 4.1 tests sql/item_timefunc.cc +2 −1 Original line number Diff line number Diff line Loading @@ -3058,7 +3058,8 @@ String *Item_func_str_to_date::val_str(String *str) bool Item_func_last_day::get_date(TIME *ltime, uint fuzzy_date) { if (get_arg0_date(ltime, fuzzy_date & ~TIME_FUZZY_DATE)) if (get_arg0_date(ltime, fuzzy_date & ~TIME_FUZZY_DATE) || (ltime->month == 0)) return 1; uint month_idx= ltime->month-1; ltime->day= days_in_month[month_idx]; Loading Loading
mysql-test/r/func_time.result +3 −0 Original line number Diff line number Diff line Loading @@ -815,4 +815,7 @@ union (select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H); H 5 select last_day('0000-00-00'); last_day('0000-00-00') NULL End of 4.1 tests
mysql-test/t/func_time.test +6 −0 Original line number Diff line number Diff line Loading @@ -446,4 +446,10 @@ union union (select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H); # # Bug #23653: crash if last_day('0000-00-00') # select last_day('0000-00-00'); --echo End of 4.1 tests
sql/item_timefunc.cc +2 −1 Original line number Diff line number Diff line Loading @@ -3058,7 +3058,8 @@ String *Item_func_str_to_date::val_str(String *str) bool Item_func_last_day::get_date(TIME *ltime, uint fuzzy_date) { if (get_arg0_date(ltime, fuzzy_date & ~TIME_FUZZY_DATE)) if (get_arg0_date(ltime, fuzzy_date & ~TIME_FUZZY_DATE) || (ltime->month == 0)) return 1; uint month_idx= ltime->month-1; ltime->day= days_in_month[month_idx]; Loading