mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-6769 DROP TRIGGER IF NOT EXIST binlogged on master but not on slave
don't return from DROP TRIGGER IF NOT EXISTS on the slave side early when the trigger couldn't be read
This commit is contained in:
@ -986,4 +986,15 @@ Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
include/diff_tables.inc [master:t1, slave:t1]
|
||||
include/diff_tables.inc [master:log, slave:log]
|
||||
drop table t1, log;
|
||||
drop trigger if exists notexistent;
|
||||
Warnings:
|
||||
Note 1360 Trigger does not exist
|
||||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; drop trigger if exists notexistent
|
||||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000001 # Gtid # # GTID #-#-#
|
||||
slave-bin.000001 # Query # # use `test`; drop trigger if exists notexistent
|
||||
include/rpl_end.inc
|
||||
|
@ -532,6 +532,19 @@ connection master;
|
||||
drop table t1, log;
|
||||
sync_slave_with_master;
|
||||
|
||||
#
|
||||
# MDEV-6769 DROP TRIGGER IF NOT EXIST binlogged on master but not on slave
|
||||
#
|
||||
let $slave_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
connection master;
|
||||
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
drop trigger if exists notexistent;
|
||||
source include/show_binlog_events.inc;
|
||||
sync_slave_with_master;
|
||||
let $binlog_start= $slave_pos;
|
||||
source include/show_binlog_events.inc;
|
||||
connection master;
|
||||
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
|
@ -2283,10 +2283,14 @@ mysql_execute_command(THD *thd)
|
||||
according to slave filtering rules.
|
||||
Returning success without producing any errors in this case.
|
||||
*/
|
||||
if (!thd->lex->check_exists)
|
||||
DBUG_RETURN(0);
|
||||
/*
|
||||
DROP TRIGGER IF NOT EXISTS will return without an error later
|
||||
after possibly writing the query to a binlog
|
||||
*/
|
||||
}
|
||||
|
||||
// force searching in slave.cc:tables_ok()
|
||||
else // force searching in slave.cc:tables_ok()
|
||||
all_tables->updating= 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user