Skip to content
Permalink
Browse files
MDEV-23638 : DROP TRIGGER in Galera Cluster not replicating
Drop trigger handling was missing from wsrep_can_run_in_toi
in 10.5 for some reason.
  • Loading branch information
Jan Lindström committed Sep 8, 2020
1 parent 9842ed4 commit c5517cd
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
@@ -32,3 +32,47 @@ id
200
DROP TRIGGER tr1;
DROP TABLE t1;
connection node_1;
CREATE TABLE t1(id int not null auto_increment, value int not null, primary key (id)) engine=innodb;
CREATE TABLE t2(id int not null auto_increment, tbl varchar(64) not null, action varchar(64) not null, primary key (id));
create trigger log_insert after insert on t1
for each row begin
insert into t2(tbl, action) values ('t1', 'INSERT');
end|
insert into t1(value) values (1);
insert into t1(value) values (2);
connection node_2;
set session wsrep_sync_wait=15;
insert into t1(value) values (3);
insert into t1(value) values (4);
select * from t2;
id tbl action
1 t1 INSERT
3 t1 INSERT
4 t1 INSERT
6 t1 INSERT
connection node_1;
drop trigger if exists log_insert;
insert into t1(value) values (5);
select * from t2;
id tbl action
1 t1 INSERT
3 t1 INSERT
4 t1 INSERT
6 t1 INSERT
connection node_2;
insert into t1(value) values (6);
select * from t2;
id tbl action
1 t1 INSERT
3 t1 INSERT
4 t1 INSERT
6 t1 INSERT
connection node_1;
select * from t2;
id tbl action
1 t1 INSERT
3 t1 INSERT
4 t1 INSERT
6 t1 INSERT
drop table t1, t2;
@@ -33,4 +33,40 @@ SELECT * FROM t1;

DROP TRIGGER tr1;
DROP TABLE t1;
#
# MDEV-23638 : DROP TRIGGER in Galera Cluster not replicating
#
--connection node_1
CREATE TABLE t1(id int not null auto_increment, value int not null, primary key (id)) engine=innodb;

CREATE TABLE t2(id int not null auto_increment, tbl varchar(64) not null, action varchar(64) not null, primary key (id));

--delimiter |
create trigger log_insert after insert on t1
for each row begin
insert into t2(tbl, action) values ('t1', 'INSERT');
end|
--delimiter ;

insert into t1(value) values (1);
insert into t1(value) values (2);

--connection node_2
set session wsrep_sync_wait=15;
insert into t1(value) values (3);
insert into t1(value) values (4);
select * from t2;

--connection node_1
drop trigger if exists log_insert;
insert into t1(value) values (5);
select * from t2;

--connection node_2
insert into t1(value) values (6);
select * from t2;

--connection node_1
select * from t2;

drop table t1, t2;
@@ -1927,6 +1927,14 @@ bool wsrep_can_run_in_toi(THD *thd, const char *db, const char *table,
}
return true;
break;
case SQLCOM_DROP_TRIGGER:
DBUG_ASSERT(table_list);
if (thd->find_temporary_table(table_list))
{
return false;
}
return true;
break;
case SQLCOM_ALTER_TABLE:
if (create_info &&
!wsrep_should_replicate_ddl(thd, create_info->db_type->db_type))

0 comments on commit c5517cd

Please sign in to comment.