Fix for BUG#9298: Make int->string conversion sign-aware in Protocol_simple::store_long

mysql-test/r/group_by.result:
  Testcase for BUG#9298
mysql-test/t/group_by.test:
  Testcase for BUG#9298
This commit is contained in:
unknown 2005-04-18 07:26:23 +04:00
parent b51f70b81e
commit 11652c1f45
3 changed files with 17 additions and 1 deletions

View file

@ -702,3 +702,12 @@ c
val-74
val-98
drop table t1,t2;
create table t1 (b int4 unsigned not null);
insert into t1 values(3000000000);
select * from t1;
b
3000000000
select min(b) from t1;
min(b)
3000000000
drop table t1;

View file

@ -515,3 +515,10 @@ explain select c from t2 where a = 2 and b = 'val-2' group by c;
select c from t2 where a = 2 and b = 'val-2' group by c;
drop table t1,t2;
# Test for BUG#9298 "Wrong handling of int4 unsigned columns in GROUP functions"
# (the actual problem was with protocol code, not GROUP BY)
create table t1 (b int4 unsigned not null);
insert into t1 values(3000000000);
select * from t1;
select min(b) from t1;
drop table t1;

View file

@ -810,7 +810,7 @@ bool Protocol_simple::store_long(longlong from)
#endif
char buff[20];
return net_store_data((char*) buff,
(uint) (int10_to_str((int) from,buff, -10)-buff));
(uint) (int10_to_str((int)from,buff, (from <0)?-10:10)-buff));
}