summaryrefslogtreecommitdiff
path: root/mysql-test/t/delete.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/delete.test')
-rw-r--r--mysql-test/t/delete.test58
1 files changed, 57 insertions, 1 deletions
diff --git a/mysql-test/t/delete.test b/mysql-test/t/delete.test
index 36d627209db..8a03cb6c715 100644
--- a/mysql-test/t/delete.test
+++ b/mysql-test/t/delete.test
@@ -173,8 +173,20 @@ delete from t1 where (@a:= f1) order by f1 limit 1;
select @a;
drop table t1;
+# BUG#30385 "Server crash when deleting with order by and limit"
+CREATE TABLE t1 (
+ `date` date ,
+ `time` time ,
+ `seq` int(10) unsigned NOT NULL auto_increment,
+ PRIMARY KEY (`seq`),
+ KEY `seq` (`seq`),
+ KEY `time` (`time`),
+ KEY `date` (`date`)
+);
+DELETE FROM t1 ORDER BY date ASC, time ASC LIMIT 1;
+drop table t1;
+
--echo End of 4.1 tests
-# End of 4.1 tests
#
# Test of multi-delete where we are not scanning the first table
@@ -221,3 +233,47 @@ DELETE FROM t1 ORDER BY t2.x;
DELETE FROM t1 ORDER BY (SELECT x);
DROP TABLE t1;
+
+#
+# Bug #30234: Unexpected behavior using DELETE with AS and USING
+# '
+CREATE TABLE t1 (
+ a INT
+);
+
+CREATE TABLE t2 (
+ a INT
+);
+
+CREATE DATABASE db1;
+CREATE TABLE db1.t1 (
+ a INT
+);
+INSERT INTO db1.t1 (a) SELECT * FROM t1;
+
+CREATE DATABASE db2;
+CREATE TABLE db2.t1 (
+ a INT
+);
+INSERT INTO db2.t1 (a) SELECT * FROM t2;
+
+--error ER_PARSE_ERROR
+DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a;
+--error ER_UNKNOWN_TABLE
+DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a;
+--error ER_PARSE_ERROR
+DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+--error ER_UNKNOWN_TABLE
+DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+DELETE FROM t1 USING t1 WHERE a = 1;
+SELECT * FROM t1;
+--error ER_PARSE_ERROR
+DELETE FROM t1 alias USING t1 alias WHERE a = 2;
+SELECT * FROM t1;
+
+DROP TABLE t1, t2;
+DROP DATABASE db1;
+DROP DATABASE db2;