diff options
Diffstat (limited to 'mysql-test/t/parser.test')
-rw-r--r-- | mysql-test/t/parser.test | 84 |
1 files changed, 53 insertions, 31 deletions
diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test index 86cc3c47c37..0450e3c6fb0 100644 --- a/mysql-test/t/parser.test +++ b/mysql-test/t/parser.test @@ -825,13 +825,13 @@ UNION SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 UNION SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM DUAL PROCEDURE ANALYSE() UNION SELECT 1 FROM t1; @@ -841,7 +841,7 @@ UNION (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR (SELECT 1 FROM t1) UNION (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 @@ -863,10 +863,10 @@ SELECT 1 INTO @var17727401; SELECT 1 INTO @var17727401 FROM t1; SELECT 1 INTO @var17727401 FROM DUAL; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM DUAL INTO @var17727401_2; @@ -876,7 +876,7 @@ SELECT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var1772740 --error ER_PARSE_ERROR SELECT 1 FROM t1 WHERE 1 INTO @var17727401 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var17727401_2; @@ -888,17 +888,17 @@ SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a; --error ER_PARSE_ERROR SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1; --error ER_WRONG_USAGE (SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1); SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE(); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401; --echo # ORDER and LIMIT clause combinations @@ -947,27 +947,27 @@ eval SELECT ($q); eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1; @@ -975,39 +975,39 @@ let $q=SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1; eval $q; --error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; DROP TABLE t1; @@ -1021,3 +1021,25 @@ SELECT * FROM ( (SELECT a FROM t1 ORDER BY a) UNION (SELECT 1 as b ORDER BY b ) ) AS a1 WHERE a1.a = 1 OR a1.a = 2; DROP TABLE t1; + +--echo # +--echo # MDEV-10080 Derived tables allow double LIMIT clause +--echo # +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +--error ER_PARSE_ERROR +SELECT * FROM (SELECT * FROM t1 LIMIT 1 LIMIT 2) t1; +DROP TABLE t1; + +--echo # +--echo # MDEV-10109 Disallow syntactically INSERT .. SELECT .. {ORDER BY ..| LIMIT ..} .. UNION .. +--echo # + +--error ER_PARSE_ERROR +INSERT INTO t1 SELECT 1 ORDER BY 1 UNION SELECT 2; +--error ER_PARSE_ERROR +INSERT INTO t1 SELECT 1 LIMIT 1 UNION SELECT 2; +--error ER_PARSE_ERROR +CREATE TABLE t1 AS SELECT 1 ORDER BY 1 UNION SELECT 2; +--error ER_PARSE_ERROR +CREATE TABLE t1 AS SELECT 1 LIMIT 1 UNION SELECT 2; |