Loading mysql-test/r/type_date.result +5 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,11 @@ INSERT INTO t1 VALUES ('1000-00-00'); ERROR 22007: Incorrect date value: '1000-00-00' for column 'a' at row 1 SET SQL_MODE=DEFAULT; DROP TABLE t1,t2; CREATE TABLE t1 SELECT curdate() AS f1; SELECT hour(f1), minute(f1), second(f1) FROM t1; hour(f1) minute(f1) second(f1) 0 0 0 DROP TABLE t1; End of 5.0 tests create table t1 (a date, primary key (a))engine=memory; insert into t1 values ('0000-01-01'), ('0000-00-01'), ('0001-01-01'); Loading mysql-test/t/type_date.test +8 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,14 @@ INSERT INTO t1 VALUES ('1000-00-00'); SET SQL_MODE=DEFAULT; DROP TABLE t1,t2; # # Bug #31990: MINUTE() and SECOND() return bogus results when used on a DATE # CREATE TABLE t1 SELECT curdate() AS f1; SELECT hour(f1), minute(f1), second(f1) FROM t1; DROP TABLE t1; --echo End of 5.0 tests # Loading sql/field.cc +7 −0 Original line number Diff line number Diff line Loading @@ -5636,6 +5636,13 @@ String *Field_date::val_str(String *val_buffer, } bool Field_date::get_time(MYSQL_TIME *ltime) { bzero((char *)ltime, sizeof(MYSQL_TIME)); return 0; } int Field_date::cmp(const uchar *a_ptr, const uchar *b_ptr) { int32 a,b; Loading sql/field.h +1 −0 Original line number Diff line number Diff line Loading @@ -1240,6 +1240,7 @@ class Field_date :public Field_str { double val_real(void); longlong val_int(void); String *val_str(String*,String *); bool get_time(MYSQL_TIME *ltime); bool send_binary(Protocol *protocol); int cmp(const uchar *,const uchar *); void sort_string(uchar *buff,uint length); Loading Loading
mysql-test/r/type_date.result +5 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,11 @@ INSERT INTO t1 VALUES ('1000-00-00'); ERROR 22007: Incorrect date value: '1000-00-00' for column 'a' at row 1 SET SQL_MODE=DEFAULT; DROP TABLE t1,t2; CREATE TABLE t1 SELECT curdate() AS f1; SELECT hour(f1), minute(f1), second(f1) FROM t1; hour(f1) minute(f1) second(f1) 0 0 0 DROP TABLE t1; End of 5.0 tests create table t1 (a date, primary key (a))engine=memory; insert into t1 values ('0000-01-01'), ('0000-00-01'), ('0001-01-01'); Loading
mysql-test/t/type_date.test +8 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,14 @@ INSERT INTO t1 VALUES ('1000-00-00'); SET SQL_MODE=DEFAULT; DROP TABLE t1,t2; # # Bug #31990: MINUTE() and SECOND() return bogus results when used on a DATE # CREATE TABLE t1 SELECT curdate() AS f1; SELECT hour(f1), minute(f1), second(f1) FROM t1; DROP TABLE t1; --echo End of 5.0 tests # Loading
sql/field.cc +7 −0 Original line number Diff line number Diff line Loading @@ -5636,6 +5636,13 @@ String *Field_date::val_str(String *val_buffer, } bool Field_date::get_time(MYSQL_TIME *ltime) { bzero((char *)ltime, sizeof(MYSQL_TIME)); return 0; } int Field_date::cmp(const uchar *a_ptr, const uchar *b_ptr) { int32 a,b; Loading
sql/field.h +1 −0 Original line number Diff line number Diff line Loading @@ -1240,6 +1240,7 @@ class Field_date :public Field_str { double val_real(void); longlong val_int(void); String *val_str(String*,String *); bool get_time(MYSQL_TIME *ltime); bool send_binary(Protocol *protocol); int cmp(const uchar *,const uchar *); void sort_string(uchar *buff,uint length); Loading