summaryrefslogtreecommitdiff
path: root/mysql-test/t/merge_innodb.test
diff options
context:
space:
mode:
authorunknown <istruewing@stella.local>2007-11-30 15:16:31 +0100
committerunknown <istruewing@stella.local>2007-11-30 15:16:31 +0100
commitdc362dae41ae345b05039eed113e3751d0a7e7f6 (patch)
tree55178c136ca0e4f5f9bfc79eaf81fcd55b1eb099 /mysql-test/t/merge_innodb.test
parent4ebdf739ce173dcc6821dd71e0b8d4f815c6acd0 (diff)
downloadmariadb-git-dc362dae41ae345b05039eed113e3751d0a7e7f6.tar.gz
Bug#30491 - MERGE doesn't report error when one table is Innodb
1. A bad error message was given when a MERGE table with an InnoDB child table was tried to use. 2. After selecting from a correct MERGE table and then altering one of the children to InnoDB, incorrect results were returned. These bugs have been fixed with the patch for bug 26379 (Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table). For verification, I added the test case from the bug report. mysql-test/r/merge_innodb.result: Bug#30491 - MERGE doesn't report error when one table is Innodb Added test result. mysql-test/t/merge_innodb.test: Bug#30491 - MERGE doesn't report error when one table is Innodb Added test case.
Diffstat (limited to 'mysql-test/t/merge_innodb.test')
-rw-r--r--mysql-test/t/merge_innodb.test41
1 files changed, 41 insertions, 0 deletions
diff --git a/mysql-test/t/merge_innodb.test b/mysql-test/t/merge_innodb.test
new file mode 100644
index 00000000000..7f0b1a0c36e
--- /dev/null
+++ b/mysql-test/t/merge_innodb.test
@@ -0,0 +1,41 @@
+# t/merge_innodb.test
+#
+# Tests with MERGE tables over InnoDB tables
+#
+
+--source include/have_innodb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2, t3, t4, t5;
+--enable_warnings
+
+#
+# Bug#30491 - MERGE doesn't report error when one table is Innodb
+#
+CREATE TABLE t1 (c1 varchar(100)) ENGINE=MyISAM;
+CREATE TABLE t2 (c1 varchar(100)) ENGINE=MyISAM;
+CREATE TABLE t3 (c1 varchar(100)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES ('Ann'), ('Alice');
+INSERT INTO t2 VALUES ('Bob'), ('Brian');
+INSERT INTO t3 VALUES ('Chris'), ('Charlie');
+CREATE TABLE t4 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t2)
+ INSERT_METHOD=LAST;
+CREATE TABLE t5 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t3)
+ INSERT_METHOD=LAST;
+--error ER_WRONG_MRG_TABLE
+SELECT * FROM t5;
+SELECT * FROM t4;
+ALTER TABLE t2 ENGINE=InnoDB;
+--error ER_WRONG_MRG_TABLE
+SELECT * FROM t4;
+DELETE FROM t2 LIMIT 1;
+--error ER_WRONG_MRG_TABLE
+SELECT * FROM t4;
+--error ER_WRONG_MRG_TABLE
+INSERT INTO t4 VALUES ('Beware');
+--error ER_WRONG_MRG_TABLE
+SELECT * FROM t4;
+SELECT * FROM t2;
+SELECT * FROM t1;
+DROP TABLE t1, t2, t3, t4, t5;
+