mariadb/mysql-test/t/union.test
unknown 669cbe6e5f Portability fixes
Don't define crc32 if we are not linking with gzip


cmd-line-utils/libedit/libedit_term.h:
  Rename: cmd-line-utils/libedit/term.h -> cmd-line-utils/libedit/libedit_term.h
BitKeeper/etc/ignore:
  added scripts/make_win_src_distribution
client/connect_test.c:
  Removed wrong include file
  (my_global.h should never be included by an external client)
client/insert_test.c:
  Removed wrong include file
  (my_global.h should never be included by an external client)
client/select_test.c:
  Removed wrong include file
  (my_global.h should never be included by an external client)
cmd-line-utils/libedit/Makefile.am:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/el.h:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/key.h:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/makelist:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/read.c:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/readline.c:
  Portability fixes (for HPUX11 and AIX)
cmd-line-utils/libedit/readline/readline.h:
  Systems that has sys/cdefs may not have __BEGIN_DECLS
cmd-line-utils/libedit/sig.c:
  sig_t is not portable
cmd-line-utils/libedit/sig.h:
  sig_t is not portable
cmd-line-utils/libedit/term.c:
  Portablity fixes
  Fixed core dump when using a terminal without arrow key definitions
heap/_check.c:
  Portability fix
heap/hp_hash.c:
  Portability fix
heap/hp_rkey.c:
  Portability fix
include/my_global.h:
  Portability fixes for HPUX11
libmysql/libmysql.c:
  Removed wrong cast
mysql-test/r/union.result:
  New union tests
mysql-test/t/union.test:
  New union tests
sql/gen_lex_hash.cc:
  Fixed portability bug.
sql/gstream.h:
  Portablity fix
sql/item_create.cc:
  Don't define crc32 if we are not linking with gzip
sql/item_create.h:
  Don't define crc32 if we are not linking with gzip
sql/item_func.cc:
  Don't define crc32 if we are not linking with gzip
sql/item_func.h:
  Don't define crc32 if we are not linking with gzip
sql/lex.h:
  Don't define crc32 if we are not linking with gzip
sql/sql_show.cc:
  Name can't be NULL
2003-02-27 03:44:44 +02:00

143 lines
5.7 KiB
Text

#
# Test of unions
#
--disable_warnings
drop table if exists t1,t2,t3;
--enable_warnings
CREATE TABLE t1 (a int not null, b char (10) not null);
insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');
CREATE TABLE t2 (a int not null, b char (10) not null);
insert into t2 values (3,'c'),(4,'d'),(5,'f'),(6,'e');
select a,b from t1 union select a,b from t2;
select a,b from t1 union all select a,b from t2;
select a,b from t1 union all select a,b from t2 order by b;
select a,b from t1 union all select a,b from t2 union select 7,'g';
select 0,'#' union select a,b from t1 union all select a,b from t2 union select 7,'gg';
select a,b from t1 union select a,b from t1;
select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 group by b;
#test alternate syntax for unions
(select a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 4;
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1);
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
--error 1248
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b;
explain (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
#(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
select found_rows();
#
# Test some error conditions with UNION
#
explain select a,b from t1 union all select a,b from t2;
--error 1054
explain select xx from t1 union select 1;
explain select a,b from t1 union select 1;
explain select 1 union select a,b from t1 union select 1;
explain select a,b from t1 union select 1 limit 0;
--error 1221
select a,b from t1 into outfile 'skr' union select a,b from t2;
--error 1221
select a,b from t1 order by a union select a,b from t2;
--error 1221
insert into t3 select a from t1 order by a union select a from t2;
--error 1222
create table t3 select a,b from t1 union select a from t2;
--error 1222
select a,b from t1 union select a from t2;
--error 1222
select * from t1 union select a from t2;
--error 1222
select a from t1 union select * from t2;
--error 1234
select * from t1 union select SQL_BUFFER_RESULT * from t2;
# Test CREATE, INSERT and REPLACE
create table t3 select a,b from t1 union all select a,b from t2;
insert into t3 select a,b from t1 union all select a,b from t2;
replace into t3 select a,b as c from t1 union all select a,b from t2;
drop table t1,t2,t3;
#
# Test bug reported by joc@presence-pc.com
#
CREATE TABLE t1 (
`pseudo` char(35) NOT NULL default '',
`pseudo1` char(35) NOT NULL default '',
`same` tinyint(1) unsigned NOT NULL default '1',
PRIMARY KEY (`pseudo1`),
KEY `pseudo` (`pseudo`)
) TYPE=MyISAM;
INSERT INTO t1 (pseudo,pseudo1,same) VALUES ('joce', 'testtt', 1),('joce', 'tsestset', 1),('dekad', 'joce', 1);
SELECT pseudo FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo FROM t1 WHERE pseudo='joce';
SELECT pseudo1 FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo1 FROM t1 WHERE pseudo='joce';
SELECT * FROM t1 WHERE pseudo1='joce' UNION SELECT * FROM t1 WHERE pseudo='joce' order by pseudo desc,pseudo1 desc;
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT pseudo FROM t1 WHERE pseudo1='joce';
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION ALL SELECT pseudo FROM t1 WHERE pseudo1='joce';
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT 1;
drop table t1;
create table t1 (a int);
create table t2 (a int);
insert into t1 values (1),(2),(3),(4),(5);
insert into t2 values (11),(12),(13),(14),(15);
(select * from t1 limit 2) union (select * from t2 limit 3) limit 4;
(select * from t1 limit 2) union (select * from t2 limit 3);
(select * from t1 limit 2) union (select * from t2 limit 20,3);
set SQL_SELECT_LIMIT=2;
(select * from t1 limit 1) union (select * from t2 limit 3);
set SQL_SELECT_LIMIT=DEFAULT;
drop table t1,t2;
--error 1096
select * union select 1;
select 1 as a,(select a union select a);
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
CREATE TABLE t1 ( id int(3) unsigned default '0') TYPE=MyISAM;
INSERT INTO t1 (id) VALUES("1");
CREATE TABLE t2 ( id int(3) unsigned default '0', id_master int(5) default '0', text1 varchar(5) default NULL, text2 varchar(5) default NULL) TYPE=MyISAM;
INSERT INTO t2 (id, id_master, text1, text2) VALUES("1", "1",
"foo1", "bar1");
INSERT INTO t2 (id, id_master, text1, text2) VALUES("2", "1",
"foo2", "bar2");
INSERT INTO t2 (id, id_master, text1, text2) VALUES("3", "1", NULL,
"bar3");
INSERT INTO t2 (id, id_master, text1, text2) VALUES("4", "1",
"foo4", "bar4");
SELECT 1 AS id_master, 1 AS id, NULL AS text1, 'ABCDE' AS text2 UNION SELECT id_master, t2.id, text1, text2 FROM t1 LEFT JOIN t2 ON t1.id = t2.id_master;
SELECT 1 AS id_master, 1 AS id, 'ABCDE' AS text1, 'ABCDE' AS text2 UNION SELECT id_master, t2.id, text1, text2 FROM t1 LEFT JOIN t2 ON t1.id = t2.id_master;
drop table if exists t1,t2;
#
# Test of bug when using the same table multiple times
#
create table t1 (a int not null primary key auto_increment, b int, key(b));
create table t2 (a int not null primary key auto_increment, b int);
insert into t1 (b) values (1),(2),(2),(3);
insert into t2 (b) values (10),(11),(12),(13);
explain (select * from t1 where a=1) union (select * from t2 where a=1);
(select * from t1 where a=5) union (select * from t2 where a=1);
(select * from t1 where a=5 and a=6) union (select * from t2 where a=1);
(select t1.a,t1.b from t1,t2 where t1.a=5) union (select * from t2 where a=1);
(select * from t1 where a=1) union (select t1.a,t2.a from t1,t2 where t1.a=t2.a);
explain (select * from t1 where a=1 and b=10) union (select t1.a,t2.a from t1,t2 where t1.a=t2.a);
explain (select * from t1 where a=1) union (select * from t1 where b=1);
drop table t1,t2;