diff options
author | Igor Babaev <igor@askmonty.org> | 2019-09-20 09:03:38 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2019-09-23 09:57:37 -0700 |
commit | b44171428ab2ea25db82f7cd27349e67812e4921 (patch) | |
tree | 15508ccee1f052305f1fe8b421e9dbf69f8df6e8 /mysql-test/main/subselect.test | |
parent | e3da362c037af95a85d3054243a4c9a039ceb4b4 (diff) | |
download | mariadb-git-b44171428ab2ea25db82f7cd27349e67812e4921.tar.gz |
MDEV-19956 Queries with subqueries containing UNION are not parsed
Shift-Reduce conflicts prevented parsing some queries with subqueries that
used set operations when the subqueries occurred in expressions or in IN
predicands.
The grammar rules for query expression were transformed in order to avoid
these conflicts. New grammar rules employ an idea taken from MySQL 8.0.
Diffstat (limited to 'mysql-test/main/subselect.test')
-rw-r--r-- | mysql-test/main/subselect.test | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/mysql-test/main/subselect.test b/mysql-test/main/subselect.test index 53773eb5e1e..be17254202e 100644 --- a/mysql-test/main/subselect.test +++ b/mysql-test/main/subselect.test @@ -2611,8 +2611,6 @@ SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS SELECT * FROM t1 WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1))); -#TODO:not supported ---error ER_PARSE_ERROR explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12)) from t1; @@ -4414,11 +4412,9 @@ SELECT * FROM t1 WHERE a = ALL ( SELECT 1 UNION ( SELECT 1 UNION SELECT 1 ) ); SELECT * FROM t1 WHERE a = ANY ( SELECT 1 UNION ( SELECT 1 UNION SELECT 1 ) ); SELECT * FROM t1 WHERE a IN ( SELECT 1 UNION ( SELECT 1 UNION SELECT 1 ) ); ---error ER_PARSE_ERROR SELECT * FROM t1 WHERE a = ( ( SELECT 1 UNION SELECT 1 ) UNION SELECT 1 ); SELECT * FROM t1 WHERE a = ALL ( ( SELECT 1 UNION SELECT 1 ) UNION SELECT 1 ); SELECT * FROM t1 WHERE a = ANY ( ( SELECT 1 UNION SELECT 1 ) UNION SELECT 1 ); ---error ER_PARSE_ERROR SELECT * FROM t1 WHERE a IN ( ( SELECT 1 UNION SELECT 1 ) UNION SELECT 1 ); SELECT * FROM t1 WHERE a = ( SELECT 1 UNION SELECT 1 UNION SELECT 1 ); |