--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;