List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:October 13 2007 6:58pm
Subject:bk commit into 5.1 tree (aelkin:1.2575) BUG#29309
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of elkin. When elkin does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-10-13 21:57:59+03:00, aelkin@stripped +10 -0
  manual merge for bug_29136, bug#29309.

  mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test@stripped, 2007-10-13 21:57:50+03:00, aelkin@stripped +69 -5
    manual merge from 5.0

  mysql-test/r/innodb.result@stripped, 2007-10-13 21:57:51+03:00, aelkin@stripped +15 -2
    results changed

  mysql-test/r/multi_update.result@stripped, 2007-10-13 21:57:51+03:00, aelkin@stripped +21 -2
    results changed

  mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result@stripped, 2007-10-13 21:57:51+03:00, aelkin@stripped +53 -6
    results changed

  mysql-test/suite/manual/r/rpl_replication_delay.result@stripped, 2007-10-13 21:57:51+03:00, aelkin@stripped +23 -8
    results recorded for 5.1

  mysql-test/t/innodb.test@stripped, 2007-10-13 21:57:51+03:00, aelkin@stripped +0 -39
    removing bug27716 regression test as one exists in binlog suite already.

  mysql-test/t/multi_update.test@stripped, 2007-10-13 21:57:52+03:00, aelkin@stripped +6 -2
    manual merge plus refining for execution in both binlog_format.

  sql/log_event.cc@stripped, 2007-10-13 21:57:52+03:00, aelkin@stripped +26 -2
    bloody manual merge;
    the fact that an event is artificial is encode with setting timestamp argument to zero.
    rli's last_master_timestamp won't be updated in stmt_done in such case.

  sql/rpl_rli.cc@stripped, 2007-10-13 21:57:52+03:00, aelkin@stripped +9 -1
    simulation and the real fixing code.
    Don't update last_master_timestamp with zero.

  sql/sql_delete.cc@stripped, 2007-10-13 21:57:52+03:00, aelkin@stripped +3 -3
    manual merge

diff -Nrup a/mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test b/mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test
--- a/mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test	2007-09-17 13:29:37 +03:00
+++ b/mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test	2007-10-13 21:57:50 +03:00
@@ -126,7 +126,9 @@ drop table t1,t2;
 #
 CREATE TABLE t1 (a int  NOT NULL auto_increment primary key) ENGINE=MyISAM;
 CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
-CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique);
+CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM;
+CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb;
+CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
 
 
 #
@@ -169,7 +171,7 @@ CREATE TABLE t3 (a int, PRIMARY KEY (a),
  select count(*) from t1 /* must be 2 */;
 
 #
-# UPDATE (multi-update see bug#27716)
+# UPDATE inc multi-update
 #
 
 # prepare
@@ -185,9 +187,48 @@ CREATE TABLE t3 (a int, PRIMARY KEY (a),
  source include/show_binlog_events.inc; # must be events of the query
  select count(*) from t1 /* must be 2 */;
 
+## multi_update::send_eof() branch
+
+# prepare
+ delete from t3;
+ delete from t4;
+ insert into t3 values (1,1);
+ insert into t4 values (1,1),(2,2);
+
+ reset master;
+
+# execute
+ --error ER_DUP_ENTRY
+ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
+
+# check
+ source include/show_binlog_events.inc; # the offset must denote there is the query
+ select count(*) from t1 /* must be 4 */;
+
+## send_error() branch of multi_update
+
+# prepare
+ delete from t1;
+ delete from t3;
+ delete from t4;
+ insert into t3 values (1,1),(2,2);
+ insert into t4 values (1,1),(2,2);
+
+ reset master;
+
+# execute
+ --error ER_DUP_ENTRY
+ UPDATE t3,t4 SET t3.a=t4.a + bug27417(1);
+
+# check
+ select count(*) from t1 /* must be 1 */;
+
+# cleanup
+ drop table t4;
+
 
 #
-# DELETE (for multi-delete see Bug #29136)
+# DELETE incl multi-delete
 #
 
 # prepare
@@ -204,6 +245,27 @@ CREATE TABLE t3 (a int, PRIMARY KEY (a),
  --error ER_DUP_ENTRY
  delete from t2;
 # check
+ source include/show_binlog_events.inc; # the offset must denote there is the query
+ select count(*) from t1 /* must be 1 */;
+
+# cleanup
+ drop trigger trg_del;
+
+# prepare
+ delete from t1;
+ delete from t2;
+ delete from t5;
+ create trigger trg_del_t2 after  delete on t2 for each row
+   insert into t1 values (1);
+ insert into t2 values (2),(3);
+ insert into t5 values (1),(2);
+ reset master;
+
+# execute
+ --error ER_DUP_ENTRY
+ delete t2.* from t2,t5 where t2.a=t5.a + 1;
+
+# check
  source include/show_binlog_events.inc; # must be events of the query
  select count(*) from t1 /* must be 1 */;
 
@@ -229,6 +291,8 @@ CREATE TABLE t3 (a int, PRIMARY KEY (a),
 #
 # bug#23333 cleanup
 #
-drop trigger trg_del;
-drop table t1,t2,t3,t4;
+
+
+drop trigger trg_del_t2;
+drop table t1,t2,t3,t4,t5;
 drop function bug27417;
diff -Nrup a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
--- a/mysql-test/r/innodb.result	2007-10-13 16:11:59 +03:00
+++ b/mysql-test/r/innodb.result	2007-10-13 21:57:51 +03:00
@@ -1086,6 +1086,19 @@ n	d
 1	30
 2	20
 drop table t1,t2;
+drop table if exists t1, t2;
+CREATE TABLE t1 (a int, PRIMARY KEY (a));
+CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
+create trigger trg_del_t2 after  delete on t2 for each row
+insert into t1 values (1);
+insert into t1 values (1);
+insert into t2 values (1),(2);
+delete t2 from t2;
+ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
+select count(*) from t2 /* must be 2 as restored after rollback caused by the error */;
+count(*)
+2
+drop table t1, t2;
 create table t1 (a int, b int) engine=innodb;
 insert into t1 values(20,null);
 select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on
@@ -1751,10 +1764,10 @@ Variable_name	Value
 Innodb_page_size	16384
 show status like "Innodb_rows_deleted";
 Variable_name	Value
-Innodb_rows_deleted	70
+Innodb_rows_deleted	71
 show status like "Innodb_rows_inserted";
 Variable_name	Value
-Innodb_rows_inserted	1083
+Innodb_rows_inserted	1085
 show status like "Innodb_rows_updated";
 Variable_name	Value
 Innodb_rows_updated	886
diff -Nrup a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result
--- a/mysql-test/r/multi_update.result	2007-10-13 16:12:49 +03:00
+++ b/mysql-test/r/multi_update.result	2007-10-13 21:57:51 +03:00
@@ -614,6 +614,7 @@ CREATE TABLE `t2` (
 `b` int(11) default NULL,
 PRIMARY KEY  (`a`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
+set @sav_binlog_format=  @@session.binlog_format;
 set @@session.binlog_format= mixed;
 insert into t1 values (1,1),(2,2);
 insert into t2 values (1,1),(4,4);
@@ -626,7 +627,7 @@ a	b
 4	4
 show master status /* there must be the UPDATE query event */;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
-master-bin.000001	197		
+master-bin.000001	268		
 delete from t1;
 delete from t2;
 insert into t1 values (1,2),(3,4),(4,4);
@@ -636,6 +637,24 @@ UPDATE t2,t1  SET t2.a=t2.b where t2.a=t
 ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
 show master status /* there must be the UPDATE query event */;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
-master-bin.000001	212		
+master-bin.000001	283		
 drop table t1, t2;
+set @@session.binlog_format= @sav_binlog_format;
+drop table if exists t1, t2, t3;
+CREATE TABLE t1 (a int, PRIMARY KEY (a));
+CREATE TABLE t2 (a int, PRIMARY KEY (a));
+CREATE TABLE t3 (a int, PRIMARY KEY (a)) ENGINE=MyISAM;
+create trigger trg_del_t3 before  delete on t3 for each row insert into t1 values (1);
+insert into t2 values (1),(2);
+insert into t3 values (1),(2);
+reset master;
+delete t3.* from t2,t3 where t2.a=t3.a;
+ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
+select count(*) from t1 /* must be 1 */;
+count(*)
+1
+select count(*) from t3 /* must be 1 */;
+count(*)
+1
+drop table t1, t2, t3;
 end of tests
diff -Nrup a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
--- a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result	2007-10-13 16:13:03 +03:00
+++ b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result	2007-10-13 21:57:51 +03:00
@@ -494,7 +494,9 @@ count(*)
 drop table t1,t2;
 CREATE TABLE t1 (a int  NOT NULL auto_increment primary key) ENGINE=MyISAM;
 CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
-CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique);
+CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM;
+CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb;
+CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
 insert into t2 values (1);
 reset master;
 insert into t2 values (bug27417(1));
@@ -533,6 +535,33 @@ master-bin.000001	#	Query	#	#	use `test`
 select count(*) from t1 /* must be 2 */;
 count(*)
 2
+delete from t3;
+delete from t4;
+insert into t3 values (1,1);
+insert into t4 values (1,1),(2,2);
+reset master;
+UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
+ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Intvar	#	#	INSERT_ID=6
+master-bin.000001	#	Query	#	#	use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */
+master-bin.000001	#	Query	#	#	use `test`; ROLLBACK
+select count(*) from t1 /* must be 4 */;
+count(*)
+4
+delete from t1;
+delete from t3;
+delete from t4;
+insert into t3 values (1,1),(2,2);
+insert into t4 values (1,1),(2,2);
+reset master;
+UPDATE t3,t4 SET t3.a=t4.a + bug27417(1);
+ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
+select count(*) from t1 /* must be 1 */;
+count(*)
+1
+drop table t4;
 delete from t1;
 delete from t2;
 delete from t3;
@@ -545,12 +574,30 @@ delete from t2;
 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Intvar	#	#	INSERT_ID=6
+master-bin.000001	#	Intvar	#	#	INSERT_ID=9
 master-bin.000001	#	Query	#	#	use `test`; delete from t2
 master-bin.000001	#	Query	#	#	use `test`; ROLLBACK
 select count(*) from t1 /* must be 1 */;
 count(*)
 1
+drop trigger trg_del;
+delete from t1;
+delete from t2;
+delete from t5;
+create trigger trg_del_t2 after  delete on t2 for each row
+insert into t1 values (1);
+insert into t2 values (2),(3);
+insert into t5 values (1),(2);
+reset master;
+delete t2.* from t2,t5 where t2.a=t5.a + 1;
+ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	use `test`; delete t2.* from t2,t5 where t2.a=t5.a + 1
+master-bin.000001	#	Query	#	#	use `test`; ROLLBACK
+select count(*) from t1 /* must be 1 */;
+count(*)
+1
 delete from t1;
 create table t4 (a int default 0, b int primary key) engine=innodb;
 insert into t4 values (0, 17);
@@ -565,13 +612,13 @@ count(*)
 2
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Intvar	#	#	INSERT_ID=7
+master-bin.000001	#	Intvar	#	#	INSERT_ID=10
 master-bin.000001	#	Begin_load_query	#	#	;file_id=1;block_len=12
-master-bin.000001	#	Intvar	#	#	INSERT_ID=7
+master-bin.000001	#	Intvar	#	#	INSERT_ID=10
 master-bin.000001	#	Execute_load_query	#	#	use `test`; load data infile '../std_data_ln/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2) ;file_id=1
 master-bin.000001	#	Query	#	#	use `test`; ROLLBACK
-drop trigger trg_del;
-drop table t1,t2,t3,t4;
+drop trigger trg_del_t2;
+drop table t1,t2,t3,t4,t5;
 drop function bug27417;
 set @@session.binlog_format=@@global.binlog_format;
 end of tests
diff -Nrup a/mysql-test/suite/manual/r/rpl_replication_delay.result b/mysql-test/suite/manual/r/rpl_replication_delay.result
--- a/mysql-test/suite/manual/r/rpl_replication_delay.result	2007-10-04 18:46:29 +03:00
+++ b/mysql-test/suite/manual/r/rpl_replication_delay.result	2007-10-13 21:57:51 +03:00
@@ -11,7 +11,7 @@ Master_User	root
 Master_Port	9306
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	98
+Read_Master_Log_Pos	106
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -26,7 +26,7 @@ Replicate_Wild_Ignore_Table	
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	98
+Exec_Master_Log_Pos	106
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -38,6 +38,11 @@ Master_SSL_Cert	
 Master_SSL_Cipher	
 Master_SSL_Key	
 Seconds_Behind_Master	0
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	0
+Last_IO_Error	
+Last_SQL_Errno	0
+Last_SQL_Error	
 drop table if exists t1;
 Warnings:
 Note	1051	Unknown table 't1'
@@ -52,7 +57,7 @@ Master_User	root
 Master_Port	9306
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	359
+Read_Master_Log_Pos	367
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -67,7 +72,7 @@ Replicate_Wild_Ignore_Table	
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	271
+Exec_Master_Log_Pos	279
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -78,7 +83,12 @@ Master_SSL_CA_Path	
 Master_SSL_Cert	
 Master_SSL_Cipher	
 Master_SSL_Key	
-Seconds_Behind_Master	10
+Seconds_Behind_Master	9
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	0
+Last_IO_Error	
+Last_SQL_Errno	0
+Last_SQL_Error	
 unlock tables;
 flush logs /* this time rli->last_master_timestamp is not affected */;
 lock table t1 write;
@@ -90,7 +100,7 @@ Master_User	root
 Master_Port	9306
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	447
+Read_Master_Log_Pos	455
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -105,7 +115,7 @@ Replicate_Wild_Ignore_Table	
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	359
+Exec_Master_Log_Pos	367
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -116,6 +126,11 @@ Master_SSL_CA_Path	
 Master_SSL_Cert	
 Master_SSL_Cipher	
 Master_SSL_Key	
-Seconds_Behind_Master	6
+Seconds_Behind_Master	7
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	0
+Last_IO_Error	
+Last_SQL_Errno	0
+Last_SQL_Error	
 unlock tables;
 drop table t1;
diff -Nrup a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
--- a/mysql-test/t/innodb.test	2007-10-13 16:51:12 +03:00
+++ b/mysql-test/t/innodb.test	2007-10-13 21:57:51 +03:00
@@ -754,45 +754,6 @@ select * from t2;
 drop table t1,t2;
 
 #
-# Bug#27716  	multi-update did partially and has not binlogged
-#
-
-CREATE TABLE `t1` (
-  `a` int(11) NOT NULL auto_increment,
-  `b` int(11) default NULL,
-  PRIMARY KEY  (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
-
-CREATE TABLE `t2` (
-  `a` int(11) NOT NULL auto_increment,
-  `b` int(11) default NULL,
-  PRIMARY KEY  (`a`)
-) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
-
-# A. testing multi_update::send_eof() execution branch
-insert into t1 values (1,1),(2,2);
-insert into t2 values (1,1),(4,4);
-reset master;
---error ER_DUP_ENTRY
-UPDATE t2,t1 SET t2.a=t1.a+2;
-# check
-select * from t2 /* must be (3,1), (4,4) */;
-show master status /* there must no UPDATE in binlog */;
-
-# B. testing multi_update::send_error() execution branch
-delete from t1;
-delete from t2;
-insert into t1 values (1,2),(3,4),(4,4);
-insert into t2 values (1,2),(3,4),(4,4);
-reset master;
---error ER_DUP_ENTRY
-UPDATE t2,t1  SET t2.a=t2.b where t2.a=t1.a;
-show master status /* there must be no UPDATE query event */;
-
-# cleanup bug#27716
-drop table t1, t2;
-
-#
 # Bug #29136  	erred multi-delete on trans table does not rollback 
 #
 
diff -Nrup a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test
--- a/mysql-test/t/multi_update.test	2007-10-13 15:58:05 +03:00
+++ b/mysql-test/t/multi_update.test	2007-10-13 21:57:52 +03:00
@@ -588,6 +588,7 @@ CREATE TABLE `t2` (
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
 
 # as the test is about to see erroed queries in binlog
+set @sav_binlog_format=  @@session.binlog_format;
 set @@session.binlog_format= mixed;
 
 
@@ -614,6 +615,7 @@ show master status /* there must be the 
 
 # cleanup bug#27716
 drop table t1, t2;
+set @@session.binlog_format= @sav_binlog_format;
 
 #
 # Bug #29136  	erred multi-delete on trans table does not rollback 
@@ -642,11 +644,13 @@ delete t3.* from t2,t3 where t2.a=t3.a;
 # check
 select count(*) from t1 /* must be 1 */;
 select count(*) from t3 /* must be 1 */;
-# the query must be in binlog (no surprise though)
-source include/show_binlog_events.inc;
 
 # cleanup bug#29136
 drop table t1, t2, t3;
+
+#
+# Add further tests from here
+#
 
 
 --echo end of tests
diff -Nrup a/sql/log_event.cc b/sql/log_event.cc
--- a/sql/log_event.cc	2007-10-13 16:51:12 +03:00
+++ b/sql/log_event.cc	2007-10-13 21:57:52 +03:00
@@ -558,8 +558,32 @@ int Log_event::do_update_pos(Relay_log_i
     Matz: I don't think we will need this check with this refactoring.
   */
   if (rli)
-    rli->stmt_done(log_pos, when);
-
+  {
+    /*
+      bug#29309 simulation: resetting the flag to force
+      wrong behaviour of artificial event to update
+      rli->last_master_timestamp for only one time -
+      the first FLUSH LOGS in the test.
+    */
+    DBUG_EXECUTE_IF("let_first_flush_log_change_timestamp",
+                    if (debug_not_change_ts_if_art_event == 1
+                        && is_artificial_event())
+                    {
+                      debug_not_change_ts_if_art_event= 0;
+                    });
+#ifndef DBUG_OFF
+    rli->stmt_done(log_pos, 
+                   is_artificial_event() &&
+                   debug_not_change_ts_if_art_event > 0 ? 0 : when);
+#else
+    rli->stmt_done(log_pos, is_artificial_event()? 0 : when);
+#endif
+    DBUG_EXECUTE_IF("let_first_flush_log_change_timestamp",
+                    if (debug_not_change_ts_if_art_event == 0)
+                    {
+                      debug_not_change_ts_if_art_event= 2;
+                    });
+  }
   return 0;                                   // Cannot fail currently
 }
 
diff -Nrup a/sql/rpl_rli.cc b/sql/rpl_rli.cc
--- a/sql/rpl_rli.cc	2007-08-16 08:37:41 +03:00
+++ b/sql/rpl_rli.cc	2007-10-13 21:57:52 +03:00
@@ -1082,6 +1082,9 @@ bool Relay_log_info::cached_charset_comp
 void Relay_log_info::stmt_done(my_off_t event_master_log_pos,
                                   time_t event_creation_time)
 {
+#ifndef DBUG_OFF
+  extern uint debug_not_change_ts_if_art_event;
+#endif
   clear_flag(IN_STMT);
 
   /*
@@ -1121,7 +1124,12 @@ void Relay_log_info::stmt_done(my_off_t 
       is that value may take some time to display in
       Seconds_Behind_Master - not critical).
     */
-    last_master_timestamp= event_creation_time;
+#ifndef DBUG_OFF
+    if (!(event_creation_time == 0 && debug_not_change_ts_if_art_event > 0))
+#else
+      if (event_creation_time != 0)
+#endif
+        last_master_timestamp= event_creation_time;
   }
 }
 
diff -Nrup a/sql/sql_delete.cc b/sql/sql_delete.cc
--- a/sql/sql_delete.cc	2007-10-13 15:58:06 +03:00
+++ b/sql/sql_delete.cc	2007-10-13 21:57:52 +03:00
@@ -758,9 +758,9 @@ void multi_delete::send_error(uint errco
     */
     if (mysql_bin_log.is_open())
     {
-      Query_log_event qinfo(thd, thd->query, thd->query_length,
-                            transactional_tables, FALSE);
-      mysql_bin_log.write(&qinfo);
+      thd->binlog_query(THD::ROW_QUERY_TYPE,
+                        thd->query, thd->query_length,
+                        transactional_tables, FALSE);
     }
     thd->transaction.all.modified_non_trans_table= true;
   }
Thread
bk commit into 5.1 tree (aelkin:1.2575) BUG#29309Andrei Elkin13 Oct