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;
|
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
|
a a a
|
||||||
drop table t1,t2;
|
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 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;
|
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;
|
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:
|
case REAL_RESULT:
|
||||||
sum= item->sum;
|
sum= item->sum;
|
||||||
break;
|
break;
|
||||||
|
case STRING_RESULT: // This can happen with ROLLUP. Note that the value is already
|
||||||
|
break; // copied at function call.
|
||||||
case ROW_RESULT:
|
case ROW_RESULT:
|
||||||
default:
|
default:
|
||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
|
@ -585,7 +587,10 @@ bool Item_sum_distinct::setup(THD *thd)
|
||||||
|
|
||||||
DBUG_ENTER("Item_sum_distinct::setup");
|
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
|
Virtual table and the tree are created anew on each re-execution of
|
||||||
|
|
Loading…
Add table
Reference in a new issue