summaryrefslogtreecommitdiff
path: root/mysql-test/t
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t')
-rw-r--r--mysql-test/t/create_select_tmp.test27
-rw-r--r--mysql-test/t/innodb.test17
-rw-r--r--mysql-test/t/rpl_drop.test10
3 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/t/create_select_tmp.test b/mysql-test/t/create_select_tmp.test
new file mode 100644
index 00000000000..36292abd899
--- /dev/null
+++ b/mysql-test/t/create_select_tmp.test
@@ -0,0 +1,27 @@
+# Testcase for BUG#4551
+# The bug was that when the table was TEMPORARY, it was not deleted if
+# the CREATE SELECT failed (the code intended too, but it actually
+# didn't). And as the CREATE TEMPORARY TABLE was not written to the
+# binlog if it was a transactional table, it resulted in an
+# inconsistency between binlog and the internal list of temp tables.
+
+-- source include/have_innodb.inc
+drop table if exists t1, t2;
+CREATE TABLE t1 ( a int );
+INSERT INTO t1 VALUES (1),(2),(1);
+--error 1062;
+CREATE TABLE t2 ( PRIMARY KEY (a) ) TYPE=INNODB SELECT a FROM t1;
+--error 1146;
+select * from t2;
+--error 1062;
+CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) TYPE=INNODB SELECT a FROM t1;
+--error 1146;
+select * from t2;
+--error 1062;
+CREATE TABLE t2 ( PRIMARY KEY (a) ) TYPE=MYISAM SELECT a FROM t1;
+--error 1146;
+select * from t2;
+--error 1062;
+CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) TYPE=MYISAM SELECT a FROM t1;
+--error 1146;
+select * from t2;
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index e0cc96ccb32..50ab3bdb8bd 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -960,6 +960,23 @@ update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
drop table t3,t2,t1;
#
+# test for recursion depth limit
+#
+create table t1(
+ id int primary key,
+ pid int,
+ index(pid),
+ foreign key(pid) references t1(id) on delete cascade) engine=innodb;
+insert into t1 values(0,0),(1,0),(2,1),(3,2),(4,3),(5,4),(6,5),(7,6),
+ (8,7),(9,8),(10,9),(11,10),(12,11),(13,12),(14,13),(15,14);
+-- error 1217
+delete from t1 where id=0;
+delete from t1 where id=15;
+delete from t1 where id=0;
+
+drop table t1;
+
+#
# Test timestamps
#
diff --git a/mysql-test/t/rpl_drop.test b/mysql-test/t/rpl_drop.test
new file mode 100644
index 00000000000..6fc2500fc97
--- /dev/null
+++ b/mysql-test/t/rpl_drop.test
@@ -0,0 +1,10 @@
+# Testcase for BUG#4552 (DROP on two tables, one of which does not
+# exist, must be binlogged with a non-zero error code)
+source include/master-slave.inc;
+drop table if exists t1, t2;
+create table t1 (a int);
+--error 1051;
+drop table t1, t2;
+save_master_pos;
+connection slave;
+sync_with_master;