diff options
-rw-r--r-- | mysql-test/suite/galera/r/galera_ctas.result | 88 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/galera_ctas.test | 39 | ||||
-rw-r--r-- | sql/sql_insert.cc | 3 |
3 files changed, 129 insertions, 1 deletions
diff --git a/mysql-test/suite/galera/r/galera_ctas.result b/mysql-test/suite/galera/r/galera_ctas.result new file mode 100644 index 00000000000..f044f807410 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_ctas.result @@ -0,0 +1,88 @@ +connection node_2; +connection node_1; +connection node_1; +create table t1_Aria(a int, count int, b int, key(b)) engine=Aria; +INSERT INTO t1_Aria values (1,1,1); +create table t1_MyISAM(a int, count int, b int, key(b)) engine=MyISAM; +INSERT INTO t1_MyISAM values (1,1,1); +create table t1_InnoDB(a int, count int, b int, key(b)) engine=InnoDB; +INSERT INTO t1_InnoDB values (1,1,1); +SET SESSION default_storage_engine=MyISAM; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SHOW CREATE TABLE t3; +Table Create Table +t3 CREATE TABLE `t3` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SHOW CREATE TABLE t4; +Table Create Table +t4 CREATE TABLE `t4` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2, t3,t4; +SET SESSION default_storage_engine=Aria; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +SHOW CREATE TABLE t3; +Table Create Table +t3 CREATE TABLE `t3` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +SHOW CREATE TABLE t4; +Table Create Table +t4 CREATE TABLE `t4` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +DROP TABLE t2, t3,t4; +SET SESSION default_storage_engine=InnoDB; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SHOW CREATE TABLE t3; +Table Create Table +t3 CREATE TABLE `t3` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SHOW CREATE TABLE t4; +Table Create Table +t4 CREATE TABLE `t4` ( + `a` int(11) DEFAULT NULL, + `count` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +DROP TABLE t2, t3,t4; +DROP TABLE t1_MyISAM, t1_Aria,t1_InnoDB; diff --git a/mysql-test/suite/galera/t/galera_ctas.test b/mysql-test/suite/galera/t/galera_ctas.test new file mode 100644 index 00000000000..8b9ad9c4a20 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_ctas.test @@ -0,0 +1,39 @@ +--source include/galera_cluster.inc + +--connection node_1 +create table t1_Aria(a int, count int, b int, key(b)) engine=Aria; +INSERT INTO t1_Aria values (1,1,1); +create table t1_MyISAM(a int, count int, b int, key(b)) engine=MyISAM; +INSERT INTO t1_MyISAM values (1,1,1); +create table t1_InnoDB(a int, count int, b int, key(b)) engine=InnoDB; +INSERT INTO t1_InnoDB values (1,1,1); + +SET SESSION default_storage_engine=MyISAM; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +SHOW CREATE TABLE t3; +SHOW CREATE TABLE t4; +DROP TABLE t2, t3,t4; + +SET SESSION default_storage_engine=Aria; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +SHOW CREATE TABLE t3; +SHOW CREATE TABLE t4; +DROP TABLE t2, t3,t4; + +SET SESSION default_storage_engine=InnoDB; +CREATE TABLE t2 AS SELECT * FROM t1_Aria; +CREATE TABLE t3 AS SELECT * FROM t1_MyISAM; +CREATE TABLE t4 AS SELECT * FROM t1_InnoDB; +SHOW CREATE TABLE t2; +SHOW CREATE TABLE t3; +SHOW CREATE TABLE t4; + +DROP TABLE t2, t3,t4; +DROP TABLE t1_MyISAM, t1_Aria,t1_InnoDB; + diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index a3211629180..c969725bea4 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -4724,7 +4724,8 @@ bool select_create::send_eof() if (!table->s->tmp_table) { #ifdef WITH_WSREP - if (WSREP(thd)) + if (WSREP(thd) && + table->file->ht->db_type == DB_TYPE_INNODB) { if (thd->wsrep_trx_id() == WSREP_UNDEFINED_TRX_ID) { |