1--source include/galera_cluster.inc
2--source include/have_innodb.inc
3
4#
5# Test the various forms of CREATE TABLE LIKE ... , since Galera has special handling
6# for them, especially when one of the tables is a temporary one.
7#
8
9CREATE SCHEMA schema1;
10CREATE SCHEMA schema2;
11
12USE schema1;
13CREATE TABLE real_table (f1 INTEGER) ENGINE=InnoDB;
14CREATE TEMPORARY TABLE temp_table (f1 INTEGER) ENGINE=InnoDB;
15CREATE TABLE myisam_table (f1 INTEGER) ENGINE=MyISAM;
16
17USE schema2;
18CREATE TABLE real_table1 LIKE schema1.real_table;
19CREATE TABLE real_table2 LIKE schema1.temp_table;
20CREATE TABLE real_table3 LIKE schema1.myisam_table;
21
22CREATE TEMPORARY TABLE temp_table1 LIKE schema1.real_table;
23CREATE TEMPORARY TABLE temp_table2 LIKE schema1.temp_table;
24CREATE TEMPORARY TABLE temp_table3 LIKE schema1.myisam_table;
25
26--connection node_2
27# Only the non-temporary tables are replicated, regardless of the type of table they are based on
28
29SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table' AND TABLE_SCHEMA = 'schema1';
30SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'myisam_table' AND TABLE_SCHEMA = 'schema1';
31SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table' AND TABLE_SCHEMA = 'schema1';
32
33SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table1' AND TABLE_SCHEMA = 'schema2';
34SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table2' AND TABLE_SCHEMA = 'schema2';
35SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table3' AND TABLE_SCHEMA = 'schema2';
36
37SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table1' AND TABLE_SCHEMA = 'schema2';
38SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table2' AND TABLE_SCHEMA = 'schema2';
39SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table3' AND TABLE_SCHEMA = 'schema2';
40
41--connection node_1
42DROP TABLE schema1.real_table;
43DROP TABLE schema1.myisam_table;
44
45DROP TABLE schema2.real_table1;
46DROP TABLE schema2.real_table2;
47DROP TABLE schema2.real_table3;
48
49DROP SCHEMA schema1;
50DROP SCHEMA schema2;
51