diff options
Diffstat (limited to 'mysql-test/t/union.test')
-rw-r--r-- | mysql-test/t/union.test | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index 9866b867427..d9e19571f81 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -469,12 +469,13 @@ show status like 'Slow_queries'; drop table t1; # -# bug #2508 +# Column 'name' cannot be null (error with union and left join) (bug #2508) # create table t1 ( RID int(11) not null default '0', IID int(11) not null default '0', nada varchar(50) not null,NAME varchar(50) not null,PHONE varchar(50) not null) engine=MyISAM; insert into t1 ( RID,IID,nada,NAME,PHONE) values (1, 1, 'main', 'a', '111'), (2, 1, 'main', 'b', '222'), (3, 1, 'main', 'c', '333'), (4, 1, 'main', 'd', '444'), (5, 1, 'main', 'e', '555'), (6, 2, 'main', 'c', '333'), (7, 2, 'main', 'd', '454'), (8, 2, 'main', 'e', '555'), (9, 2, 'main', 'f', '666'), (10, 2, 'main', 'g', '777'); select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 A left join t1 B on A.NAME = B.NAME and B.IID = 2 where A.IID = 1 and (A.PHONE <> B.PHONE or B.NAME is null) union select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 B left join t1 A on B.NAME = A.NAME and A.IID = 1 where B.IID = 2 and (A.PHONE <> B.PHONE or A.NAME is null); drop table t1; + # # Bug #2809 (UNION fails on MyIsam tables when index on second column from # same table) @@ -487,10 +488,8 @@ select col1 n from t1 union select col2 n from t1 order by n; drop table t1; # -# Bug #1428, incorrect handling of UNION ALL -# NOTE: The current result is wrong, needs to be fixed! +# Incorrect handling of UNION ALL (Bug #1428) # - create table t1 (i int); insert into t1 values (1); select * from t1 UNION select * from t1; @@ -498,4 +497,21 @@ select * from t1 UNION ALL select * from t1; select * from t1 UNION select * from t1 UNION ALL select * from t1; drop table t1; select 1 as a union all select 1 union all select 2 union select 1 union all select 2; +set sql_select_limit=1; +select 1 union select 2; +(select 1) union (select 2); +(select 1) union (select 2) union (select 3) limit 2; +set sql_select_limit=default; +# +# ORDER with LIMIT +# +create table t1 (a int); +insert into t1 values (100), (1); +create table t2 (a int); +insert into t2 values (100); +select a from t1 union select a from t2 order by a; +SET SQL_SELECT_LIMIT=1; +select a from t1 union select a from t2 order by a; +drop table t1, t2; +set sql_select_limit=default; |