mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
Fixed bugs 9820, 9799 and 9800.
mysql-test/r/select.result: Added test cases for bugs 9799, 9800 and 9820 mysql-test/t/select.test: Added test cases for bugs 9799, 9800 and 9820
This commit is contained in:
parent
f1def25a89
commit
1586eea573
3 changed files with 54 additions and 1 deletions
|
@ -2455,3 +2455,24 @@ a
|
|||
select x.a, y.a, z.a from ( (t1 x inner join t2 y on x.a=y.a) inner join t2 z on y.a=z.a) WHERE x.a=1;
|
||||
a a a
|
||||
drop table t1,t2;
|
||||
create table t1 (s1 varchar(5));
|
||||
insert into t1 values ('Wall');
|
||||
select min(s1) from t1 group by s1 with rollup;
|
||||
min(s1)
|
||||
Wall
|
||||
Wall
|
||||
drop table t1;
|
||||
create table t1 (s1 int) engine=myisam;
|
||||
insert into t1 values (0);
|
||||
select avg(distinct s1) from t1 group by s1 with rollup;
|
||||
avg(distinct s1)
|
||||
0.0000
|
||||
0.0000
|
||||
drop table t1;
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (null),(1);
|
||||
select distinct avg(s1) as x from t1 group by s1 with rollup;
|
||||
x
|
||||
NULL
|
||||
1.0000
|
||||
drop table t1;
|
||||
|
|
|
@ -2029,3 +2029,30 @@ select t1.a from (t1 inner join t2 on t1.a=t2.a) where t2.a=1;
|
|||
select t1.a from ((t1 inner join t2 on t1.a=t2.a)) where t2.a=1;
|
||||
select x.a, y.a, z.a from ( (t1 x inner join t2 y on x.a=y.a) inner join t2 z on y.a=z.a) WHERE x.a=1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug#9820
|
||||
#
|
||||
|
||||
create table t1 (s1 varchar(5));
|
||||
insert into t1 values ('Wall');
|
||||
select min(s1) from t1 group by s1 with rollup;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#9799
|
||||
#
|
||||
|
||||
create table t1 (s1 int) engine=myisam;
|
||||
insert into t1 values (0);
|
||||
select avg(distinct s1) from t1 group by s1 with rollup;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#9800
|
||||
#
|
||||
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (null),(1);
|
||||
select distinct avg(s1) as x from t1 group by s1 with rollup;
|
||||
drop table t1;
|
||||
|
|
|
@ -240,6 +240,8 @@ Item_sum_hybrid::Item_sum_hybrid(THD *thd, Item_sum_hybrid *item)
|
|||
case REAL_RESULT:
|
||||
sum= item->sum;
|
||||
break;
|
||||
case STRING_RESULT: // This can happen with ROLLUP. Note that the value is already
|
||||
break; // copied at function call.
|
||||
case ROW_RESULT:
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
|
@ -585,7 +587,10 @@ bool Item_sum_distinct::setup(THD *thd)
|
|||
|
||||
DBUG_ENTER("Item_sum_distinct::setup");
|
||||
|
||||
DBUG_ASSERT(tree == 0); /* setup can not be called twice */
|
||||
/*
|
||||
Setup can be called twice for ROLLUP items. This is a bug.
|
||||
Please add DBUG_ASSERT(tree == 0) here when it's fixed.
|
||||
*/
|
||||
|
||||
/*
|
||||
Virtual table and the tree are created anew on each re-execution of
|
||||
|
|
Loading…
Add table
Reference in a new issue