Commit 61226730 authored by Alexander Barkov's avatar Alexander Barkov

MDEV-10036 sql_yacc.yy: Split select_part2 to disallow syntactically bad...

MDEV-10036 sql_yacc.yy: Split select_part2 to disallow syntactically bad constructs with INTO, PROCEDURE, UNION
MDEV-10037 UNION with LIMIT ROWS EXAMINED does not require parentheses
parent c0a59b46
...@@ -173,10 +173,8 @@ Warning 1931 Query execution was interrupted. The query examined at least 8 rows ...@@ -173,10 +173,8 @@ Warning 1931 Query execution was interrupted. The query examined at least 8 rows
select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0 select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0
UNION UNION
select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6; select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6;
c1 c2 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
bb bb select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6' at line 2
Warnings:
Warning 1931 Query execution was interrupted. The query examined at least 8 rows, which exceeds LIMIT ROWS EXAMINED (6). The query result may be incomplete.
(select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0) (select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0)
UNION UNION
(select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 0) (select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 0)
......
...@@ -709,7 +709,8 @@ ERROR HY000: Incorrect usage of PROCEDURE and subquery ...@@ -709,7 +709,8 @@ ERROR HY000: Incorrect usage of PROCEDURE and subquery
SELECT 1 FROM DUAL PROCEDURE ANALYSE() SELECT 1 FROM DUAL PROCEDURE ANALYSE()
UNION UNION
SELECT 1 FROM t1; SELECT 1 FROM t1;
ERROR HY000: Incorrect usage of UNION and SELECT ... PROCEDURE ANALYSE() ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
SELECT 1 FROM t1' at line 2
(SELECT 1 FROM t1) (SELECT 1 FROM t1)
UNION UNION
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
...@@ -739,10 +740,10 @@ Warnings: ...@@ -739,10 +740,10 @@ Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed Warning 1329 No data - zero rows fetched, selected, or processed
SELECT 1 INTO @var17727401 FROM DUAL; SELECT 1 INTO @var17727401 FROM DUAL;
SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2; SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2;
ERROR HY000: Incorrect usage of INTO and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 1
SELECT 1 INTO @var17727401_1 FROM DUAL SELECT 1 INTO @var17727401_1 FROM DUAL
INTO @var17727401_2; INTO @var17727401_2;
ERROR HY000: Incorrect usage of INTO and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 2
SELECT 1 INTO @var17727401 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1; SELECT 1 INTO @var17727401 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1;
Warnings: Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed Warning 1329 No data - zero rows fetched, selected, or processed
...@@ -754,7 +755,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -754,7 +755,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
SELECT 1 INTO @var17727401_1 SELECT 1 INTO @var17727401_1
FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1
INTO @var17727401_2; INTO @var17727401_2;
ERROR HY000: Incorrect usage of INTO and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 3
SELECT (SELECT 1 FROM t1 INTO @var17727401); SELECT (SELECT 1 FROM t1 INTO @var17727401);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1
SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a; SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a;
...@@ -762,16 +763,16 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -762,16 +763,16 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401); SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1
SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1; SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1;
ERROR HY000: Incorrect usage of UNION and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 INTO t1' at line 1
(SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1); (SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1);
ERROR HY000: Incorrect usage of UNION and INTO ERROR HY000: Incorrect usage of UNION and INTO
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401; SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401;
Warnings: Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed Warning 1329 No data - zero rows fetched, selected, or processed
SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE(); SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE();
ERROR HY000: Incorrect usage of PROCEDURE and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()' at line 1
SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401; SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401;
ERROR HY000: Incorrect usage of PROCEDURE and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401' at line 1
# ORDER and LIMIT clause combinations # ORDER and LIMIT clause combinations
(SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1; (SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1;
1 1
...@@ -817,19 +818,19 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -817,19 +818,19 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1 ORDER BY 1) a; SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1 ORDER BY 1) a;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1) a' at line 1 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1) a' at line 1
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1; SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1); SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1);
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1) a; SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1) a;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1; SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1); SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1);
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1) a; SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1) a;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1; SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
SELECT (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1); SELECT (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1);
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1) a; SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1) a;
...@@ -841,25 +842,25 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -841,25 +842,25 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1) a; SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1) a;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1; SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1' at line 1
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1); SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1);
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1) a; SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1) a;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1; SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1' at line 1
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1); SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1);
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1) a; SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1) a;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1; SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1' at line 1
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1); SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1);
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1) a; SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1) a;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR HY000: Incorrect usage of UNION and LIMIT
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1; SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1' at line 1
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1); SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1);
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1) a; SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1) a;
......
...@@ -124,9 +124,9 @@ ERROR 21000: The used SELECT statements have a different number of columns ...@@ -124,9 +124,9 @@ ERROR 21000: The used SELECT statements have a different number of columns
explain select a,b from t1 union select 1 limit 0; explain select a,b from t1 union select 1 limit 0;
ERROR 21000: The used SELECT statements have a different number of columns ERROR 21000: The used SELECT statements have a different number of columns
select a,b from t1 into outfile 'skr' union select a,b from t2; select a,b from t1 into outfile 'skr' union select a,b from t2;
ERROR HY000: Incorrect usage of UNION and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'union select a,b from t2' at line 1
select a,b from t1 order by a union select a,b from t2; select a,b from t1 order by a union select a,b from t2;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'union select a,b from t2' at line 1
insert into t3 select a from t1 order by a union select a from t2; insert into t3 select a from t1 order by a union select a from t2;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR HY000: Incorrect usage of UNION and ORDER BY
create table t3 select a,b from t1 union select a from t2; create table t3 select a,b from t1 union select a from t2;
...@@ -380,7 +380,7 @@ select found_rows(); ...@@ -380,7 +380,7 @@ select found_rows();
found_rows() found_rows()
4 4
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION all SELECT * FROM t2 LIMIT 2' at line 1
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2;
a a
1 1
...@@ -422,7 +422,7 @@ select found_rows(); ...@@ -422,7 +422,7 @@ select found_rows();
found_rows() found_rows()
5 5
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT * FROM t2' at line 1
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 100) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 100) UNION SELECT * FROM t2) q;
COUNT(*) COUNT(*)
...@@ -435,7 +435,7 @@ a ...@@ -435,7 +435,7 @@ a
4 4
5 5
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT * FROM t2' at line 1
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q;
COUNT(*) COUNT(*)
...@@ -447,7 +447,7 @@ a ...@@ -447,7 +447,7 @@ a
4 4
5 5
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT * FROM t2 LIMIT 2' at line 1
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q;
COUNT(*) COUNT(*)
...@@ -468,7 +468,7 @@ SELECT * FROM t1 UNION SELECT * FROM t2) q; ...@@ -468,7 +468,7 @@ SELECT * FROM t1 UNION SELECT * FROM t2) q;
COUNT(*) COUNT(*)
5 5
SELECT SQL_CALC_FOUND_ROWS * FROM t1 limit 2,2 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 limit 2,2 UNION SELECT * FROM t2;
ERROR HY000: Incorrect usage of UNION and LIMIT ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT * FROM t2' at line 1
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 limit 2,2) UNION SELECT * FROM t2) q; (SELECT * FROM t1 limit 2,2) UNION SELECT * FROM t2) q;
COUNT(*) COUNT(*)
...@@ -1569,7 +1569,8 @@ UNION ALL ...@@ -1569,7 +1569,8 @@ UNION ALL
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a
UNION UNION
SELECT 1,1; SELECT 1,1;
ERROR HY000: Incorrect usage of UNION and ORDER BY ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
SELECT 1,1' at line 4
DROP TABLE t1,t2; DROP TABLE t1,t2;
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1), (2), (3); INSERT INTO t1 VALUES (1), (2), (3);
...@@ -1647,11 +1648,11 @@ SELECT a FROM t1 UNION SELECT a INTO @v FROM t1; ...@@ -1647,11 +1648,11 @@ SELECT a FROM t1 UNION SELECT a INTO @v FROM t1;
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file5' FROM t1; SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file5' FROM t1;
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file6' FROM t1; SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file6' FROM t1;
SELECT a INTO @v FROM t1 UNION SELECT a FROM t1; SELECT a INTO @v FROM t1 UNION SELECT a FROM t1;
ERROR HY000: Incorrect usage of UNION and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT a FROM t1' at line 1
SELECT a INTO OUTFILE 'union.out.file7' FROM t1 UNION SELECT a FROM t1; SELECT a INTO OUTFILE 'union.out.file7' FROM t1 UNION SELECT a FROM t1;
ERROR HY000: Incorrect usage of UNION and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT a FROM t1' at line 1
SELECT a INTO DUMPFILE 'union.out.file8' FROM t1 UNION SELECT a FROM t1; SELECT a INTO DUMPFILE 'union.out.file8' FROM t1 UNION SELECT a FROM t1;
ERROR HY000: Incorrect usage of UNION and INTO ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT a FROM t1' at line 1
# Tests fix in parser rule query_expression_body. # Tests fix in parser rule query_expression_body.
SELECT ( SELECT a UNION SELECT a ) INTO @v FROM t1; SELECT ( SELECT a UNION SELECT a ) INTO @v FROM t1;
SELECT ( SELECT a UNION SELECT a ) INTO OUTFILE 'union.out.file3' FROM t1; SELECT ( SELECT a UNION SELECT a ) INTO OUTFILE 'union.out.file3' FROM t1;
......
...@@ -125,6 +125,7 @@ UNION ...@@ -125,6 +125,7 @@ UNION
UNION UNION
(select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6); (select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6);
--error ER_PARSE_ERROR
select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0 select * from t1, t2 where c1 = c2 LIMIT ROWS EXAMINED 0
UNION UNION
select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6; select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6;
......
...@@ -831,7 +831,7 @@ UNION ...@@ -831,7 +831,7 @@ UNION
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
PROCEDURE ANALYSE() FOR UPDATE; PROCEDURE ANALYSE() FOR UPDATE;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT 1 FROM DUAL PROCEDURE ANALYSE() SELECT 1 FROM DUAL PROCEDURE ANALYSE()
UNION UNION
SELECT 1 FROM t1; SELECT 1 FROM t1;
...@@ -863,10 +863,10 @@ SELECT 1 INTO @var17727401; ...@@ -863,10 +863,10 @@ SELECT 1 INTO @var17727401;
SELECT 1 INTO @var17727401 FROM t1; SELECT 1 INTO @var17727401 FROM t1;
SELECT 1 INTO @var17727401 FROM DUAL; SELECT 1 INTO @var17727401 FROM DUAL;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2; 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 SELECT 1 INTO @var17727401_1 FROM DUAL
INTO @var17727401_2; 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 ...@@ -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 --error ER_PARSE_ERROR
SELECT 1 FROM t1 WHERE 1 INTO @var17727401 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1; 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 SELECT 1 INTO @var17727401_1
FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1
INTO @var17727401_2; INTO @var17727401_2;
...@@ -888,17 +888,17 @@ SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a; ...@@ -888,17 +888,17 @@ SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a;
--error ER_PARSE_ERROR --error ER_PARSE_ERROR
SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401); 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; SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
(SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1); (SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1);
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401; 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(); SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE();
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401; SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401;
--echo # ORDER and LIMIT clause combinations --echo # ORDER and LIMIT clause combinations
...@@ -947,7 +947,7 @@ eval SELECT ($q); ...@@ -947,7 +947,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
eval $q; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -955,7 +955,7 @@ eval SELECT ($q); ...@@ -955,7 +955,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
eval $q; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -963,7 +963,7 @@ eval SELECT ($q); ...@@ -963,7 +963,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1; 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; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -979,7 +979,7 @@ eval SELECT ($q); ...@@ -979,7 +979,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1; 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; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -987,7 +987,7 @@ eval SELECT ($q); ...@@ -987,7 +987,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1; 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; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -995,7 +995,7 @@ eval SELECT ($q); ...@@ -995,7 +995,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1; 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; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
...@@ -1003,7 +1003,7 @@ eval SELECT ($q); ...@@ -1003,7 +1003,7 @@ eval SELECT ($q);
eval SELECT 1 FROM ($q) a; eval SELECT 1 FROM ($q) a;
let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1; 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; eval $q;
--error ER_WRONG_USAGE --error ER_WRONG_USAGE
eval SELECT ($q); eval SELECT ($q);
......
...@@ -50,10 +50,10 @@ explain select 1 union select a,b from t1 union select 1; ...@@ -50,10 +50,10 @@ explain select 1 union select a,b from t1 union select 1;
--error 1222 --error 1222
explain select a,b from t1 union select 1 limit 0; explain select a,b from t1 union select 1 limit 0;
--error 1221 --error ER_PARSE_ERROR
select a,b from t1 into outfile 'skr' union select a,b from t2; select a,b from t1 into outfile 'skr' union select a,b from t2;
--error 1221 --error ER_PARSE_ERROR
select a,b from t1 order by a union select a,b from t2; select a,b from t1 order by a union select a,b from t2;
--error 1221 --error 1221
...@@ -236,7 +236,7 @@ SELECT COUNT(*) FROM ( ...@@ -236,7 +236,7 @@ SELECT COUNT(*) FROM (
select found_rows(); select found_rows();
# In these case found_rows() should work # In these case found_rows() should work
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2;
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2;
select found_rows(); select found_rows();
...@@ -253,17 +253,17 @@ SELECT COUNT(*) FROM ( ...@@ -253,17 +253,17 @@ SELECT COUNT(*) FROM (
SELECT * FROM t1 UNION all SELECT * FROM t2) q; SELECT * FROM t1 UNION all SELECT * FROM t2) q;
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100; SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100;
select found_rows(); select found_rows();
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2;
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 100) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 100) UNION SELECT * FROM t2) q;
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100) UNION SELECT * FROM t2; (SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100) UNION SELECT * FROM t2;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2;
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q;
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2; (SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2;
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q;
...@@ -272,7 +272,7 @@ SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2,2; ...@@ -272,7 +272,7 @@ SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2,2;
select found_rows(); select found_rows();
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
SELECT * FROM t1 UNION SELECT * FROM t2) q; SELECT * FROM t1 UNION SELECT * FROM t2) q;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT SQL_CALC_FOUND_ROWS * FROM t1 limit 2,2 UNION SELECT * FROM t2; SELECT SQL_CALC_FOUND_ROWS * FROM t1 limit 2,2 UNION SELECT * FROM t2;
SELECT COUNT(*) FROM ( SELECT COUNT(*) FROM (
(SELECT * FROM t1 limit 2,2) UNION SELECT * FROM t2) q; (SELECT * FROM t1 limit 2,2) UNION SELECT * FROM t2) q;
...@@ -999,7 +999,7 @@ SELECT a,1 FROM t1 ...@@ -999,7 +999,7 @@ SELECT a,1 FROM t1
UNION UNION
(SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a); (SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a);
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT a,1 FROM t1 SELECT a,1 FROM t1
UNION ALL UNION ALL
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a
...@@ -1087,11 +1087,11 @@ SELECT a INTO DUMPFILE 'union.out.file2' FROM ( ...@@ -1087,11 +1087,11 @@ SELECT a INTO DUMPFILE 'union.out.file2' FROM (
SELECT a FROM t1 UNION SELECT a INTO @v FROM t1; SELECT a FROM t1 UNION SELECT a INTO @v FROM t1;
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file5' FROM t1; SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file5' FROM t1;
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file6' FROM t1; SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file6' FROM t1;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT a INTO @v FROM t1 UNION SELECT a FROM t1; SELECT a INTO @v FROM t1 UNION SELECT a FROM t1;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT a INTO OUTFILE 'union.out.file7' FROM t1 UNION SELECT a FROM t1; SELECT a INTO OUTFILE 'union.out.file7' FROM t1 UNION SELECT a FROM t1;
--error ER_WRONG_USAGE --error ER_PARSE_ERROR
SELECT a INTO DUMPFILE 'union.out.file8' FROM t1 UNION SELECT a FROM t1; SELECT a INTO DUMPFILE 'union.out.file8' FROM t1 UNION SELECT a FROM t1;
-- echo # Tests fix in parser rule query_expression_body. -- echo # Tests fix in parser rule query_expression_body.
......
...@@ -1793,7 +1793,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -1793,7 +1793,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
opt_default_time_precision opt_default_time_precision
case_stmt_body opt_bin_mod case_stmt_body opt_bin_mod
opt_if_exists_table_element opt_if_not_exists_table_element opt_if_exists_table_element opt_if_not_exists_table_element
opt_into opt_procedure_clause
opt_recursive opt_recursive
%type <object_ddl_options> %type <object_ddl_options>
...@@ -8533,7 +8532,8 @@ select_paren: ...@@ -8533,7 +8532,8 @@ select_paren:
*/ */
Lex->current_select->set_braces(true); Lex->current_select->set_braces(true);
} }
SELECT_SYM select_part2 SELECT_SYM select_options_and_item_list select_part3
opt_select_lock_type
{ {
if (setup_select_in_parentheses(Lex)) if (setup_select_in_parentheses(Lex))
MYSQL_YYABORT; MYSQL_YYABORT;
...@@ -8559,50 +8559,42 @@ select_paren_derived: ...@@ -8559,50 +8559,42 @@ select_paren_derived:
; ;
select_init2: select_init2:
select_part2 select_options_and_item_list
opt_table_expression
opt_select_lock_type
{ {
LEX *lex= Lex;
/* Parentheses carry no meaning here */ /* Parentheses carry no meaning here */
lex->current_select->set_braces(false); Lex->current_select->set_braces(false);
} }
union_clause union_clause
;
/*
Theoretically we can merge all 3 right hand sides of the select_part2
rule into one, however such a transformation adds one shift/reduce
conflict more.
*/
select_part2:
select_options_and_item_list
opt_order_clause
opt_limit_clause
opt_select_lock_type
| select_options_and_item_list into opt_select_lock_type
| select_options_and_item_list | select_options_and_item_list
opt_into select_part3_union_not_ready
table_expression
opt_order_clause
opt_limit_clause
opt_procedure_clause
opt_into
opt_select_lock_type opt_select_lock_type
{ {
if ($2 && $7) /* Parentheses carry no meaning here */
{ Lex->current_select->set_braces(false);
/* double "INTO" clause */
my_error(ER_WRONG_USAGE, MYF(0), "INTO", "INTO");
MYSQL_YYABORT;
}
if ($6 && ($2 || $7))
{
/* "INTO" with "PROCEDURE ANALYSE" */
my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "INTO");
MYSQL_YYABORT;
}
} }
; ;
select_part3:
opt_table_expression
| select_part3_union_not_ready
;
/*
The SELECT parts after select_item_list that cannot be followed by UNION.
*/
select_part3_union_not_ready:
order_or_limit
| into opt_table_expression opt_order_clause opt_limit_clause
| table_expression into
| table_expression procedure_clause
| table_expression order_or_limit
| table_expression order_or_limit into
| table_expression order_or_limit procedure_clause
;
select_options_and_item_list: select_options_and_item_list:
{ {
LEX *lex= Lex; LEX *lex= Lex;
...@@ -11946,9 +11938,8 @@ choice: ...@@ -11946,9 +11938,8 @@ choice:
| DEFAULT { $$= HA_CHOICE_UNDEF; } | DEFAULT { $$= HA_CHOICE_UNDEF; }
; ;
opt_procedure_clause: procedure_clause:
/* empty */ { $$= false; } PROCEDURE_SYM ident /* Procedure name */
| PROCEDURE_SYM ident /* Procedure name */
{ {
LEX *lex=Lex; LEX *lex=Lex;
...@@ -11989,7 +11980,6 @@ opt_procedure_clause: ...@@ -11989,7 +11980,6 @@ opt_procedure_clause:
{ {
/* Subqueries are allowed from now.*/ /* Subqueries are allowed from now.*/
Lex->expr_allows_subselect= true; Lex->expr_allows_subselect= true;
$$= true;
} }
; ;
...@@ -12069,11 +12059,6 @@ select_outvar: ...@@ -12069,11 +12059,6 @@ select_outvar:
} }
; ;
opt_into:
/* empty */ { $$= false; }
| into { $$= true; }
;
into: into:
INTO INTO
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment