diff options
author | unknown <gbichot@quadita2.mysql.com> | 2005-05-06 18:52:19 +0200 |
---|---|---|
committer | unknown <gbichot@quadita2.mysql.com> | 2005-05-06 18:52:19 +0200 |
commit | 6f83de163b311f05aa95c5d79879425fa1326535 (patch) | |
tree | 4f486a352732a6b1f04e190b6cf3f4d62fc3a5df /mysql-test/t/rpl_sp.test | |
parent | f1def25a89e3dc2ed191335e9d5f7843de245e0a (diff) | |
download | mariadb-git-6f83de163b311f05aa95c5d79879425fa1326535.tar.gz |
Dmitri please review. Fix for BUG#10417 "CREATE TRIGGER not written to binlog":
writing DROP and CREATE TRIGGER to binlog, disabling binlogging
of substatements, testing.
mysql-test/r/rpl_sp.result:
result update
mysql-test/t/rpl_sp.test:
removing useless lines, plus testing replication of triggers
sql/sql_trigger.cc:
trigger can be used to destroy slave, so only SUPER can create it by default.
If create|drop goes ok, binlog CREATE TRIGGER and DROP TRIGGER.
sql/sql_trigger.h:
disable binlogging of substatements of triggers (even if now triggers
can't do updates)
Diffstat (limited to 'mysql-test/t/rpl_sp.test')
-rw-r--r-- | mysql-test/t/rpl_sp.test | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/mysql-test/t/rpl_sp.test b/mysql-test/t/rpl_sp.test index b8dc381630b..e2a8982ebaa 100644 --- a/mysql-test/t/rpl_sp.test +++ b/mysql-test/t/rpl_sp.test @@ -157,7 +157,6 @@ select * from t2; sync_slave_with_master; select * from t1; select * from t2; -select if(compte<>3,"this is broken but documented","this unexpectedly works?") from (select count(*) as compte from t2) as aggreg; # Test of DROP PROCEDURE @@ -194,7 +193,6 @@ select * from t1; select * from t2; sync_slave_with_master; select * from t1; -select if(compte<>1,"this is broken but documented","this unexpectedly works?") from (select count(*) as compte from t1 where a=20) as aggreg; select * from t2; connection master; @@ -225,6 +223,40 @@ select * from t1; --replace_column 13 # 14 # select * from mysql.proc where db='mysqltest1'; +# And now triggers + +connection con1; +--error 1227; +create trigger trg before insert on t1 for each row set new.a= 10; + +connection master; +# fn1() above uses timestamps, so in !ps-protocol, the timezone will be +# binlogged, but in --ps-protocol it will not be (BUG#9359) so +# the binlog offsets get shifted which spoils SHOW BINLOG EVENTS. +# To be immune, we take a new binlog. +flush logs; +delete from t1; +# TODO: when triggers can contain an update, test that this update +# does not go into binlog. +# I'm not setting user vars in the trigger, because replication of user vars +# would take care of propagating the user var's value to slave, so even if +# the trigger was not executed on slave it would not be discovered. +create trigger trg before insert on t1 for each row set new.a= 10; +insert into t1 values (1); +select * from t1; +sync_slave_with_master; +select * from t1; + +connection master; +delete from t1; +drop trigger t1.trg; +insert into t1 values (1); +select * from t1; +--replace_column 2 # 5 # +show binlog events in 'master-bin.000002' from 98; +sync_slave_with_master; +select * from t1; + # Clean up connection master; |