backport for #10568: Function 'LAST_DAY(date)' does not return NULL for invalid argument.
This commit is contained in:
parent
66330a9d59
commit
b0e6db14c5
@ -611,3 +611,18 @@ SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAY
|
||||
count(*)
|
||||
3
|
||||
DROP TABLE t1;
|
||||
select last_day('2005-00-00');
|
||||
last_day('2005-00-00')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2005-00-00'
|
||||
select last_day('2005-00-01');
|
||||
last_day('2005-00-01')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2005-00-01'
|
||||
select last_day('2005-01-00');
|
||||
last_day('2005-01-00')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2005-01-00'
|
||||
|
@ -307,3 +307,10 @@ INSERT INTO t1 VALUES (NOW());
|
||||
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #10568
|
||||
#
|
||||
|
||||
select last_day('2005-00-00');
|
||||
select last_day('2005-00-01');
|
||||
select last_day('2005-01-00');
|
||||
|
@ -2817,7 +2817,7 @@ 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))
|
||||
if (get_arg0_date(ltime, fuzzy_date & ~TIME_FUZZY_DATE))
|
||||
return 1;
|
||||
uint month_idx= ltime->month-1;
|
||||
ltime->day= days_in_month[month_idx];
|
||||
|
Loading…
x
Reference in New Issue
Block a user