Commit df93a38d authored by unknown's avatar unknown
Browse files

Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0

into hundin.mysql.fi:/home/marko/mysql-5.0

parents 45c72a56 01c3fb8e
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -832,6 +832,30 @@ id stddev_pop(value1) var_pop(value1) stddev_samp(value1) var_samp(value1)
1	0.816497	0.666667	1.000000	1.000000
2	1.118034	1.250000	1.290994	1.666667
DROP TABLE t1;
CREATE TABLE t1 (col1 decimal(16,12));
INSERT INTO t1 VALUES (-5.00000000001),(-5.00000000002),(-5.00000000003),(-5.00000000000),(-5.00000000001),(-5.00000000002);
insert into t1 select * from t1;
select col1,count(col1),sum(col1),avg(col1) from t1 group by col1;
col1	count(col1)	sum(col1)	avg(col1)
-5.000000000030	2	-10.000000000060	-5.0000000000300000
-5.000000000020	4	-20.000000000080	-5.0000000000200000
-5.000000000010	4	-20.000000000040	-5.0000000000100000
-5.000000000000	2	-10.000000000000	-5.0000000000000000
DROP TABLE t1;
create table t1 (col1 decimal(16,12));
insert into t1 values (-5.00000000001);
insert into t1 values (-5.00000000001);
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
col1	sum(col1)	max(col1)	min(col1)
-5.000000000010	-10.000000000020	-5.000000000010	-5.000000000010
delete from t1;
insert into t1 values (5.00000000001);
insert into t1 values (5.00000000001);
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
col1	sum(col1)	max(col1)	min(col1)
5.000000000010	10.000000000020	5.000000000010	5.000000000010
DROP TABLE t1;

CREATE TABLE t1(
id int PRIMARY KEY,
a  int,
+25 −0
Original line number Diff line number Diff line
@@ -537,6 +537,31 @@ CREATE TABLE t1 (id int(11),value1 float(10,2));
INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00), (2,13.00);
select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id;
DROP TABLE t1;

#
# BUG#8464 decimal AVG returns incorrect result
#

CREATE TABLE t1 (col1 decimal(16,12));
INSERT INTO t1 VALUES (-5.00000000001),(-5.00000000002),(-5.00000000003),(-5.00000000000),(-5.00000000001),(-5.00000000002);
insert into t1 select * from t1;
select col1,count(col1),sum(col1),avg(col1) from t1 group by col1;
DROP TABLE t1;

#
# BUG#8465 decimal MIN and MAX return incorrect result
#

create table t1 (col1 decimal(16,12));
insert into t1 values (-5.00000000001);
insert into t1 values (-5.00000000001);
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
delete from t1;
insert into t1 values (5.00000000001);
insert into t1 values (5.00000000001);
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
DROP TABLE t1;

#
# Bug 8893: wrong result for min/max optimization with 2 indexes
#
+3 −0
Original line number Diff line number Diff line
@@ -1199,7 +1199,10 @@ int decimal2bin(decimal *from, char *to, int precision, int frac)
  else if (fsize0 > fsize1 && frac1x)
  {
    if (frac0 == frac1)
    {
      frac1x=frac0x;
      fsize0= fsize1;
    }
    else
    {
      frac1++;