Loading mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -4322,4 +4322,10 @@ c3 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1 (c1 BIGINT NOT NULL); INSERT INTO t1 (c1) VALUES (1); SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; End of 5.0 tests mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -3661,4 +3661,15 @@ DROP TABLE t2; ########################################################################### # # Bug #32335: Error on BIGINT > NULL + 1 # CREATE TABLE t1 (c1 BIGINT NOT NULL); INSERT INTO t1 (c1) VALUES (1); SELECT * FROM t1 WHERE c1 > NULL + 1; DROP TABLE t1; --echo --echo End of 5.0 tests sql/item_cmpfunc.cc +2 −1 Original line number Diff line number Diff line Loading @@ -350,11 +350,12 @@ static bool convert_constant_item(THD *thd, Field *field, Item **item) thd->variables.sql_mode= (orig_sql_mode & ~MODE_NO_ZERO_DATE) | MODE_INVALID_DATES; thd->count_cuted_fields= CHECK_FIELD_IGNORE; if (!(*item)->save_in_field(field, 1) && !((*item)->null_value)) if (!(*item)->is_null() && !(*item)->save_in_field(field, 1)) { Item *tmp=new Item_int_with_ref(field->val_int(), *item, test(field->flags & UNSIGNED_FLAG)); thd->variables.sql_mode= orig_sql_mode; thd->count_cuted_fields= orig_count_cuted_fields; if (tmp) thd->change_item_tree(item, tmp); return 1; // Item was replaced Loading Loading
mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -4322,4 +4322,10 @@ c3 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1 (c1 BIGINT NOT NULL); INSERT INTO t1 (c1) VALUES (1); SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; End of 5.0 tests
mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -3661,4 +3661,15 @@ DROP TABLE t2; ########################################################################### # # Bug #32335: Error on BIGINT > NULL + 1 # CREATE TABLE t1 (c1 BIGINT NOT NULL); INSERT INTO t1 (c1) VALUES (1); SELECT * FROM t1 WHERE c1 > NULL + 1; DROP TABLE t1; --echo --echo End of 5.0 tests
sql/item_cmpfunc.cc +2 −1 Original line number Diff line number Diff line Loading @@ -350,11 +350,12 @@ static bool convert_constant_item(THD *thd, Field *field, Item **item) thd->variables.sql_mode= (orig_sql_mode & ~MODE_NO_ZERO_DATE) | MODE_INVALID_DATES; thd->count_cuted_fields= CHECK_FIELD_IGNORE; if (!(*item)->save_in_field(field, 1) && !((*item)->null_value)) if (!(*item)->is_null() && !(*item)->save_in_field(field, 1)) { Item *tmp=new Item_int_with_ref(field->val_int(), *item, test(field->flags & UNSIGNED_FLAG)); thd->variables.sql_mode= orig_sql_mode; thd->count_cuted_fields= orig_count_cuted_fields; if (tmp) thd->change_item_tree(item, tmp); return 1; // Item was replaced Loading