diff options
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/create_drop_binlog.test | 2 | ||||
-rw-r--r-- | mysql-test/t/cte_nonrecursive.test | 19 | ||||
-rw-r--r-- | mysql-test/t/func_analyse.test | 2 | ||||
-rw-r--r-- | mysql-test/t/limit_rows_examined.test | 1 | ||||
-rw-r--r-- | mysql-test/t/mysqlbinlog_row_minimal.test | 2 | ||||
-rw-r--r-- | mysql-test/t/mysqldump-max.test | 2 | ||||
-rw-r--r-- | mysql-test/t/parser.test | 84 | ||||
-rw-r--r-- | mysql-test/t/sp-error.test | 8 | ||||
-rw-r--r-- | mysql-test/t/subselect.test | 2 | ||||
-rw-r--r-- | mysql-test/t/union.test | 24 | ||||
-rw-r--r-- | mysql-test/t/view.test | 6 |
11 files changed, 97 insertions, 55 deletions
diff --git a/mysql-test/t/create_drop_binlog.test b/mysql-test/t/create_drop_binlog.test index 59a66d59e6f..d31ccd73429 100644 --- a/mysql-test/t/create_drop_binlog.test +++ b/mysql-test/t/create_drop_binlog.test @@ -2,7 +2,7 @@ --source include/have_log_bin.inc --source include/binlog_start_pos.inc ---let $pos=`select $binlog_start_pos + 65` +--let $pos=`select $binlog_start_pos + 73` --let $binlog_file=query_get_value(SHOW MASTER STATUS, File, 1) --let $binlog_start=query_get_value(SHOW MASTER STATUS, Position, 1) diff --git a/mysql-test/t/cte_nonrecursive.test b/mysql-test/t/cte_nonrecursive.test index aa14db97cd1..9a0e43bf8f7 100644 --- a/mysql-test/t/cte_nonrecursive.test +++ b/mysql-test/t/cte_nonrecursive.test @@ -452,3 +452,22 @@ with t1 as (select * from v1) select * from t1; drop view v1; drop table t1; + +--echo # +--echo # Bug mdev-10058: Invalid derived table with WITH clause +--echo # + +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); +CREATE TABLE t3 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t2 VALUES (1),(2),(3); +INSERT INTO t3 VALUES (1),(2),(3); + +--ERROR ER_PARSE_ERROR +SELECT * FROM (WITH a AS (SELECT * FROM t1) (t2 NATURAL JOIN t3)); + +SELECT * FROM (WITH a AS (SELECT * FROM t1) SELECT * FROM t2 NATURAL JOIN t3) AS d1; + +DROP TABLE t1,t2,t3; + diff --git a/mysql-test/t/func_analyse.test b/mysql-test/t/func_analyse.test index 6c30c0ca630..d99f5c0fa9a 100644 --- a/mysql-test/t/func_analyse.test +++ b/mysql-test/t/func_analyse.test @@ -165,7 +165,7 @@ DROP TABLE t1, t2; ((SELECT 1 FROM DUAL PROCEDURE ANALYSE())); # TODO: ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT * FROM t1 UNION SELECT * FROM t1 PROCEDURE analyse(); --echo # diff --git a/mysql-test/t/limit_rows_examined.test b/mysql-test/t/limit_rows_examined.test index 382530234be..3f7424d5541 100644 --- a/mysql-test/t/limit_rows_examined.test +++ b/mysql-test/t/limit_rows_examined.test @@ -125,6 +125,7 @@ UNION UNION (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 UNION select * from t1, t2 where c1 < c2 LIMIT ROWS EXAMINED 6; diff --git a/mysql-test/t/mysqlbinlog_row_minimal.test b/mysql-test/t/mysqlbinlog_row_minimal.test index 216cb43eb6f..9c319880fbd 100644 --- a/mysql-test/t/mysqlbinlog_row_minimal.test +++ b/mysql-test/t/mysqlbinlog_row_minimal.test @@ -27,7 +27,7 @@ DELETE FROM t2; FLUSH BINARY LOGS; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ +--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ --exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog DROP TABLE t1,t2; diff --git a/mysql-test/t/mysqldump-max.test b/mysql-test/t/mysqldump-max.test index f5f4dbcd088..c0596f27e4f 100644 --- a/mysql-test/t/mysqldump-max.test +++ b/mysql-test/t/mysqldump-max.test @@ -1190,7 +1190,7 @@ source include/binlog_start_pos.inc; let _BINLOG_START_POS= $binlog_start_pos; --perl my $f= "$ENV{MYSQLTEST_VARDIR}/tmp/mwl136.sql"; -my $pos=$ENV{_BINLOG_START_POS} + 691; +my $pos=$ENV{_BINLOG_START_POS} + 739; open F, '<', $f or die "Failed to open $f: $!\n"; while (<F>) { s/$pos/<pos>/; diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test index 86cc3c47c37..0450e3c6fb0 100644 --- a/mysql-test/t/parser.test +++ b/mysql-test/t/parser.test @@ -825,13 +825,13 @@ UNION SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 UNION SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM DUAL PROCEDURE ANALYSE() UNION SELECT 1 FROM t1; @@ -841,7 +841,7 @@ UNION (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR (SELECT 1 FROM t1) UNION (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 @@ -863,10 +863,10 @@ SELECT 1 INTO @var17727401; SELECT 1 INTO @var17727401 FROM t1; SELECT 1 INTO @var17727401 FROM DUAL; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM DUAL INTO @var17727401_2; @@ -876,7 +876,7 @@ SELECT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var1772740 --error ER_PARSE_ERROR SELECT 1 FROM t1 WHERE 1 INTO @var17727401 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401_1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var17727401_2; @@ -888,17 +888,17 @@ SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a; --error ER_PARSE_ERROR SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1; --error ER_WRONG_USAGE (SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1); SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE(); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401; --echo # ORDER and LIMIT clause combinations @@ -947,27 +947,27 @@ eval SELECT ($q); eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1; @@ -975,39 +975,39 @@ let $q=SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1; eval $q; --error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; let $q=SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval $q; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT ($q); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR eval SELECT 1 FROM ($q) a; DROP TABLE t1; @@ -1021,3 +1021,25 @@ SELECT * FROM ( (SELECT a FROM t1 ORDER BY a) UNION (SELECT 1 as b ORDER BY b ) ) AS a1 WHERE a1.a = 1 OR a1.a = 2; DROP TABLE t1; + +--echo # +--echo # MDEV-10080 Derived tables allow double LIMIT clause +--echo # +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +--error ER_PARSE_ERROR +SELECT * FROM (SELECT * FROM t1 LIMIT 1 LIMIT 2) t1; +DROP TABLE t1; + +--echo # +--echo # MDEV-10109 Disallow syntactically INSERT .. SELECT .. {ORDER BY ..| LIMIT ..} .. UNION .. +--echo # + +--error ER_PARSE_ERROR +INSERT INTO t1 SELECT 1 ORDER BY 1 UNION SELECT 2; +--error ER_PARSE_ERROR +INSERT INTO t1 SELECT 1 LIMIT 1 UNION SELECT 2; +--error ER_PARSE_ERROR +CREATE TABLE t1 AS SELECT 1 ORDER BY 1 UNION SELECT 2; +--error ER_PARSE_ERROR +CREATE TABLE t1 AS SELECT 1 LIMIT 1 UNION SELECT 2; diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test index d403b19eff7..b1d4f67f357 100644 --- a/mysql-test/t/sp-error.test +++ b/mysql-test/t/sp-error.test @@ -1785,13 +1785,13 @@ CREATE TABLE t1 (i INT); # We do not have to drop this procedure and view because they won't be # created. ---error ER_VIEW_SELECT_CLAUSE +--error ER_PARSE_ERROR CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO @a; ---error ER_VIEW_SELECT_CLAUSE +--error ER_PARSE_ERROR CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO DUMPFILE "file"; ---error ER_VIEW_SELECT_CLAUSE +--error ER_PARSE_ERROR CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO OUTFILE "file"; ---error ER_VIEW_SELECT_CLAUSE +--error ER_PARSE_ERROR CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT i FROM t1 PROCEDURE ANALYSE(); --error ER_VIEW_SELECT_DERIVED diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 5313a4b8a39..c19613da493 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -569,7 +569,7 @@ drop table t1, t2; create table t1 (a float); -- error ER_NOT_SUPPORTED_YET select 10.5 IN (SELECT * from t1 LIMIT 1); --- error ER_WRONG_USAGE +-- error ER_PARSE_ERROR select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5); -- error ER_NOT_SUPPORTED_YET select 10.5 IN (SELECT * from t1 UNION SELECT 1.5 LIMIT 1); diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index f2026a67bc2..151512515b9 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -50,13 +50,13 @@ explain select 1 union select a,b from t1 union select 1; --error 1222 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; ---error 1221 +--error ER_PARSE_ERROR select a,b from t1 order by a union select a,b from t2; ---error 1221 +--error ER_PARSE_ERROR insert into t3 select a from t1 order by a union select a from t2; --error 1222 @@ -236,7 +236,7 @@ SELECT COUNT(*) FROM ( select found_rows(); # 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 UNION all SELECT * FROM t2 LIMIT 2; select found_rows(); @@ -253,17 +253,17 @@ SELECT COUNT(*) FROM ( SELECT * FROM t1 UNION all SELECT * FROM t2) q; SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100; 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 COUNT(*) FROM ( (SELECT * FROM t1 LIMIT 100) UNION SELECT * FROM t2) q; (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 COUNT(*) FROM ( (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (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 COUNT(*) FROM ( (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; select found_rows(); SELECT COUNT(*) FROM ( 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 COUNT(*) FROM ( (SELECT * FROM t1 limit 2,2) UNION SELECT * FROM t2) q; @@ -999,7 +999,7 @@ SELECT a,1 FROM t1 UNION (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 UNION ALL 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 ( 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.file6' FROM t1; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR 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; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT a INTO DUMPFILE 'union.out.file8' FROM t1 UNION SELECT a FROM t1; -- echo # Tests fix in parser rule query_expression_body. diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index d11b7f0bc37..9fdabca82de 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -840,12 +840,12 @@ drop view v4, v3, v2, v1; # # VIEW over SELECT with prohibited clauses # --- error ER_VIEW_SELECT_CLAUSE +-- error ER_PARSE_ERROR create view v1 as select 5 into @w; --- error ER_VIEW_SELECT_CLAUSE +-- error ER_PARSE_ERROR create view v1 as select 5 into outfile 'ttt'; create table t1 (a int); --- error ER_VIEW_SELECT_CLAUSE +-- error ER_PARSE_ERROR create view v1 as select a from t1 procedure analyse(); -- error ER_VIEW_SELECT_DERIVED create view v1 as select 1 from (select 1) as d1; |