mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-11953: support of brackets in UNION/EXCEPT/INTERSECT operations
This commit is contained in:
@@ -705,6 +705,9 @@ FOR UPDATE;
|
||||
1
|
||||
1
|
||||
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
|
||||
PROCEDURE ANALYSE();
|
||||
ERROR HY000: Can't use ORDER clause with this procedure
|
||||
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
|
||||
PROCEDURE ANALYSE() FOR UPDATE;
|
||||
ERROR HY000: Can't use ORDER clause with this procedure
|
||||
SELECT 1 FROM
|
||||
@@ -734,7 +737,7 @@ SELECT 1 FROM t1
|
||||
UNION
|
||||
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
|
||||
PROCEDURE ANALYSE() FOR UPDATE;
|
||||
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() FOR UPDATE' at line 4
|
||||
ERROR 42000: Incorrect usage/placement of 'PROCEDURE'
|
||||
SELECT 1 FROM DUAL PROCEDURE ANALYSE()
|
||||
UNION
|
||||
SELECT 1 FROM t1;
|
||||
@@ -754,15 +757,18 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
||||
# "FOR UPDATE" tests
|
||||
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
|
||||
1
|
||||
SELECT 1 FROM t1 FOR UPDATE UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
|
||||
(SELECT 1 FROM t1 FOR UPDATE) UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
|
||||
1
|
||||
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 FOR UPDATE;
|
||||
1
|
||||
# "INTO" clause tests
|
||||
SELECT 1 FROM t1 INTO @var17727401;
|
||||
Warnings:
|
||||
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
SELECT 1 FROM DUAL INTO @var17727401;
|
||||
Warnings:
|
||||
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||
SELECT 1 INTO @var17727401;
|
||||
SELECT 1 INTO @var17727401 FROM t1;
|
||||
Warnings:
|
||||
@@ -778,6 +784,7 @@ Warnings:
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
SELECT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var17727401;
|
||||
Warnings:
|
||||
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
SELECT 1 FROM t1 WHERE 1 INTO @var17727401 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 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 'GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1' at line 1
|
||||
@@ -794,31 +801,20 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
||||
SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1;
|
||||
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);
|
||||
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 'INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1)' at line 1
|
||||
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401;
|
||||
Warnings:
|
||||
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
SELECT 1 INTO @var17727401 FROM t1 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 'PROCEDURE ANALYSE()' at line 1
|
||||
SELECT 1 FROM t1 PROCEDURE ANALYSE() 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
|
||||
# ORDER and LIMIT clause combinations
|
||||
(SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1;
|
||||
1
|
||||
(SELECT 1 FROM t1 LIMIT 1) LIMIT 1;
|
||||
1
|
||||
((SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1) ORDER BY 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) ORDER BY 1' at line 1
|
||||
((SELECT 1 FROM t1 LIMIT 1) LIMIT 1) LIMIT 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 'LIMIT 1) LIMIT 1' at line 1
|
||||
(SELECT 1 FROM t1 ORDER BY 1) LIMIT 1;
|
||||
1
|
||||
(SELECT 1 FROM t1 LIMIT 1) ORDER BY 1;
|
||||
1
|
||||
((SELECT 1 FROM t1 ORDER BY 1) LIMIT 1) ORDER BY 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 'LIMIT 1) ORDER BY 1)' 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 ')' at line 1
|
||||
((SELECT 1 FROM t1 LIMIT 1) ORDER BY 1) LIMIT 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) LIMIT 1)' 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 ')' at line 1
|
||||
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1;
|
||||
1
|
||||
SELECT (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1);
|
||||
@@ -1265,19 +1261,27 @@ CREATE TABLE t1 (i INT);
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10));
|
||||
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 'PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))' at line 1
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10);
|
||||
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 'PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)' at line 1
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
(SELECT 1);
|
||||
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 'PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
(SELECT 1)' at line 1
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
SELECT 1;
|
||||
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 'PROCEDURE ANALYSE(10, 10))
|
||||
UNION
|
||||
SELECT 1' at line 1
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)
|
||||
UNION
|
||||
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10));
|
||||
|
Reference in New Issue
Block a user