GIF89a;
Direktori : /usr/share/mysql-test/t/ |
Current File : //usr/share/mysql-test/t/join_outer_innodb.test |
# # test of left outer join for tests that depends on innodb # --source include/have_innodb.inc # # Test for bug #17164: ORed FALSE blocked conversion of outer join into join # CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20), INDEX (name)) ENGINE=InnoDB; CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11), FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B'); INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3); -- disable_result_log ANALYZE TABLE t1; ANALYZE TABLE t2; -- enable_result_log EXPLAIN SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id WHERE t1.name LIKE 'A%'; EXPLAIN SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id WHERE t1.name LIKE 'A%' OR FALSE; DROP TABLE t1,t2; --echo # --echo # BUG#58456: Assertion 0 in QUICK_INDEX_MERGE_SELECT::need_sorted_output --echo # in opt_range.h --echo # CREATE TABLE t1 ( col_int INT, col_int_key INT, pk INT NOT NULL, PRIMARY KEY (pk), KEY col_int_key (col_int_key) ) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL,1,1), (6,2,2), (5,3,3), (NULL,4,4); INSERT INTO t1 VALUES (1,NULL,6), (8,5,7), (NULL,8,8), (8,NULL,5); -- disable_result_log ANALYZE TABLE t1; -- enable_result_log CREATE TABLE t2 ( pk INT PRIMARY KEY ) ENGINE=InnoDB; let $query= SELECT t1.pk FROM t2 LEFT JOIN t1 ON t2.pk = t1.col_int WHERE t1.col_int_key BETWEEN 5 AND 6 AND t1.pk IS NULL OR t1.pk IN (5) ORDER BY pk; --echo --eval EXPLAIN $query --echo --eval $query --echo DROP TABLE t1,t2; --echo # End BUG#58456