Bug #20170 Several DDL statements in one binlog event break replication
Submitted: 31 May 2006 16:44 Modified: 2 Sep 2006 12:05
Reporter: Valeriy Kravchuk Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version: 5.0.21-pro-gpl OS:MacOS (Mac OS X)
Assigned to: CPU Architecture:Any

[31 May 2006 16:44] Valeriy Kravchuk
Description:
On master 3 separate DDL statements (CREATE FUNCTION, DROP PROCEDURE and CREATE PROCEDURE) are written into binlog as one event. This event surely can not be replicated on any slave (syntax error on last line of CREATE PROCEDURE):

Something like:

# at 10822280
#060512 18:10:59 server id 3 end_log_pos 10823237 Query
thread_id=134357
exec_time=0 error_code=0
use somedb;
SET TIMESTAMP=1147482659;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1,
@@session.unique_checks=1;
SET @@session.sql_mode=0;
/*!\C latin1 */;
SET
@@session.character_set_client=8,@@session.collation_connection=8,@@sess
ion.collation_server=33;
CREATE DEFINER=`user`@`%` function fff(id int) returns text
deterministic
begin
...
return msgPath;
end;
drop procedure if exists ppp;
create procedure ppp(in startID bigint(20), in endID bigint(20))
begin
...
end;

is written into binary log.

How to repeat:
I don't know. I tried on 5.0.23_BK with similar stored procedure and function, but got 3 separate events.

Suggested fix:
I do not know.
[2 Sep 2006 12:05] Valeriy Kravchuk
Sorry, but I can not repeat the behaviour described.