diff options
author | Igor Babaev <igor@askmonty.org> | 2012-11-22 10:30:39 -0800 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2012-11-22 10:30:39 -0800 |
commit | 431ded10b8328d99c2599e758ac557c3bcab0f6b (patch) | |
tree | 5950d6b5a78df830e6e9ddc29654b2f9da9b932e /mysql-test/r | |
parent | 13ba0dd286f3296bfbbd202fa76d47770734b472 (diff) | |
parent | db1db8fa8cbcf95fdc2c77a744be7b2f9f31b170 (diff) | |
download | mariadb-git-431ded10b8328d99c2599e758ac557c3bcab0f6b.tar.gz |
Merge
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/group_by.result | 41 | ||||
-rw-r--r-- | mysql-test/r/subselect_sj_jcl6.result | 4 |
2 files changed, 43 insertions, 2 deletions
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index d6036d7e586..4673f08db4f 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -2122,4 +2122,45 @@ the value below *must* be 1 show status like 'Created_tmp_disk_tables'; Variable_name Value Created_tmp_disk_tables 1 +# +# Bug #1002146: Unneeded filesort if usage of join buffer is not allowed +# (bug mdev-645) +# +CREATE TABLE t1 (pk int PRIMARY KEY, a int, INDEX idx(a)); +INSERT INTO t1 VALUES (3,2), (2,3), (5,3), (6,4); +CREATE TABLE t2 (pk int PRIMARY KEY, a int, INDEX idx(a)); +INSERT INTO t2 VALUES (9,0), (10,3), (6,4), (1,6), (3,100), (5,200); +set join_cache_level=0; +EXPLAIN +SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6 +GROUP BY t2.a; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index +1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index +SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6 +GROUP BY t2.a; +a +3 +4 +100 +200 +set join_cache_level=default; +set @save_optimizer_switch=@@optimizer_switch; +set optimizer_switch='outer_join_with_cache=off'; +EXPLAIN +SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6 +GROUP BY t2.a; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index +1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using where; Using index +SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6 +GROUP BY t2.a; +a +0 +3 +4 +100 +200 +set optimizer_switch=@save_optimizer_switch; +DROP TABLE t1,t2; # End of 5.3 tests diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result index 34388db5c3b..a189132b11a 100644 --- a/mysql-test/r/subselect_sj_jcl6.result +++ b/mysql-test/r/subselect_sj_jcl6.result @@ -2978,7 +2978,7 @@ EXPLAIN SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) GROUP BY a HAVING a != 'z'; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index; Using temporary; Using filesort +1 PRIMARY t index idx_a idx_a 4 NULL 1 Using index 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where 2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index @@ -2992,7 +2992,7 @@ EXPLAIN SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) GROUP BY a HAVING a != 'z'; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index; Using temporary; Using filesort +1 PRIMARY t index idx_a idx_a 4 NULL 1 Using index 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where 2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index |