diff options
author | Igor Babaev <igor@askmonty.org> | 2012-01-24 21:12:02 -0800 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2012-01-24 21:12:02 -0800 |
commit | 507e1927e103892d48568fe2c9a3d953e5ca7ad7 (patch) | |
tree | b38c92363c70490dc8ba71dc807c1e7f10a89f08 /mysql-test/t | |
parent | 5db8b5113b26e4c2c7960ab4d6240fd56ffa3432 (diff) | |
parent | e63506af2bba00fb89a0302ccf56c3a06592ed42 (diff) | |
download | mariadb-git-507e1927e103892d48568fe2c9a3d953e5ca7ad7.tar.gz |
Merge.
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/innodb_ext_key.test | 346 |
1 files changed, 346 insertions, 0 deletions
diff --git a/mysql-test/t/innodb_ext_key.test b/mysql-test/t/innodb_ext_key.test new file mode 100644 index 00000000000..4519cf92865 --- /dev/null +++ b/mysql-test/t/innodb_ext_key.test @@ -0,0 +1,346 @@ +--source include/have_innodb.inc + +--disable_warnings +DROP TABLE IF EXISTS t1,t2,t3,t4; +DROP DATABASE IF EXISTS dbt3_s001; +--enable_warnings + +SET SESSION STORAGE_ENGINE='InnoDB'; + +CREATE DATABASE dbt3_s001; + +use dbt3_s001; + +--disable_query_log +--disable_result_log +--disable_warnings +--source include/dbt3_s001.inc +--enable_warnings +--enable_result_log +--enable_query_log + +set @save_ext_key_optimizer_switch=@@optimizer_switch; + +set optimizer_switch='extended_keys=off'; +explain +select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01'; +flush status; +select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01'; +flush status; +select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select count(*) from lineitem + where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01'; +flush status; +select count(*) from lineitem + where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select count(*) from lineitem + where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01'; +flush status; +select count(*) from lineitem + where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select count(*) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000; +flush status; +select count(*) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select count(*) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000; +flush status; +select count(*) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +flush status; +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +flush status; +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select min(l_orderkey) from lineitem where l_shipdate='1992-07-01'; +flush status; +select min(l_orderkey) from lineitem where l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select min(l_orderkey) from lineitem where l_shipdate='1992-07-01'; +flush status; +select min(l_orderkey) from lineitem where l_shipdate='1992-07-01'; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select min(l_orderkey) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +flush status; +select min(l_orderkey) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select min(l_orderkey) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +flush status; +select min(l_orderkey) from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select max(l_linenumber) from lineitem + where l_shipdate='1992-07-01' and l_orderkey=130; +flush status; +select max(l_linenumber) from lineitem + where l_shipdate='1992-07-01' and l_orderkey=130; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select max(l_linenumber) from lineitem + where l_shipdate='1992-07-01' and l_orderkey=130; +flush status; +select max(l_linenumber) from lineitem + where l_shipdate='1992-07-01' and l_orderkey=130; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey=130 + or l_receiptdate='1992-07-01' and l_orderkey=5603; +flush status; +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey=130 + or l_receiptdate='1992-07-01' and l_orderkey=5603; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey=130 + or l_receiptdate='1992-07-01' and l_orderkey=5603; +flush status; +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey=130 + or l_receiptdate='1992-07-01' and l_orderkey=5603; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +flush status; +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +flush status; +select l_orderkey, l_linenumber + from lineitem use index (i_l_shipdate, i_l_receiptdate) + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +explain +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +flush status; +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +explain +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +flush status; +select l_orderkey, l_linenumber from lineitem + where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 + or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +--replace_column 9 # +explain +select max(l_orderkey) from lineitem + where l_partkey between 1 and 10 group by l_partkey; +flush status; +select max(l_orderkey) from lineitem + where l_partkey between 1 and 10 group by l_partkey; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +--replace_column 9 # +explain +select max(l_orderkey) from lineitem + where l_partkey between 1 and 10 group by l_partkey; +flush status; +select max(l_orderkey) from lineitem + where l_partkey between 1 and 10 group by l_partkey; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=off'; +--replace_column 9 # +explain +select max(l_orderkey) from lineitem + where l_suppkey in (1,4) group by l_suppkey; +flush status; +select max(l_orderkey) from lineitem + where l_suppkey in (1,4) group by l_suppkey; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +--replace_column 9 # +explain +select max(l_orderkey) from lineitem + where l_suppkey in (1,4) group by l_suppkey; +flush status; +select max(l_orderkey) from lineitem + where l_suppkey in (1,4) group by l_suppkey; +show status like 'handler_read%'; + +create index i_p_retailprice on part(p_retailprice); + +set optimizer_switch='extended_keys=off'; +--replace_column 9 # +explain +select o_orderkey, p_partkey + from part use index (i_p_retailprice), + lineitem use index (i_l_partkey), orders + where p_retailprice > 1100 and o_orderdate='1997-01-01' + and o_orderkey=l_orderkey and p_partkey=l_partkey; +flush status; +select o_orderkey, p_partkey + from part use index (i_p_retailprice), + lineitem use index (i_l_partkey), orders + where p_retailprice > 1100 and o_orderdate='1997-01-01' + and o_orderkey=l_orderkey and p_partkey=l_partkey; +show status like 'handler_read%'; + +set optimizer_switch='extended_keys=on'; +--replace_column 9 # +explain +select o_orderkey, p_partkey + from part use index (i_p_retailprice), + lineitem use index (i_l_partkey), orders + where p_retailprice > 1100 and o_orderdate='1997-01-01' + and o_orderkey=l_orderkey and p_partkey=l_partkey; +flush status; +select o_orderkey, p_partkey + from part use index (i_p_retailprice), + lineitem use index (i_l_partkey), orders + where p_retailprice > 1100 and o_orderdate='1997-01-01' + and o_orderkey=l_orderkey and p_partkey=l_partkey; +show status like 'handler_read%'; + +DROP DATABASE dbt3_s001; + +use test; + +--echo # +--echo # LP Bug #914560: query containing IN subquery +--echo # + extended_keys = on +--echo # + +set @save_optimizer_switch=@@optimizer_switch; + +SET optimizer_switch='materialization=on,semijoin=on'; +SET optimizer_switch='extended_keys=on'; + +CREATE TABLE t1 (a int, b int) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1,1), (2,2); + +SELECT * FROM t1 WHERE 2 IN (SELECT MAX(s1.a) FROM t1 AS s1, t1 AS s2); +EXPLAIN +SELECT * FROM t1 WHERE 2 IN (SELECT MAX(s1.a) FROM t1 AS s1, t1 AS s2); + +DROP TABLE t1; + +set optimizer_switch=@save_optimizer_switch; + +--echo # +--echo # LP Bug #915291: query using a materialized view +--echo # + extended_keys = on +--echo # (valgrinf complains fixed by the patch for bug #914560) +--echo # + +set @save_optimizer_switch=@@optimizer_switch; + +SET optimizer_switch = 'derived_with_keys=on'; +SET optimizer_switch = 'extended_keys=on'; + +CREATE TABLE t1 (a varchar(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('j'), ('v'); + +CREATE TABLE t2 (b varchar(1)) ENGINE=MyISAM; +INSERT INTO t2 VALUES ('j'), ('v'); + +CREATE TABLE t3 (c varchar(1)); +INSERT INTO t2 VALUES ('m'), ('n'); + +CREATE VIEW v + AS SELECT DISTINCT * FROM t2 STRAIGHT_JOIN t3; + +SELECT * FROM t1, v WHERE a = b; + +DROP VIEW v; +DROP TABLE t1,t2,t3; + +set optimizer_switch=@save_optimizer_switch; + +set optimizer_switch=@save_ext_key_optimizer_switch; +SET SESSION STORAGE_ENGINE=DEFAULT; |