diff options
author | unknown <sanja@askmonty.org> | 2011-11-13 12:02:13 +0200 |
---|---|---|
committer | unknown <sanja@askmonty.org> | 2011-11-13 12:02:13 +0200 |
commit | f76bfc40ea697473e7f1bea211a68a22210e7b53 (patch) | |
tree | a2bd573afac2d9f2c60ed30a3ea03929eb81f296 /mysql-test/t/subselect3.test | |
parent | 3fb60b1df089b5c4df27b6039d1013039bde84e5 (diff) | |
download | mariadb-git-f76bfc40ea697473e7f1bea211a68a22210e7b53.tar.gz |
Fix for LP BUG#824425: Prohibiting subqueries in rows for left part of IN/ALL/ANY
Fix for walk() method of subqueries: always call the method on the subquery.
Diffstat (limited to 'mysql-test/t/subselect3.test')
-rw-r--r-- | mysql-test/t/subselect3.test | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/mysql-test/t/subselect3.test b/mysql-test/t/subselect3.test index f3faf44289e..52acaad9d83 100644 --- a/mysql-test/t/subselect3.test +++ b/mysql-test/t/subselect3.test @@ -1187,5 +1187,52 @@ CALL p1; DROP PROCEDURE p1; DROP TABLE t1, t2; + +--echo # +--echo # fix of LP BUG#824425 (prohibiting subqueries in row in +--echo # left part of IN/ALL/ANY) +--echo # + +CREATE TABLE t1 ( a int) ; +INSERT INTO t1 VALUES (20),(30); + +CREATE TABLE t2 (a int) ; +INSERT INTO t2 VALUES (3),(9); + +CREATE TABLE t3 ( a int, b int) ; +INSERT INTO t3 VALUES (20,5),(30,6); + +set @optimizer_switch_save=@@optimizer_switch; +SET SESSION optimizer_switch='semijoin=OFF,in_to_exists=OFF,materialization=ON,partial_match_rowid_merge=ON,partial_match_table_scan=OFF'; + +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ) +) NOT IN ( + SELECT b + FROM t3 +); +explain extended +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ) +) NOT IN ( + SELECT b + FROM t3 +); + +--error ER_NOT_SUPPORTED_YET +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ), + ( SELECT a FROM t2 WHERE a = 3 ) +) NOT IN ( + SELECT b , a + FROM t3 +); +set optimizer_switch=@optimizer_switch_save; + +drop table t1,t2,t3; + # The following command must be the last one the file set @@optimizer_switch=@subselect3_tmp; |