Loading mysql-test/r/func_time.result +19 −0 Original line number Diff line number Diff line Loading @@ -732,6 +732,25 @@ 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' select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')), monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m')); monthname(str_to_date(null, '%m')) monthname(str_to_date(null, '%m')) monthname(str_to_date(1, '%m')) monthname(str_to_date(0, '%m')) NULL NULL January NULL explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1, timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2; id select_type table type possible_keys key key_len ref rows Extra Loading mysql-test/t/func_time.test +14 −0 Original line number Diff line number Diff line Loading @@ -352,6 +352,20 @@ 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'); # # Bug #18501: monthname and NULLs # select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')), monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m')); # End of 4.1 tests Loading sql/item_timefunc.cc +2 −2 Original line number Diff line number Diff line Loading @@ -917,9 +917,9 @@ String* Item_func_monthname::val_str(String* str) { DBUG_ASSERT(fixed == 1); const char *month_name; uint month=(uint) Item_func_month::val_int(); uint month= (uint) val_int(); if (!month) // This is also true for NULL if (null_value || !month) { null_value=1; return (String*) 0; Loading Loading
mysql-test/r/func_time.result +19 −0 Original line number Diff line number Diff line Loading @@ -732,6 +732,25 @@ 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' select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')), monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m')); monthname(str_to_date(null, '%m')) monthname(str_to_date(null, '%m')) monthname(str_to_date(1, '%m')) monthname(str_to_date(0, '%m')) NULL NULL January NULL explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1, timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2; id select_type table type possible_keys key key_len ref rows Extra Loading
mysql-test/t/func_time.test +14 −0 Original line number Diff line number Diff line Loading @@ -352,6 +352,20 @@ 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'); # # Bug #18501: monthname and NULLs # select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')), monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m')); # End of 4.1 tests Loading
sql/item_timefunc.cc +2 −2 Original line number Diff line number Diff line Loading @@ -917,9 +917,9 @@ String* Item_func_monthname::val_str(String* str) { DBUG_ASSERT(fixed == 1); const char *month_name; uint month=(uint) Item_func_month::val_int(); uint month= (uint) val_int(); if (!month) // This is also true for NULL if (null_value || !month) { null_value=1; return (String*) 0; Loading