diff options
Diffstat (limited to 'mysql-test/suite/galera/t/galera_disallow_local_gtid.test')
-rw-r--r-- | mysql-test/suite/galera/t/galera_disallow_local_gtid.test | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/mysql-test/suite/galera/t/galera_disallow_local_gtid.test b/mysql-test/suite/galera/t/galera_disallow_local_gtid.test new file mode 100644 index 00000000000..b28bab1f8cb --- /dev/null +++ b/mysql-test/suite/galera/t/galera_disallow_local_gtid.test @@ -0,0 +1,104 @@ +--source include/galera_cluster.inc +--source include/have_aria.inc +# +# Nodes can have GTIDs for local transactions in the following scenarios: +# +# A DDL statement is executed with wsrep_OSU_method=RSU set. +# A DML statement writes to a non-InnoDB table. +# A DML statement writes to an InnoDB table with wsrep_on=OFF set. +# +call mtr.add_suppression("WSREP: ALTER TABLE isolation failure"); +# +# A DDL statement is executed with wsrep_OSU_method=RSU set. +# +--connection node_1 +CREATE TABLE tab(a int not null primary key) engine=InnoDB; +CREATE TABLE tab1(a int not null primary key) engine=MyISAM; +CREATE TABLE tab2(a int not null primary key) engine=Aria; +CREATE TABLE tab3(a int not null primary key) engine=MEMORY; + +SET GLOBAL wsrep_mode = DISALLOW_LOCAL_GTID; +SET SESSION wsrep_OSU_method='RSU'; + +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +ALTER TABLE tab FORCE; + +SET SESSiON sql_log_bin=0; +ALTER TABLE tab FORCE; +SET SESSION wsrep_OSU_method='TOI'; +# +# A DML statement writes to an InnoDB table with wsrep_on=OFF set. +# +SET SESSION sql_log_bin=1; +SET SESSION wsrep_on=OFF; +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab VALUES (1); +SET SESSiON sql_log_bin=0; +INSERT INTO tab VALUES (1); +SET SESSiON sql_log_bin=1; +SET SESSION wsrep_on=ON; +INSERT INTO tab VALUES (2); + +SELECT * FROM tab; +--connection node_2 +SELECT * FROM tab; +# +# A DML statement writes to a non-InnoDB table. +# +--connection node_1 +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab1 VALUES(1); +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab2 VALUES(1); +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab3 VALUES(1); +# +# Set MyISAM and Aria replication on using TOI +# +SET GLOBAL wsrep_mode = "DISALLOW_LOCAL_GTID,REPLICATE_MYISAM,REPLICATE_ARIA"; +INSERT INTO tab1 VALUES(2); +INSERT INTO tab2 VALUES(2); +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab3 VALUES(2); +SET SESSiON sql_log_bin=0; +INSERT INTO tab1 VALUES(3); +INSERT INTO tab2 VALUES(3); +INSERT INTO tab3 VALUES(3); +SET SESSION sql_log_bin=1; +SET SESSION wsrep_on=OFF; +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab1 VALUES(4); +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab2 VALUES(4); +--error ER_GALERA_REPLICATION_NOT_SUPPORTED +INSERT INTO tab3 VALUES(4); +SET SESSiON sql_log_bin=0; +INSERT INTO tab1 VALUES(5); +INSERT INTO tab2 VALUES(5); +INSERT INTO tab3 VALUES(5); +SET SESSION wsrep_on=ON; +INSERT INTO tab1 VALUES(6); +INSERT INTO tab2 VALUES(6); +INSERT INTO tab3 VALUES(6); + +SELECT * FROM tab1; +SELECT * FROM tab2; +SELECT * FROM tab3; + +--connection node_2 +SELECT * FROM tab1; +SELECT * FROM tab2; +SELECT * FROM tab3; + +--connection node_1 +--disable_query_log +SET SESSION sql_log_bin=DEFAULT; +SET GLOBAL wsrep_mode=DEFAULT; +set GLOBAL wsrep_OSU_method=DEFAULT; +--enable_query_log + +DROP TABLE tab; +DROP TABLE tab1; +DROP TABLE tab2; +DROP TABLE tab3; + |