diff options
author | unknown <ndbdev@dl145c.mysql.com> | 2005-05-23 10:45:48 +0200 |
---|---|---|
committer | unknown <ndbdev@dl145c.mysql.com> | 2005-05-23 10:45:48 +0200 |
commit | 8128e3e417e15489f61ad783182d7affc579330a (patch) | |
tree | 3ddbb7a46932f6419027b1a071af6b7cbcdf4c94 /mysql-test/t | |
parent | a1e3d7ef83c6d14a2acfc0f7c9022e39354cccba (diff) | |
parent | 982bd00d481333c44e6aee59fc667f8de155a612 (diff) | |
download | mariadb-git-8128e3e417e15489f61ad783182d7affc579330a.tar.gz |
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into dl145c.mysql.com:/home/ndbdev/tomas/mysql-5.1
sql/ha_innodb.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/myisam/rt_split.c:
Auto merged
storage/myisam/sp_key.c:
Auto merged
storage/ndb/src/kernel/SimBlockList.cpp:
Auto merged
storage/ndb/src/ndbapi/Ndb.cpp:
Auto merged
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/information_schema_inno.test | 8 | ||||
-rw-r--r-- | mysql-test/t/join_outer.test | 23 | ||||
-rw-r--r-- | mysql-test/t/range.test | 40 | ||||
-rw-r--r-- | mysql-test/t/reserved_win_names-master.opt | 1 | ||||
-rw-r--r-- | mysql-test/t/reserved_win_names.test | 12 | ||||
-rw-r--r-- | mysql-test/t/sp-error.test | 12 | ||||
-rw-r--r-- | mysql-test/t/subselect.test | 17 |
7 files changed, 110 insertions, 3 deletions
diff --git a/mysql-test/t/information_schema_inno.test b/mysql-test/t/information_schema_inno.test index af8bd9f98b8..dd7015bfd9a 100644 --- a/mysql-test/t/information_schema_inno.test +++ b/mysql-test/t/information_schema_inno.test @@ -8,12 +8,16 @@ DROP TABLE IF EXISTS t1,t2; # CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; -CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), +CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id, id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; + +CREATE TABLE t3 (id INT PRIMARY KEY, t2_id INT, INDEX par_ind (t2_id), +FOREIGN KEY (id, t2_id) REFERENCES t2(t1_id, id) ON DELETE CASCADE) ENGINE=INNODB; + select * from information_schema.TABLE_CONSTRAINTS where TABLE_SCHEMA= "test"; select * from information_schema.KEY_COLUMN_USAGE where TABLE_SCHEMA= "test"; -drop table t2, t1; +drop table t3, t2, t1; diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test index 3a34c204905..670e7433926 100644 --- a/mysql-test/t/join_outer.test +++ b/mysql-test/t/join_outer.test @@ -676,3 +676,26 @@ left join t3 on t1.art = t3.id where t2.id =1 and t2.x = -5 and t2.y =-8 and t1.gid =1 and t2.gid =1 and t3.set_id =1; drop tables t1,t2,t3; +# +# Test for bug #9938: invalid conversion from outer join to inner join +# for queries containing indirect reference in WHERE clause +# + +CREATE TABLE t1 (EMPNUM INT, GRP INT); +INSERT INTO t1 VALUES (0, 10); +INSERT INTO t1 VALUES (2, 30); + +CREATE TABLE t2 (EMPNUM INT, NAME CHAR(5)); +INSERT INTO t2 VALUES (0, 'KERI'); +INSERT INTO t2 VALUES (9, 'BARRY'); + +CREATE VIEW v1 AS +SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS EMPNUM, NAME, GRP + FROM t2 LEFT OUTER JOIN t1 ON t2.EMPNUM=t1.EMPNUM; + +SELECT * FROM v1; +SELECT * FROM v1 WHERE EMPNUM < 10; + +DROP TABLE t1,t2; + + diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 12759d9edb5..a5822602b82 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -455,3 +455,43 @@ SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 1' OR ARG1 != ' 2'); SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 2' OR ARG1 != ' 1'); drop table t1; +# +# Test for optimization request #10561: to use keys for +# NOT IN (c1,...,cn) and NOT BETWEEN c1 AND c2 +# + +CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + status varchar(20), + PRIMARY KEY (id), + KEY (status) +); + +INSERT INTO t1 VALUES +(1,'B'), (2,'B'), (3,'B'), (4,'B'), (5,'B'), (6,'B'), +(7,'B'), (8,'B'), (9,'B'), (10,'B'), (11,'B'), (12,'B'), +(13,'B'), (14,'B'), (15,'B'), (16,'B'), (17,'B'), (18,'B'), +(19,'B'), (20,'B'), (21,'B'), (22,'B'), (23,'B'), (24,'B'), +(25,'A'), (26,'A'), (27,'A'), (28,'A'), (29,'A'), (30,'A'), +(31,'A'), (32,'A'), (33,'A'), (34,'A'), (35,'A'), (36,'A'), +(37,'A'), (38,'A'), (39,'A'), (40,'A'), (41,'A'), (42,'A'), +(43,'A'), (44,'A'), (45,'A'), (46,'A'), (47,'A'), (48,'A'), +(49,'A'), (50,'A'), (51,'A'), (52,'A'), (53,'C'), (54,'C'), +(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C'); + +EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B'; +EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B'); + +SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B'; +SELECT * FROM t1 WHERE status NOT IN ('A','B'); + +EXPLAIN SELECT status FROM t1 WHERE status <> 'A' AND status <> 'B'; +EXPLAIN SELECT status FROM t1 WHERE status NOT IN ('A','B'); + +EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B'; +EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B'; + +SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B'; +SELECT * FROM t1 WHERE status < 'A' OR status > 'B'; + +DROP TABLE t1; diff --git a/mysql-test/t/reserved_win_names-master.opt b/mysql-test/t/reserved_win_names-master.opt new file mode 100644 index 00000000000..62ab6dad1e0 --- /dev/null +++ b/mysql-test/t/reserved_win_names-master.opt @@ -0,0 +1 @@ +--lower_case_table_names=1 diff --git a/mysql-test/t/reserved_win_names.test b/mysql-test/t/reserved_win_names.test new file mode 100644 index 00000000000..d9b23935ddf --- /dev/null +++ b/mysql-test/t/reserved_win_names.test @@ -0,0 +1,12 @@ +# +# Test of reserved Windows names +# +--require r/reserved_win_names.require + +--error 1049 +use COM1; +--error 1049 +use LPT1; +--error 1049 +use PRN; + diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test index ff317b4ac28..67e9be5dd5d 100644 --- a/mysql-test/t/sp-error.test +++ b/mysql-test/t/sp-error.test @@ -894,6 +894,18 @@ delete from t1| # +# BUG#10537: Server crashes while loading data file into table through +# procedure. +# Disable load until it's PS and SP safe +--disable_warnings +drop procedure if exists bug10537| +--enable_warnings +--error ER_SP_BADSTATEMENT +create procedure bug10537() + load data local infile '/tmp/somefile' into table t1| + + +# # BUG#NNNN: New bug synopsis # #--disable_warnings diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index c58a9f9de8e..2e6cea8468b 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -1777,7 +1777,6 @@ DROP TABLE t1,t2; # # Test for bug #9516: wrong evaluation of not_null_tables attribute in SQ # - CREATE TABLE t1 ( c1 integer ); INSERT INTO t1 VALUES ( 1 ); INSERT INTO t1 VALUES ( 2 ); @@ -1822,3 +1821,19 @@ CREATE TABLE `t2` ( INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1'); SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30; drop tables t1,t2; + +# +# Correct building of equal fields list (do not include outer +# fields) (BUG#6384) +# +CREATE TABLE t1 (EMPNUM CHAR(3)); +CREATE TABLE t2 (EMPNUM CHAR(3) ); +INSERT INTO t1 VALUES ('E1'),('E2'); +INSERT INTO t2 VALUES ('E1'); +DELETE FROM t1 +WHERE t1.EMPNUM NOT IN + (SELECT t2.EMPNUM + FROM t2 + WHERE t1.EMPNUM = t2.EMPNUM); +select * from t1; +DROP TABLE t1,t2; |