1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt

into  rakia.gmz:/home/kgeorge/mysql/autopush/B20420-5.1-opt


mysql-test/r/func_in.result:
  Auto merged
mysql-test/t/func_in.test:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
This commit is contained in:
unknown
2007-02-16 14:05:09 +02:00
5 changed files with 101 additions and 48 deletions

View File

@@ -261,44 +261,43 @@ select some_id from t1 where some_id not in('-1', '0');
drop table t1;
# TODO:Disabled until re-resolution of bug #20420 for 5.1.
# Results must be the same as in 5.0
##
## BUG#20420: optimizer reports wrong keys on left join with IN
##
#CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
#INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
#
#CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
#INSERT INTO t2 VALUES (3,2),(4,2),(100,100),(101,201),(102,102);
# BUG#20420: optimizer reports wrong keys on left join with IN
#
#CREATE TABLE t3 (a int PRIMARY KEY);
#INSERT INTO t3 VALUES (1),(2),(3),(4);
#
#CREATE TABLE t4 (a int PRIMARY KEY,b int);
#INSERT INTO t4 VALUES (1,1),(2,2),(1000,1000),(1001,1001),(1002,1002),(1003,1003),(1004,1004);
#
#EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
# JOIN t1 ON t3.a=t1.a
# JOIN t2 ON t3.a=t2.a
# JOIN t4 WHERE t4.a IN (t1.b, t2.b);
#
#SELECT STRAIGHT_JOIN * FROM t3
# JOIN t1 ON t3.a=t1.a
# JOIN t2 ON t3.a=t2.a
# JOIN t4 WHERE t4.a IN (t1.b, t2.b);
#
#EXPLAIN SELECT STRAIGHT_JOIN
# (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
# FROM t3, t1, t2
# WHERE t3.a=t1.a AND t3.a=t2.a;
#
#SELECT STRAIGHT_JOIN
# (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
# FROM t3, t1, t2
# WHERE t3.a=t1.a AND t3.a=t2.a;
#
#DROP TABLE t1,t2,t3,t4;
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
INSERT INTO t2 VALUES (3,2),(4,2),(100,100),(101,201),(102,102);
CREATE TABLE t3 (a int PRIMARY KEY);
INSERT INTO t3 VALUES (1),(2),(3),(4);
CREATE TABLE t4 (a int PRIMARY KEY,b int);
INSERT INTO t4 VALUES (1,1),(2,2),(1000,1000),(1001,1001),(1002,1002),
(1003,1003),(1004,1004);
EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
JOIN t1 ON t3.a=t1.a
JOIN t2 ON t3.a=t2.a
JOIN t4 WHERE t4.a IN (t1.b, t2.b);
SELECT STRAIGHT_JOIN * FROM t3
JOIN t1 ON t3.a=t1.a
JOIN t2 ON t3.a=t2.a
JOIN t4 WHERE t4.a IN (t1.b, t2.b);
EXPLAIN SELECT STRAIGHT_JOIN
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
FROM t3, t1, t2
WHERE t3.a=t1.a AND t3.a=t2.a;
SELECT STRAIGHT_JOIN
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
FROM t3, t1, t2
WHERE t3.a=t1.a AND t3.a=t2.a;
DROP TABLE t1,t2,t3,t4;
--echo End of 5.0 tests