mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
7d883c0def
Problem: DROP TRIGGER was not properly handled in combination with slave filters, which made replication stop Fix: loading table name before checking slave filters when dropping a trigger. mysql-test/r/rpl_replicate_do.result: Adding test case mysql-test/t/rpl_replicate_do.test: Adding test case sql/sql_parse.cc: Loading table name when dropping a trigger before checking slave filtering rules. sql/sql_trigger.cc: Making add_table_for_trigger() public sql/sql_trigger.h: Making add_table_for_trigger() public
93 lines
2.1 KiB
Text
93 lines
2.1 KiB
Text
# This test assumes we are ignoring updates on table t2, but doing
|
|
# updates on t1
|
|
|
|
source include/master-slave.inc;
|
|
--disable_warnings
|
|
drop table if exists t11;
|
|
connection slave;
|
|
drop table if exists t11;
|
|
--enable_warnings
|
|
|
|
create table t2 (n int);
|
|
insert into t2 values(4);
|
|
connection master;
|
|
create table t2 (s char(20));
|
|
load data infile '../std_data_ln/words.dat' into table t2;
|
|
insert into t2 values('five');
|
|
create table t1 (m int);
|
|
insert into t1 values(15),(16),(17);
|
|
update t1 set m=20 where m=16;
|
|
delete from t1 where m=17;
|
|
create table t11 select * from t1;
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|
|
select * from t1;
|
|
select * from t2;
|
|
--error 1146
|
|
select * from t11;
|
|
connection master;
|
|
drop table if exists t1,t2,t11;
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|
|
# show slave status, just to see of it prints replicate-do-table
|
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
|
show slave status;
|
|
|
|
#
|
|
# BUG#12542
|
|
# TEST: "SET ONE_SHOT should always be executed on slave"
|
|
#
|
|
# We could use any timezone different than server default in this test
|
|
#
|
|
connection master;
|
|
create table t1 (ts timestamp);
|
|
set one_shot time_zone='met';
|
|
insert into t1 values('2005-08-12 00:00:00');
|
|
set one_shot time_zone='met';
|
|
select * from t1;
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
set one_shot time_zone='met';
|
|
select * from t1;
|
|
|
|
connection master;
|
|
drop table t1;
|
|
sync_slave_with_master;
|
|
|
|
# End of 4.1 tests
|
|
|
|
#
|
|
# Bug#24478 DROP TRIGGER is not caught by replicate-*-table filters
|
|
#
|
|
--echo *** master ***
|
|
connection master;
|
|
create table t1 (a int, b int);
|
|
create trigger trg1 before insert on t1 for each row set new.b=2;
|
|
create table t2 (a int, b int);
|
|
create trigger trg2 before insert on t2 for each row set new.b=2;
|
|
show tables;
|
|
show triggers;
|
|
sync_slave_with_master;
|
|
--echo *** slave ***
|
|
connection slave;
|
|
show tables;
|
|
show triggers;
|
|
--echo *** master ***
|
|
connection master;
|
|
drop trigger trg1;
|
|
drop trigger trg2;
|
|
show triggers;
|
|
sync_slave_with_master;
|
|
--echo *** slave ***
|
|
connection slave;
|
|
show tables;
|
|
show triggers;
|
|
--echo *** master ***
|
|
connection master;
|
|
drop table t1;
|
|
drop table t2;
|
|
sync_slave_with_master;
|