mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
6703e5b6da
test case
72 lines
1.9 KiB
Text
72 lines
1.9 KiB
Text
# 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;
|
|
|
|
#
|
|
# Bug#20691429 temporary merge over view under lock tables
|
|
#
|
|
create table t1 (c1 varchar(100));
|
|
create table t2 (c1 varchar(100));
|
|
create view t3 as select * from t1;
|
|
insert into t1 values ('ann'), ('alice');
|
|
insert into t2 values ('bob'), ('brian');
|
|
create temporary table t4 (c1 varchar(100)) engine=MERGE union=(t2, t1);
|
|
create temporary table t5 (c1 varchar(100)) engine=MERGE union=(t3, t1);
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t5;
|
|
lock tables t1 read, t2 read, t3 read, t4 read;
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t5;
|
|
select * from t4;
|
|
unlock tables;
|
|
drop table t2;
|
|
create view t2 as select * from t1;
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t4;
|
|
lock tables t1 read, t2 read, t3 read;
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t4;
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t4;
|
|
--error ER_WRONG_MRG_TABLE
|
|
select * from t4;
|
|
unlock tables;
|
|
drop view t2, t3;
|
|
drop table t1;
|