mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-20634 Report disallowed subquery errors as such (instead of parse error)
This commit is contained in:
@ -4547,7 +4547,7 @@ DEALLOCATE PREPARE stmt;
|
|||||||
#
|
#
|
||||||
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
||||||
EXECUTE stmt USING (SELECT 1);
|
EXECUTE stmt USING (SELECT 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 'SELECT 1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
||||||
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
||||||
@ -4746,7 +4746,7 @@ ERROR 21000: Operand should contain 1 column(s)
|
|||||||
# Testing disallowed expressions in USING
|
# Testing disallowed expressions in USING
|
||||||
#
|
#
|
||||||
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING (SELECT 1);
|
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING (SELECT 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 'SELECT 1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
||||||
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING f1();
|
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING f1();
|
||||||
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
@ -4932,9 +4932,9 @@ ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2
|
|||||||
PREPARE stmt FROM CONCAT(_latin1'SELECT 1 AS c FROM ', _latin2 'DUAL');
|
PREPARE stmt FROM CONCAT(_latin1'SELECT 1 AS c FROM ', _latin2 'DUAL');
|
||||||
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat'
|
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat'
|
||||||
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
EXECUTE IMMEDIATE (SELECT 'SELECT 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 'SELECT 'SELECT 1')' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
PREPARE stmt FROM (SELECT 'SELECT 1');
|
PREPARE stmt FROM (SELECT 'SELECT 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 'SELECT 'SELECT 1')' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE a;
|
EXECUTE IMMEDIATE a;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
PREPARE stmt FROM a;
|
PREPARE stmt FROM a;
|
||||||
|
@ -4042,7 +4042,7 @@ DEALLOCATE PREPARE stmt;
|
|||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
PREPARE stmt FROM 'SELECT ? FROM DUAL';
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE stmt USING (SELECT 1);
|
EXECUTE stmt USING (SELECT 1);
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
@ -4221,7 +4221,7 @@ EXECUTE IMMEDIATE 'SELECT ?' USING ROW(1,2);
|
|||||||
--echo # Testing disallowed expressions in USING
|
--echo # Testing disallowed expressions in USING
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING (SELECT 1);
|
EXECUTE IMMEDIATE 'SELECT ? FROM DUAL' USING (SELECT 1);
|
||||||
|
|
||||||
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
CREATE FUNCTION f1() RETURNS VARCHAR(10) RETURN 'test';
|
||||||
@ -4394,9 +4394,9 @@ EXECUTE IMMEDIATE CONCAT(_latin1'SELECT 1 AS c FROM ', _latin2 'DUAL');
|
|||||||
--error ER_CANT_AGGREGATE_2COLLATIONS
|
--error ER_CANT_AGGREGATE_2COLLATIONS
|
||||||
PREPARE stmt FROM CONCAT(_latin1'SELECT 1 AS c FROM ', _latin2 'DUAL');
|
PREPARE stmt FROM CONCAT(_latin1'SELECT 1 AS c FROM ', _latin2 'DUAL');
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM (SELECT 'SELECT 1');
|
PREPARE stmt FROM (SELECT 'SELECT 1');
|
||||||
|
|
||||||
--error ER_BAD_FIELD_ERROR
|
--error ER_BAD_FIELD_ERROR
|
||||||
|
@ -12,9 +12,9 @@ ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)
|
|||||||
0
|
0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM 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 'SELECT * FROM t1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
CREATE TABLE t1 (id INT);
|
CREATE TABLE t1 (id INT);
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
CREATE PROCEDURE p1(a INT) BEGIN END;
|
CREATE PROCEDURE p1(a INT) BEGIN END;
|
||||||
@ -45,21 +45,21 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
SIGNAL SQLSTATE '01000';
|
SIGNAL SQLSTATE '01000';
|
||||||
END' at line 3
|
END' at line 3
|
||||||
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
PREPARE stmt FROM (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
PREPARE stmt FROM EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
EXECUTE IMMEDIATE EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
||||||
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 '(1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO' 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 '(1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO' at line 1
|
||||||
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
||||||
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 'EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO' 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 'EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO' at line 1
|
||||||
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: PURGE..BEFORE does not support subqueries or stored functions
|
||||||
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: PURGE..BEFORE does not support subqueries or stored functions
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
DO 1 IN (SELECT * FROM t1);
|
DO 1 IN (SELECT * FROM t1);
|
||||||
|
@ -15,9 +15,9 @@ SELECT ROW(1,7) IN (SELECT id, id1 FROM t1 WHERE id1= 8);
|
|||||||
EXECUTE IMMEDIATE 'SELECT ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)';
|
EXECUTE IMMEDIATE 'SELECT ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
||||||
|
|
||||||
|
|
||||||
@ -52,14 +52,14 @@ $$
|
|||||||
DELIMITER ;$$
|
DELIMITER ;$$
|
||||||
|
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
@ -67,9 +67,9 @@ GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
|||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
|
@ -83,7 +83,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1133,7 +1133,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -56,7 +56,7 @@ SELECT 1 IN (SELECT 1);
|
|||||||
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
||||||
-- error ER_PARSE_ERROR
|
-- error ER_PARSE_ERROR
|
||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
||||||
-- error ER_PARSE_ERROR
|
-- error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
||||||
-- error ER_BAD_FIELD_ERROR
|
-- error ER_BAD_FIELD_ERROR
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
@ -623,7 +623,7 @@ set @a:=(SELECT a from t1);
|
|||||||
|
|
||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
-- error ER_PARSE_ERROR
|
-- error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 1));
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -87,7 +87,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1137,7 +1137,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -90,7 +90,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1140,7 +1140,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -86,7 +86,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1136,7 +1136,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -89,7 +89,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1139,7 +1139,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -86,7 +86,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
|
|||||||
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
|
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(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 'PROCEDURE ANALYSE(1))' at line 1
|
||||||
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
|
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: PROCEDURE does not support subqueries or stored functions
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
|
||||||
@ -1136,7 +1136,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
|
|||||||
CREATE TABLE t1 (a int, KEY(a));
|
CREATE TABLE t1 (a int, KEY(a));
|
||||||
HANDLER t1 OPEN;
|
HANDLER t1 OPEN;
|
||||||
HANDLER t1 READ a=((SELECT 1));
|
HANDLER t1 READ a=((SELECT 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 'SELECT 1))' at line 1
|
ERROR 42000: HANDLER..READ does not support subqueries or stored functions
|
||||||
HANDLER t1 CLOSE;
|
HANDLER t1 CLOSE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
purge master logs before (select adddate(current_timestamp(), interval -4 day));
|
purge master logs before (select adddate(current_timestamp(), interval -4 day));
|
||||||
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 'select adddate(current_timestamp(), interval -4 day))' at line 1
|
ERROR 42000: PURGE..BEFORE does not support subqueries or stored functions
|
||||||
purge master logs before adddate(current_timestamp(), interval -4 day);
|
purge master logs before adddate(current_timestamp(), interval -4 day);
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1(a int,b int,key(a),key(b));
|
create table t1(a int,b int,key(a),key(b));
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# BUG#10308: purge log with subselect
|
# BUG#10308: purge log with subselect
|
||||||
# Bug#28553: mysqld crash in "purge master log before(select time from information_schema)"
|
# Bug#28553: mysqld crash in "purge master log before(select time from information_schema)"
|
||||||
#
|
#
|
||||||
--error 1064
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
purge master logs before (select adddate(current_timestamp(), interval -4 day));
|
purge master logs before (select adddate(current_timestamp(), interval -4 day));
|
||||||
purge master logs before adddate(current_timestamp(), interval -4 day);
|
purge master logs before adddate(current_timestamp(), interval -4 day);
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ EXECUTE stmt USING @a, @b;
|
|||||||
#
|
#
|
||||||
PREPARE stmt FROM 'SELECT :1 FROM DUAL';
|
PREPARE stmt FROM 'SELECT :1 FROM DUAL';
|
||||||
EXECUTE stmt USING (SELECT 1);
|
EXECUTE stmt USING (SELECT 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 'SELECT 1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
CREATE FUNCTION f1() RETURN VARCHAR
|
CREATE FUNCTION f1() RETURN VARCHAR
|
||||||
AS
|
AS
|
||||||
@ -155,7 +155,7 @@ DROP TABLE t1;
|
|||||||
# Testing disallowed expressions in USING
|
# Testing disallowed expressions in USING
|
||||||
#
|
#
|
||||||
EXECUTE IMMEDIATE 'SELECT :1 FROM DUAL' USING (SELECT 1);
|
EXECUTE IMMEDIATE 'SELECT :1 FROM DUAL' USING (SELECT 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 'SELECT 1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
CREATE FUNCTION f1() RETURN VARCHAR
|
CREATE FUNCTION f1() RETURN VARCHAR
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -182,9 +182,9 @@ ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2
|
|||||||
PREPARE stmt FROM _latin1'SELECT 1 AS c FROM ' || _latin2 'DUAL';
|
PREPARE stmt FROM _latin1'SELECT 1 AS c FROM ' || _latin2 'DUAL';
|
||||||
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat_operator_oracle'
|
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat_operator_oracle'
|
||||||
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
EXECUTE IMMEDIATE (SELECT 'SELECT 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 'SELECT 'SELECT 1')' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
PREPARE stmt FROM (SELECT 'SELECT 1');
|
PREPARE stmt FROM (SELECT 'SELECT 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 'SELECT 'SELECT 1')' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE a;
|
EXECUTE IMMEDIATE a;
|
||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
PREPARE stmt FROM a;
|
PREPARE stmt FROM a;
|
||||||
|
@ -13,9 +13,9 @@ ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)
|
|||||||
0
|
0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM 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 'SELECT * FROM t1)' at line 1
|
ERROR 42000: EXECUTE..USING does not support subqueries or stored functions
|
||||||
CREATE TABLE t1 (id INT);
|
CREATE TABLE t1 (id INT);
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
CREATE PROCEDURE p1(a INT) AS BEGIN NULL; END;
|
CREATE PROCEDURE p1(a INT) AS BEGIN NULL; END;
|
||||||
@ -47,21 +47,21 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
SIGNAL SQLSTATE '01000';
|
SIGNAL SQLSTATE '01000';
|
||||||
END' at line 3
|
END' at line 3
|
||||||
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
PREPARE stmt FROM (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
PREPARE stmt FROM EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: PREPARE..FROM does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
EXECUTE IMMEDIATE EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: EXECUTE IMMEDIATE does not support subqueries or stored functions
|
||||||
GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
||||||
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 '(1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO' 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 '(1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO' at line 1
|
||||||
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
||||||
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 'EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO' 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 'EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO' at line 1
|
||||||
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM 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 'SELECT * FROM t1))' at line 1
|
ERROR 42000: PURGE..BEFORE does not support subqueries or stored functions
|
||||||
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM 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 '(SELECT * FROM t1)' at line 1
|
ERROR 42000: PURGE..BEFORE does not support subqueries or stored functions
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
DO 1 IN (SELECT * FROM t1);
|
DO 1 IN (SELECT * FROM t1);
|
||||||
|
@ -33,7 +33,7 @@ EXECUTE stmt USING @a, @b;
|
|||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
PREPARE stmt FROM 'SELECT :1 FROM DUAL';
|
PREPARE stmt FROM 'SELECT :1 FROM DUAL';
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE stmt USING (SELECT 1);
|
EXECUTE stmt USING (SELECT 1);
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ DROP TABLE t1;
|
|||||||
--echo # Testing disallowed expressions in USING
|
--echo # Testing disallowed expressions in USING
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT :1 FROM DUAL' USING (SELECT 1);
|
EXECUTE IMMEDIATE 'SELECT :1 FROM DUAL' USING (SELECT 1);
|
||||||
|
|
||||||
DELIMITER $$;
|
DELIMITER $$;
|
||||||
@ -189,9 +189,9 @@ EXECUTE IMMEDIATE _latin1'SELECT 1 AS c FROM ' || _latin2 'DUAL';
|
|||||||
--error ER_CANT_AGGREGATE_2COLLATIONS
|
--error ER_CANT_AGGREGATE_2COLLATIONS
|
||||||
PREPARE stmt FROM _latin1'SELECT 1 AS c FROM ' || _latin2 'DUAL';
|
PREPARE stmt FROM _latin1'SELECT 1 AS c FROM ' || _latin2 'DUAL';
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
EXECUTE IMMEDIATE (SELECT 'SELECT 1');
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM (SELECT 'SELECT 1');
|
PREPARE stmt FROM (SELECT 'SELECT 1');
|
||||||
|
|
||||||
--error ER_BAD_FIELD_ERROR
|
--error ER_BAD_FIELD_ERROR
|
||||||
|
@ -17,9 +17,9 @@ SELECT ROW(1,7) IN (SELECT id, id1 FROM t1 WHERE id1= 8);
|
|||||||
EXECUTE IMMEDIATE 'SELECT ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)';
|
EXECUTE IMMEDIATE 'SELECT ROW(1, 7) IN (SELECT id, id1 FROM t1 WHERE id1= 8)';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE 'SELECT ?' USING (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
EXECUTE IMMEDIATE 'SELECT ?' USING (SELECT * FROM t1);
|
||||||
|
|
||||||
|
|
||||||
@ -57,14 +57,14 @@ $$
|
|||||||
DELIMITER ;$$
|
DELIMITER ;$$
|
||||||
|
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
PREPARE stmt FROM (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
PREPARE stmt FROM EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
EXECUTE IMMEDIATE (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
EXECUTE IMMEDIATE EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
@ -72,9 +72,9 @@ GET DIAGNOSTICS CONDITION (1 IN (SELECT * FROM t1)) @errno=MYSQL_ERRNO;
|
|||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
GET DIAGNOSTICS CONDITION EXISTS (SELECT * FROM t1) @errno=MYSQL_ERRNO;
|
||||||
|
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
PURGE BINARY LOGS BEFORE (1 IN (SELECT * FROM t1));
|
||||||
--error ER_PARSE_ERROR
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
PURGE BINARY LOGS BEFORE EXISTS (SELECT * FROM t1);
|
||||||
|
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
|
@ -733,7 +733,7 @@ void LEX::start(THD *thd_arg)
|
|||||||
default_used= FALSE;
|
default_used= FALSE;
|
||||||
query_tables= 0;
|
query_tables= 0;
|
||||||
reset_query_tables_list(FALSE);
|
reset_query_tables_list(FALSE);
|
||||||
expr_allows_subselect= TRUE;
|
clause_that_disallows_subselect= NULL;
|
||||||
selects_allow_into= FALSE;
|
selects_allow_into= FALSE;
|
||||||
selects_allow_procedure= FALSE;
|
selects_allow_procedure= FALSE;
|
||||||
use_only_table_context= FALSE;
|
use_only_table_context= FALSE;
|
||||||
@ -9049,12 +9049,12 @@ bool LEX::insert_select_hack(SELECT_LEX *sel)
|
|||||||
Create an Item_singlerow_subselect for a query expression.
|
Create an Item_singlerow_subselect for a query expression.
|
||||||
*/
|
*/
|
||||||
Item *LEX::create_item_query_expression(THD *thd,
|
Item *LEX::create_item_query_expression(THD *thd,
|
||||||
const char *tok_start,
|
|
||||||
st_select_lex_unit *unit)
|
st_select_lex_unit *unit)
|
||||||
{
|
{
|
||||||
if (!expr_allows_subselect)
|
if (clause_that_disallows_subselect)
|
||||||
{
|
{
|
||||||
thd->parse_error(ER_SYNTAX_ERROR, tok_start);
|
my_error(ER_SUBQUERIES_NOT_SUPPORTED, MYF(0),
|
||||||
|
clause_that_disallows_subselect);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9323,11 +9323,12 @@ SELECT_LEX_UNIT *LEX::parsed_body_unit_tail(SELECT_LEX_UNIT *unit,
|
|||||||
Process subselect parsing
|
Process subselect parsing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SELECT_LEX *LEX::parsed_subselect(SELECT_LEX_UNIT *unit, char *place)
|
SELECT_LEX *LEX::parsed_subselect(SELECT_LEX_UNIT *unit)
|
||||||
{
|
{
|
||||||
if (!expr_allows_subselect)
|
if (clause_that_disallows_subselect)
|
||||||
{
|
{
|
||||||
thd->parse_error(ER_SYNTAX_ERROR, place);
|
my_error(ER_SUBQUERIES_NOT_SUPPORTED, MYF(0),
|
||||||
|
clause_that_disallows_subselect);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3267,10 +3267,10 @@ public:
|
|||||||
/*
|
/*
|
||||||
Usually `expr` rule of yacc is quite reused but some commands better
|
Usually `expr` rule of yacc is quite reused but some commands better
|
||||||
not support subqueries which comes standard with this rule, like
|
not support subqueries which comes standard with this rule, like
|
||||||
KILL, HA_READ, CREATE/ALTER EVENT etc. Set this to `false` to get
|
KILL, HA_READ, CREATE/ALTER EVENT etc. Set this to a non-NULL
|
||||||
syntax error back.
|
clause name to get an error.
|
||||||
*/
|
*/
|
||||||
bool expr_allows_subselect;
|
const char *clause_that_disallows_subselect;
|
||||||
bool selects_allow_into;
|
bool selects_allow_into;
|
||||||
bool selects_allow_procedure;
|
bool selects_allow_procedure;
|
||||||
/*
|
/*
|
||||||
@ -3988,9 +3988,7 @@ public:
|
|||||||
const Lex_ident_cli_st *var_name,
|
const Lex_ident_cli_st *var_name,
|
||||||
const Lex_ident_cli_st *field_name);
|
const Lex_ident_cli_st *field_name);
|
||||||
|
|
||||||
Item *create_item_query_expression(THD *thd,
|
Item *create_item_query_expression(THD *thd, st_select_lex_unit *unit);
|
||||||
const char *tok_start,
|
|
||||||
st_select_lex_unit *unit);
|
|
||||||
|
|
||||||
Item *make_item_func_replace(THD *thd, Item *org, Item *find, Item *replace);
|
Item *make_item_func_replace(THD *thd, Item *org, Item *find, Item *replace);
|
||||||
Item *make_item_func_substr(THD *thd, Item *a, Item *b, Item *c);
|
Item *make_item_func_substr(THD *thd, Item *a, Item *b, Item *c);
|
||||||
@ -4460,7 +4458,7 @@ public:
|
|||||||
bool parsed_body_unit(SELECT_LEX_UNIT *unit);
|
bool parsed_body_unit(SELECT_LEX_UNIT *unit);
|
||||||
SELECT_LEX_UNIT *parsed_body_unit_tail(SELECT_LEX_UNIT *unit,
|
SELECT_LEX_UNIT *parsed_body_unit_tail(SELECT_LEX_UNIT *unit,
|
||||||
Lex_order_limit_lock * l);
|
Lex_order_limit_lock * l);
|
||||||
SELECT_LEX *parsed_subselect(SELECT_LEX_UNIT *unit, char *place);
|
SELECT_LEX *parsed_subselect(SELECT_LEX_UNIT *unit);
|
||||||
bool parsed_insert_select(SELECT_LEX *firs_select);
|
bool parsed_insert_select(SELECT_LEX *firs_select);
|
||||||
bool parsed_TVC_start();
|
bool parsed_TVC_start();
|
||||||
SELECT_LEX *parsed_TVC_end();
|
SELECT_LEX *parsed_TVC_end();
|
||||||
|
@ -1873,7 +1873,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||||||
|
|
||||||
%type <item>
|
%type <item>
|
||||||
literal insert_ident order_ident temporal_literal
|
literal insert_ident order_ident temporal_literal
|
||||||
simple_ident expr expr_no_subselect sum_expr in_sum_expr
|
simple_ident expr sum_expr in_sum_expr
|
||||||
variable variable_aux bool_pri
|
variable variable_aux bool_pri
|
||||||
predicate bit_expr parenthesized_expr
|
predicate bit_expr parenthesized_expr
|
||||||
table_wild simple_expr column_default_non_parenthesized_expr udf_expr
|
table_wild simple_expr column_default_non_parenthesized_expr udf_expr
|
||||||
@ -2340,19 +2340,13 @@ deallocate_or_drop:
|
|||||||
;
|
;
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
PREPARE_SYM ident FROM expr_no_subselect
|
PREPARE_SYM ident FROM
|
||||||
{
|
{ Lex->clause_that_disallows_subselect= "PREPARE..FROM"; }
|
||||||
if (Lex->stmt_prepare($2, $4))
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
expr_no_subselect:
|
|
||||||
{ Lex->expr_allows_subselect= false; }
|
|
||||||
expr
|
expr
|
||||||
{
|
{
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
$$= $2;
|
if (Lex->stmt_prepare($2, $5))
|
||||||
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -2362,20 +2356,25 @@ execute:
|
|||||||
if (Lex->stmt_execute($2, $3))
|
if (Lex->stmt_execute($2, $3))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
| EXECUTE_SYM IMMEDIATE_SYM expr_no_subselect execute_using
|
| EXECUTE_SYM IMMEDIATE_SYM
|
||||||
|
{ Lex->clause_that_disallows_subselect= "EXECUTE IMMEDIATE"; }
|
||||||
|
expr
|
||||||
|
{ Lex->clause_that_disallows_subselect= NULL; }
|
||||||
|
execute_using
|
||||||
{
|
{
|
||||||
if (Lex->stmt_execute_immediate($3, $4))
|
if (Lex->stmt_execute_immediate($4, $6))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
execute_using:
|
execute_using:
|
||||||
/* nothing */ { $$= NULL; }
|
/* nothing */ { $$= NULL; }
|
||||||
| USING { Lex->expr_allows_subselect= false; }
|
| USING
|
||||||
|
{ Lex->clause_that_disallows_subselect= "EXECUTE..USING"; }
|
||||||
execute_params
|
execute_params
|
||||||
{
|
{
|
||||||
$$= $3;
|
$$= $3;
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -6776,10 +6775,9 @@ parse_vcol_expr:
|
|||||||
;
|
;
|
||||||
|
|
||||||
parenthesized_expr:
|
parenthesized_expr:
|
||||||
remember_tok_start
|
|
||||||
query_expression
|
query_expression
|
||||||
{
|
{
|
||||||
if (!($$= Lex->create_item_query_expression(thd, $1, $2)))
|
if (!($$= Lex->create_item_query_expression(thd, $1)))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
| expr
|
| expr
|
||||||
@ -9358,10 +9356,9 @@ query_expression:
|
|||||||
;
|
;
|
||||||
|
|
||||||
subselect:
|
subselect:
|
||||||
remember_tok_start
|
|
||||||
query_expression
|
query_expression
|
||||||
{
|
{
|
||||||
if (!($$= Lex->parsed_subselect($2, $1)))
|
if (!($$= Lex->parsed_subselect($1)))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -12944,17 +12941,16 @@ procedure_clause:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
PROCEDURE CLAUSE cannot handle subquery as one of its parameter,
|
PROCEDURE CLAUSE cannot handle subquery as one of its parameter,
|
||||||
so set expr_allows_subselect as false to disallow any subqueries
|
so disallow any subqueries further.
|
||||||
further. Reset expr_allows_subselect back to true once the
|
Alow subqueries back once the parameters are reduced.
|
||||||
parameters are reduced.
|
|
||||||
*/
|
*/
|
||||||
Lex->expr_allows_subselect= false;
|
Lex->clause_that_disallows_subselect= "PROCEDURE";
|
||||||
Select->options|= OPTION_PROCEDURE_CLAUSE;
|
Select->options|= OPTION_PROCEDURE_CLAUSE;
|
||||||
}
|
}
|
||||||
'(' procedure_list ')'
|
'(' procedure_list ')'
|
||||||
{
|
{
|
||||||
/* Subqueries are allowed from now.*/
|
/* Subqueries are allowed from now.*/
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -14701,9 +14697,12 @@ purge:
|
|||||||
{
|
{
|
||||||
Lex->stmt_purge_to($5);
|
Lex->stmt_purge_to($5);
|
||||||
}
|
}
|
||||||
| PURGE master_or_binary LOGS_SYM BEFORE_SYM expr_no_subselect
|
| PURGE master_or_binary LOGS_SYM BEFORE_SYM
|
||||||
|
{ Lex->clause_that_disallows_subselect= "PURGE..BEFORE"; }
|
||||||
|
expr
|
||||||
{
|
{
|
||||||
if (Lex->stmt_purge_before($5))
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
|
if (Lex->stmt_purge_before($6))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -16797,7 +16796,7 @@ handler_tail:
|
|||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
if (unlikely(lex->sphead))
|
if (unlikely(lex->sphead))
|
||||||
my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER"));
|
my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER"));
|
||||||
lex->expr_allows_subselect= FALSE;
|
lex->clause_that_disallows_subselect= "HANDLER..READ";
|
||||||
lex->sql_command = SQLCOM_HA_READ;
|
lex->sql_command = SQLCOM_HA_READ;
|
||||||
lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
|
lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
|
||||||
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
||||||
@ -16812,7 +16811,7 @@ handler_tail:
|
|||||||
handler_read_or_scan opt_where_clause opt_global_limit_clause
|
handler_read_or_scan opt_where_clause opt_global_limit_clause
|
||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
lex->expr_allows_subselect= TRUE;
|
lex->clause_that_disallows_subselect= NULL;
|
||||||
if (!lex->current_select->explicit_limit)
|
if (!lex->current_select->explicit_limit)
|
||||||
{
|
{
|
||||||
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
||||||
|
@ -1358,7 +1358,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||||||
|
|
||||||
%type <item>
|
%type <item>
|
||||||
literal insert_ident order_ident temporal_literal
|
literal insert_ident order_ident temporal_literal
|
||||||
simple_ident expr expr_no_subselect sum_expr in_sum_expr
|
simple_ident expr sum_expr in_sum_expr
|
||||||
variable variable_aux bool_pri
|
variable variable_aux bool_pri
|
||||||
predicate bit_expr parenthesized_expr
|
predicate bit_expr parenthesized_expr
|
||||||
table_wild simple_expr column_default_non_parenthesized_expr udf_expr
|
table_wild simple_expr column_default_non_parenthesized_expr udf_expr
|
||||||
@ -1844,19 +1844,13 @@ deallocate_or_drop:
|
|||||||
;
|
;
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
PREPARE_SYM ident FROM expr_no_subselect
|
PREPARE_SYM ident FROM
|
||||||
{
|
{ Lex->clause_that_disallows_subselect= "PREPARE..FROM"; }
|
||||||
if (Lex->stmt_prepare($2, $4))
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
expr_no_subselect:
|
|
||||||
{ Lex->expr_allows_subselect= false; }
|
|
||||||
expr
|
expr
|
||||||
{
|
{
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
$$= $2;
|
if (Lex->stmt_prepare($2, $5))
|
||||||
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1866,20 +1860,25 @@ execute:
|
|||||||
if (Lex->stmt_execute($2, $3))
|
if (Lex->stmt_execute($2, $3))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
| EXECUTE_SYM IMMEDIATE_SYM expr_no_subselect execute_using
|
| EXECUTE_SYM IMMEDIATE_SYM
|
||||||
|
{ Lex->clause_that_disallows_subselect= "EXECUTE IMMEDIATE"; }
|
||||||
|
expr
|
||||||
|
{ Lex->clause_that_disallows_subselect= NULL; }
|
||||||
|
execute_using
|
||||||
{
|
{
|
||||||
if (Lex->stmt_execute_immediate($3, $4))
|
if (Lex->stmt_execute_immediate($4, $6))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
execute_using:
|
execute_using:
|
||||||
/* nothing */ { $$= NULL; }
|
/* nothing */ { $$= NULL; }
|
||||||
| USING { Lex->expr_allows_subselect= false; }
|
| USING
|
||||||
|
{ Lex->clause_that_disallows_subselect= "EXECUTE..USING"; }
|
||||||
execute_params
|
execute_params
|
||||||
{
|
{
|
||||||
$$= $3;
|
$$= $3;
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -6785,10 +6784,9 @@ parse_vcol_expr:
|
|||||||
;
|
;
|
||||||
|
|
||||||
parenthesized_expr:
|
parenthesized_expr:
|
||||||
remember_tok_start
|
|
||||||
query_expression
|
query_expression
|
||||||
{
|
{
|
||||||
if (!($$= Lex->create_item_query_expression(thd, $1, $2)))
|
if (!($$= Lex->create_item_query_expression(thd, $1)))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
| expr
|
| expr
|
||||||
@ -9459,10 +9457,9 @@ query_expression:
|
|||||||
;
|
;
|
||||||
|
|
||||||
subselect:
|
subselect:
|
||||||
remember_tok_start
|
|
||||||
query_expression
|
query_expression
|
||||||
{
|
{
|
||||||
if (!($$= Lex->parsed_subselect($2, $1)))
|
if (!($$= Lex->parsed_subselect($1)))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -13054,17 +13051,16 @@ procedure_clause:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
PROCEDURE CLAUSE cannot handle subquery as one of its parameter,
|
PROCEDURE CLAUSE cannot handle subquery as one of its parameter,
|
||||||
so set expr_allows_subselect as false to disallow any subqueries
|
so disallow any subqueries further.
|
||||||
further. Reset expr_allows_subselect back to true once the
|
Alow subqueries back once the parameters are reduced.
|
||||||
parameters are reduced.
|
|
||||||
*/
|
*/
|
||||||
Lex->expr_allows_subselect= false;
|
Lex->clause_that_disallows_subselect= "PROCEDURE";
|
||||||
Select->options|= OPTION_PROCEDURE_CLAUSE;
|
Select->options|= OPTION_PROCEDURE_CLAUSE;
|
||||||
}
|
}
|
||||||
'(' procedure_list ')'
|
'(' procedure_list ')'
|
||||||
{
|
{
|
||||||
/* Subqueries are allowed from now.*/
|
/* Subqueries are allowed from now.*/
|
||||||
Lex->expr_allows_subselect= true;
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -14834,9 +14830,12 @@ purge:
|
|||||||
{
|
{
|
||||||
Lex->stmt_purge_to($5);
|
Lex->stmt_purge_to($5);
|
||||||
}
|
}
|
||||||
| PURGE master_or_binary LOGS_SYM BEFORE_SYM expr_no_subselect
|
| PURGE master_or_binary LOGS_SYM BEFORE_SYM
|
||||||
|
{ Lex->clause_that_disallows_subselect= "PURGE..BEFORE"; }
|
||||||
|
expr
|
||||||
{
|
{
|
||||||
if (Lex->stmt_purge_before($5))
|
Lex->clause_that_disallows_subselect= NULL;
|
||||||
|
if (Lex->stmt_purge_before($6))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -17016,7 +17015,7 @@ handler_tail:
|
|||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
if (unlikely(lex->sphead))
|
if (unlikely(lex->sphead))
|
||||||
my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER"));
|
my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER"));
|
||||||
lex->expr_allows_subselect= FALSE;
|
lex->clause_that_disallows_subselect= "HANDLER..READ";
|
||||||
lex->sql_command = SQLCOM_HA_READ;
|
lex->sql_command = SQLCOM_HA_READ;
|
||||||
lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
|
lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
|
||||||
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
||||||
@ -17031,7 +17030,7 @@ handler_tail:
|
|||||||
handler_read_or_scan opt_where_clause opt_global_limit_clause
|
handler_read_or_scan opt_where_clause opt_global_limit_clause
|
||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
lex->expr_allows_subselect= TRUE;
|
lex->clause_that_disallows_subselect= NULL;
|
||||||
if (!lex->current_select->explicit_limit)
|
if (!lex->current_select->explicit_limit)
|
||||||
{
|
{
|
||||||
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
Item *one= new (thd->mem_root) Item_int(thd, (int32) 1);
|
||||||
|
Reference in New Issue
Block a user