Loading mysql-test/r/subselect.result +7 −0 Original line number Diff line number Diff line Loading @@ -4374,4 +4374,11 @@ a4 f3 a6 1 NULL NULL 2 NULL NULL DROP TABLE t1, t2, t3, t4; create table t1 (a float(5,4) zerofill); create table t2 (a float(5,4),b float(2,0)); select t1.a from t1 where t1.a= (select b from t2 limit 1) and not t1.a= (select a from t2 limit 1) ; a drop table t1; End of 5.0 tests. mysql-test/t/subselect.test +12 −0 Original line number Diff line number Diff line Loading @@ -3259,5 +3259,17 @@ GROUP BY a4; DROP TABLE t1, t2, t3, t4; # # BUG#36139 "float, zerofill, crash with subquery" # create table t1 (a float(5,4) zerofill); create table t2 (a float(5,4),b float(2,0)); select t1.a from t1 where t1.a= (select b from t2 limit 1) and not t1.a= (select a from t2 limit 1) ; drop table t1; --echo End of 5.0 tests. sql/item.cc +8 −3 Original line number Diff line number Diff line Loading @@ -4156,10 +4156,15 @@ static void convert_zerofill_number_to_string(Item **item, Field_num *field) String tmp(buff,sizeof(buff), field->charset()), *res; res= (*item)->val_str(&tmp); if ((*item)->is_null()) *item= new Item_null(); else { field->prepend_zeros(res); pos= (char *) sql_strmake (res->ptr(), res->length()); *item= new Item_string(pos, res->length(), field->charset()); } } /* Loading Loading
mysql-test/r/subselect.result +7 −0 Original line number Diff line number Diff line Loading @@ -4374,4 +4374,11 @@ a4 f3 a6 1 NULL NULL 2 NULL NULL DROP TABLE t1, t2, t3, t4; create table t1 (a float(5,4) zerofill); create table t2 (a float(5,4),b float(2,0)); select t1.a from t1 where t1.a= (select b from t2 limit 1) and not t1.a= (select a from t2 limit 1) ; a drop table t1; End of 5.0 tests.
mysql-test/t/subselect.test +12 −0 Original line number Diff line number Diff line Loading @@ -3259,5 +3259,17 @@ GROUP BY a4; DROP TABLE t1, t2, t3, t4; # # BUG#36139 "float, zerofill, crash with subquery" # create table t1 (a float(5,4) zerofill); create table t2 (a float(5,4),b float(2,0)); select t1.a from t1 where t1.a= (select b from t2 limit 1) and not t1.a= (select a from t2 limit 1) ; drop table t1; --echo End of 5.0 tests.
sql/item.cc +8 −3 Original line number Diff line number Diff line Loading @@ -4156,10 +4156,15 @@ static void convert_zerofill_number_to_string(Item **item, Field_num *field) String tmp(buff,sizeof(buff), field->charset()), *res; res= (*item)->val_str(&tmp); if ((*item)->is_null()) *item= new Item_null(); else { field->prepend_zeros(res); pos= (char *) sql_strmake (res->ptr(), res->length()); *item= new Item_string(pos, res->length(), field->charset()); } } /* Loading