Loading mysql-test/r/cast.result +11 −0 Original line number Diff line number Diff line Loading @@ -403,4 +403,15 @@ hex(cast('a' as binary(2))) select hex(cast('a' as char(2) binary)); hex(cast('a' as char(2) binary)) 61 CREATE TABLE t1 (d1 datetime); INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL), ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00'); SELECT cast(date(d1) as signed) FROM t1; cast(date(d1) as signed) 20070719 NULL 20070719 NULL 20070719 drop table t1; End of 5.0 tests mysql-test/t/cast.test +9 −0 Original line number Diff line number Diff line Loading @@ -237,4 +237,13 @@ select hex(cast('a' as char(2) binary)); select hex(cast('a' as binary(2))); select hex(cast('a' as char(2) binary)); # # Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag. # CREATE TABLE t1 (d1 datetime); INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL), ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00'); SELECT cast(date(d1) as signed) FROM t1; drop table t1; --echo End of 5.0 tests sql/item_timefunc.cc +1 −4 Original line number Diff line number Diff line Loading @@ -2662,11 +2662,8 @@ longlong Item_date_typecast::val_int() { DBUG_ASSERT(fixed == 1); MYSQL_TIME ltime; if (args[0]->get_date(<ime, TIME_FUZZY_DATE)) { null_value= 1; if ((null_value= args[0]->get_date(<ime, TIME_FUZZY_DATE))) return 0; } return (longlong) (ltime.year * 10000L + ltime.month * 100 + ltime.day); } Loading Loading
mysql-test/r/cast.result +11 −0 Original line number Diff line number Diff line Loading @@ -403,4 +403,15 @@ hex(cast('a' as binary(2))) select hex(cast('a' as char(2) binary)); hex(cast('a' as char(2) binary)) 61 CREATE TABLE t1 (d1 datetime); INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL), ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00'); SELECT cast(date(d1) as signed) FROM t1; cast(date(d1) as signed) 20070719 NULL 20070719 NULL 20070719 drop table t1; End of 5.0 tests
mysql-test/t/cast.test +9 −0 Original line number Diff line number Diff line Loading @@ -237,4 +237,13 @@ select hex(cast('a' as char(2) binary)); select hex(cast('a' as binary(2))); select hex(cast('a' as char(2) binary)); # # Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag. # CREATE TABLE t1 (d1 datetime); INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL), ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00'); SELECT cast(date(d1) as signed) FROM t1; drop table t1; --echo End of 5.0 tests
sql/item_timefunc.cc +1 −4 Original line number Diff line number Diff line Loading @@ -2662,11 +2662,8 @@ longlong Item_date_typecast::val_int() { DBUG_ASSERT(fixed == 1); MYSQL_TIME ltime; if (args[0]->get_date(<ime, TIME_FUZZY_DATE)) { null_value= 1; if ((null_value= args[0]->get_date(<ime, TIME_FUZZY_DATE))) return 0; } return (longlong) (ltime.year * 10000L + ltime.month * 100 + ltime.day); } Loading