List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:September 24 2009 11:10am
Subject:bzr commit into mysql-5.1-telco-6.2 branch (aelkin:2995) Bug#47037
View as plain text  
#At file:///home/andrei/MySQL/BZR/mysql-5.1-telco-6.2/ based on revid:aelkin@stripped

 2995 Andrei Elkin	2009-09-24 [merge]
      merging from the repository to local 6.2 with fixes for bug#47037

    added:
      mysql-test/suite/rpl_ndb/r/rpl_ndb_slave_lsu.result
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.cnf
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc
      mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.cnf
      mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.test
      mysql-test/suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc
    modified:
      mysql-test/include/restart_mysqld.inc
      mysql-test/suite/ndb/r/ndb_alter_table_online.result
      mysql-test/suite/ndb/r/ndb_multi.result
      mysql-test/suite/ndb/t/ndb_alter_table_online.test
      mysql-test/suite/ndb/t/ndb_multi.test
      mysql-test/suite/ndb_binlog/r/ndb_binlog_ddl_multi.result
      mysql-test/suite/ndb_binlog/r/ndb_binlog_log_bin.result
      mysql-test/suite/ndb_binlog/r/ndb_binlog_multi.result
      mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
      sql/ha_ndbcluster.cc
      sql/ha_ndbcluster_binlog.cc
      sql/ha_ndbcluster_binlog.h
      storage/ndb/src/kernel/blocks/ERROR_codes.txt
      storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
      storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
      storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
      storage/ndb/src/ndbapi/Ndb.cpp
      storage/ndb/test/ndbapi/testNdbApi.cpp
      storage/ndb/test/ndbapi/testNodeRestart.cpp
      storage/ndb/test/run-test/autotest-run.sh
      storage/ndb/test/run-test/daily-basic-tests.txt
      storage/ndb/test/run-test/daily-devel-tests.txt
      storage/ndb/test/src/UtilTransactions.cpp
=== modified file 'mysql-test/include/restart_mysqld.inc'
--- a/mysql-test/include/restart_mysqld.inc	2008-12-25 09:53:24 +0000
+++ b/mysql-test/include/restart_mysqld.inc	2009-09-21 11:15:35 +0000
@@ -1,7 +1,11 @@
+if (!`SELECT LENGTH("$mysqld_name")`)
+{
+  let $mysqld_name=mysqld.1;
+}
 
 # Write file to make mysql-test-run.pl expect the "crash", but don't start
 # it until it's told to
---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_file $MYSQLTEST_VARDIR/tmp/$mysqld_name.expect
 wait
 EOF
 
@@ -10,7 +14,7 @@ EOF
 shutdown_server 10;
 
 # Write file to make mysql-test-run.pl start up the server again
---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--append_file $MYSQLTEST_VARDIR/tmp/$mysqld_name.expect
 restart
 EOF
 
@@ -22,4 +26,3 @@ EOF
 
 # Turn off reconnect again
 --disable_reconnect
-

=== modified file 'mysql-test/suite/ndb/r/ndb_alter_table_online.result'
--- a/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2009-05-08 14:43:21 +0000
+++ b/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2009-09-14 08:33:38 +0000
@@ -682,6 +682,30 @@ CREATE TABLE t1
 b INT COLUMN_FORMAT FIXED)ROW_FORMAT=DYNAMIC ENGINE=NDB;
 pk1 Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
 b Int NULL AT=FIXED ST=MEMORY
+DROP TABLE t1;
+********************
+* bug#44695 ALTER TABLE during START BACKUP crashes mysqld     
+********************
+CREATE TABLE t1(k INT NOT NULL PRIMARY KEY AUTO_INCREMENT) ROW_FORMAT=DYNAMIC ENGINE=NDB;
+INSERT INTO t1 VALUES (NULL);
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+16384
+ALTER ONLINE TABLE t1 ADD b INT;
 ********************
 * Cleanup Section
 ********************

=== modified file 'mysql-test/suite/ndb/r/ndb_multi.result'
--- a/mysql-test/suite/ndb/r/ndb_multi.result	2007-11-12 10:42:37 +0000
+++ b/mysql-test/suite/ndb/r/ndb_multi.result	2009-09-17 13:53:38 +0000
@@ -143,3 +143,39 @@ show tables like '%$%';
 Tables_in_test (%$%)
 show tables like '%$%';
 Tables_in_test (%$%)
+create table t1(s char(1)) engine = myisam;
+insert into t1 values ("a"),("b"),("c");
+create table t1(s char(1)) engine = ndb;
+insert into t1 values ("d"),("e"),("f");
+Restarting mysqld
+use test;
+select * from t1 order by s;
+s
+a
+b
+c
+select * from t1 order by s;
+s
+d
+e
+f
+drop table t1;
+select * from t1 order by s;
+s
+a
+b
+c
+create table t1(s char(1)) engine = ndb;
+insert into t1 values ("g"),("h"),("i");
+show tables;
+Tables_in_test
+t1
+Warnings:
+Warning	1050	Local table test.t1 shadows ndb table
+select * from t1 order by s;
+s
+a
+b
+c
+drop table t1;
+drop table t1;

=== modified file 'mysql-test/suite/ndb/t/ndb_alter_table_online.test'
--- a/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2009-02-16 08:00:56 +0000
+++ b/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2009-09-14 08:33:38 +0000
@@ -732,6 +732,39 @@ b INT COLUMN_FORMAT FIXED)ROW_FORMAT=DYN
 
 --exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'AT='
 
+DROP TABLE t1;
+
+--echo ********************
+--echo * bug#44695 ALTER TABLE during START BACKUP crashes mysqld     
+--echo ********************
+# Testing failure of online alter during ongoing backup
+
+CREATE TABLE t1(k INT NOT NULL PRIMARY KEY AUTO_INCREMENT) ROW_FORMAT=DYNAMIC ENGINE=NDB;
+# create some data to slow down backup
+INSERT INTO t1 VALUES (NULL);
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+INSERT INTO t1 SELECT NULL FROM t1;
+SELECT COUNT(*) FROM t1;
+--exec $NDB_MGM --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING" -e "start backup nowait" >> $NDB_TOOLS_OUTPUT
+--disable_warnings
+--error 0,762,1296
+ALTER ONLINE TABLE t1 ADD b INT;
+# waut for backup to complete
+--sleep 10
+
+--enable_warnings
 --echo ********************
 --echo * Cleanup Section
 --echo ********************

=== modified file 'mysql-test/suite/ndb/t/ndb_multi.test'
--- a/mysql-test/suite/ndb/t/ndb_multi.test	2007-11-12 10:42:37 +0000
+++ b/mysql-test/suite/ndb/t/ndb_multi.test	2009-09-17 13:53:38 +0000
@@ -152,3 +152,39 @@ show tables like '%$%';
 
 connection server1;
 show tables like '%$%';
+
+#
+# Bug #42614 Mysql auto locate databases can overwrite frm data.
+#
+connection server1;
+create table t1(s char(1)) engine = myisam;
+insert into t1 values ("a"),("b"),("c");
+connection server2;
+create table t1(s char(1)) engine = ndb;
+insert into t1 values ("d"),("e"),("f");
+connection server1;
+## Restart mysqld nodes
+--echo Restarting mysqld
+let $mysqld_name=mysqld.1.1;
+--source include/restart_mysqld.inc
+use test;
+select * from t1 order by s;
+connection server2;
+select * from t1 order by s;
+drop table t1;
+connection server1;
+select * from t1 order by s;
+connection server2;
+create table t1(s char(1)) engine = ndb;
+insert into t1 values ("g"),("h"),("i");
+connection server1;
+show tables;
+select * from t1 order by s;
+
+#
+# Clean-up
+#
+connection server1;
+drop table t1;
+connection server2;
+drop table t1;
\ No newline at end of file

=== modified file 'mysql-test/suite/ndb_binlog/r/ndb_binlog_ddl_multi.result'
--- a/mysql-test/suite/ndb_binlog/r/ndb_binlog_ddl_multi.result	2009-02-01 21:05:19 +0000
+++ b/mysql-test/suite/ndb_binlog/r/ndb_binlog_ddl_multi.result	2009-09-11 10:34:36 +0000
@@ -10,14 +10,14 @@ create table t1 (a int primary key) engi
 create table t2 (a int primary key) engine=ndb;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	create database mysqltest
-mysqld-bin.000001	#	Query	1	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	create database mysqltest
+mysqld-bin.000001	#	Query	2	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
 mysqld-bin.000001	#	Query	2	#	use `test`; create table t2 (a int primary key) engine=ndb
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 mysqld-bin.000001	#	Query	1	#	create database mysqltest
 mysqld-bin.000001	#	Query	1	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
-mysqld-bin.000001	#	Query	2	#	use `test`; create table t2 (a int primary key) engine=ndb
+mysqld-bin.000001	#	Query	1	#	use `test`; create table t2 (a int primary key) engine=ndb
 reset master;
 reset master;
 alter table t2 add column (b int);
@@ -25,19 +25,19 @@ Warnings:
 Warning	1478	Converted FIXED field to DYNAMIC to enable on-line ADD COLUMN
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	2	#	use `test`; alter table t2 add column (b int)
+mysqld-bin.000001	#	Query	1	#	use `test`; alter table t2 add column (b int)
 reset master;
 reset master;
 ALTER DATABASE mysqltest CHARACTER SET latin1;
 drop table mysqltest.t1;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	2	#	ALTER DATABASE mysqltest CHARACTER SET latin1
-mysqld-bin.000001	#	Query	2	#	use `mysqltest`; drop table `mysqltest`.`t1`
+mysqld-bin.000001	#	Query	1	#	ALTER DATABASE mysqltest CHARACTER SET latin1
+mysqld-bin.000001	#	Query	1	#	use `mysqltest`; drop table `mysqltest`.`t1`
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	2	#	ALTER DATABASE mysqltest CHARACTER SET latin1
-mysqld-bin.000001	#	Query	2	#	use `mysqltest`; drop table `mysqltest`.`t1`
+mysqld-bin.000001	#	Query	1	#	ALTER DATABASE mysqltest CHARACTER SET latin1
+mysqld-bin.000001	#	Query	1	#	use `mysqltest`; drop table `mysqltest`.`t1`
 reset master;
 reset master;
 use test;
@@ -52,8 +52,8 @@ mysqld-bin.000001	#	Table_map	2	#	table_
 mysqld-bin.000001	#	Write_rows	2	#	table_id: #
 mysqld-bin.000001	#	Write_rows	2	#	table_id: # flags: STMT_END_F
 mysqld-bin.000001	#	Query	2	#	COMMIT
-mysqld-bin.000001	#	Query	1	#	drop database mysqltest
-mysqld-bin.000001	#	Query	1	#	use `test`; create table t1 (a int primary key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	drop database mysqltest
+mysqld-bin.000001	#	Query	2	#	use `test`; create table t1 (a int primary key) engine=ndb
 drop table t2;
 reset master;
 reset master;
@@ -87,63 +87,63 @@ DROP LOGFILE GROUP lg1 
 ENGINE =NDB;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	CREATE LOGFILE GROUP lg1
+mysqld-bin.000001	#	Query	2	#	CREATE LOGFILE GROUP lg1
 ADD UNDOFILE 'undofile.dat'
 INITIAL_SIZE 16M
 UNDO_BUFFER_SIZE = 1M
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	ALTER LOGFILE GROUP lg1
+mysqld-bin.000001	#	Query	2	#	ALTER LOGFILE GROUP lg1
 ADD UNDOFILE 'undofile02.dat'
 INITIAL_SIZE = 4M 
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	CREATE TABLESPACE ts1
+mysqld-bin.000001	#	Query	2	#	CREATE TABLESPACE ts1
 ADD DATAFILE 'datafile.dat'
 USE LOGFILE GROUP lg1
 INITIAL_SIZE 12M
 ENGINE NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1
 ADD DATAFILE 'datafile02.dat'
 INITIAL_SIZE = 4M 
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1 
 DROP DATAFILE 'datafile.dat' 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1 
 DROP DATAFILE 'datafile02.dat' 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	DROP TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	DROP TABLESPACE ts1 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	DROP LOGFILE GROUP lg1 
+mysqld-bin.000001	#	Query	2	#	DROP LOGFILE GROUP lg1 
 ENGINE =NDB
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	CREATE LOGFILE GROUP lg1
+mysqld-bin.000001	#	Query	2	#	CREATE LOGFILE GROUP lg1
 ADD UNDOFILE 'undofile.dat'
 INITIAL_SIZE 16M
 UNDO_BUFFER_SIZE = 1M
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	ALTER LOGFILE GROUP lg1
+mysqld-bin.000001	#	Query	2	#	ALTER LOGFILE GROUP lg1
 ADD UNDOFILE 'undofile02.dat'
 INITIAL_SIZE = 4M 
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	CREATE TABLESPACE ts1
+mysqld-bin.000001	#	Query	2	#	CREATE TABLESPACE ts1
 ADD DATAFILE 'datafile.dat'
 USE LOGFILE GROUP lg1
 INITIAL_SIZE 12M
 ENGINE NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1
 ADD DATAFILE 'datafile02.dat'
 INITIAL_SIZE = 4M 
 ENGINE=NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1 
 DROP DATAFILE 'datafile.dat' 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	ALTER TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	ALTER TABLESPACE ts1 
 DROP DATAFILE 'datafile02.dat' 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	DROP TABLESPACE ts1 
+mysqld-bin.000001	#	Query	2	#	DROP TABLESPACE ts1 
 ENGINE = NDB
-mysqld-bin.000001	#	Query	1	#	DROP LOGFILE GROUP lg1 
+mysqld-bin.000001	#	Query	2	#	DROP LOGFILE GROUP lg1 
 ENGINE =NDB
 drop table t1;
 reset master;
@@ -158,13 +158,13 @@ create table t3 (a int key) engine=ndb;
 rename table t3 to t4, t2 to t3, t1 to t2, t4 to t1;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	use `test`; create table t1 (a int key) engine=ndb
-mysqld-bin.000001	#	Query	1	#	use `test`; create table t2 (a int key) engine=ndb
-mysqld-bin.000001	#	Query	1	#	use `test`; create table t3 (a int key) engine=ndb
-mysqld-bin.000001	#	Query	1	#	use `test`; rename table `test`.`t3` to `test`.`t4`
-mysqld-bin.000001	#	Query	1	#	use `test`; rename table `test`.`t2` to `test`.`t3`
-mysqld-bin.000001	#	Query	1	#	use `test`; rename table `test`.`t1` to `test`.`t2`
-mysqld-bin.000001	#	Query	1	#	use `test`; rename table `test`.`t4` to `test`.`t1`
+mysqld-bin.000001	#	Query	2	#	use `test`; create table t1 (a int key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `test`; create table t2 (a int key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `test`; create table t3 (a int key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `test`; rename table `test`.`t3` to `test`.`t4`
+mysqld-bin.000001	#	Query	2	#	use `test`; rename table `test`.`t2` to `test`.`t3`
+mysqld-bin.000001	#	Query	2	#	use `test`; rename table `test`.`t1` to `test`.`t2`
+mysqld-bin.000001	#	Query	2	#	use `test`; rename table `test`.`t4` to `test`.`t1`
 drop table t1;
 drop table t2;
 drop table t3;
@@ -181,14 +181,14 @@ insert into t2 values(2);
 drop table t2;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	use `test`; create table t1 (a int key) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `test`; create table t1 (a int key) engine=ndb
 mysqld-bin.000001	#	Query	2	#	BEGIN
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (test.t1)
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (mysql.ndb_apply_status)
 mysqld-bin.000001	#	Write_rows	2	#	table_id: #
 mysqld-bin.000001	#	Write_rows	2	#	table_id: # flags: STMT_END_F
 mysqld-bin.000001	#	Query	2	#	COMMIT
-mysqld-bin.000001	#	Query	1	#	use `test`; rename table `test`.`t1` to `test`.`t2`
+mysqld-bin.000001	#	Query	2	#	use `test`; rename table `test`.`t1` to `test`.`t2`
 mysqld-bin.000001	#	Query	2	#	BEGIN
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (test.t2)
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (mysql.ndb_apply_status)

=== modified file 'mysql-test/suite/ndb_binlog/r/ndb_binlog_log_bin.result'
--- a/mysql-test/suite/ndb_binlog/r/ndb_binlog_log_bin.result	2009-02-01 21:05:19 +0000
+++ b/mysql-test/suite/ndb_binlog/r/ndb_binlog_log_bin.result	2009-09-11 10:34:36 +0000
@@ -53,10 +53,10 @@ use mysqltest;
 insert into t2 values (1,1);
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	1	#	use `mysqltest`; drop table `mysqltest`.`t1`
-mysqld-bin.000001	#	Query	1	#	use `mysqltest`; drop table `mysqltest`.`t2`
-mysqld-bin.000001	#	Query	1	#	use `mysqltest`; create table t1 (d int key, e int) engine=ndb
-mysqld-bin.000001	#	Query	1	#	use `mysqltest`; create table t2 (d int key, e int) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `mysqltest`; drop table `mysqltest`.`t1`
+mysqld-bin.000001	#	Query	2	#	use `mysqltest`; drop table `mysqltest`.`t2`
+mysqld-bin.000001	#	Query	2	#	use `mysqltest`; create table t1 (d int key, e int) engine=ndb
+mysqld-bin.000001	#	Query	2	#	use `mysqltest`; create table t2 (d int key, e int) engine=ndb
 mysqld-bin.000001	#	Query	2	#	BEGIN
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (mysqltest.t1)
 mysqld-bin.000001	#	Table_map	2	#	table_id: # (mysql.ndb_apply_status)

=== modified file 'mysql-test/suite/ndb_binlog/r/ndb_binlog_multi.result'
--- a/mysql-test/suite/ndb_binlog/r/ndb_binlog_multi.result	2009-02-01 21:05:19 +0000
+++ b/mysql-test/suite/ndb_binlog/r/ndb_binlog_multi.result	2009-09-11 10:34:36 +0000
@@ -30,7 +30,7 @@ a	b
 DROP TABLE t2;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000001	#	Query	2	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
+mysqld-bin.000001	#	Query	1	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
 mysqld-bin.000001	#	Query	1	#	BEGIN
 mysqld-bin.000001	#	Table_map	1	#	table_id: # (test.t2)
 mysqld-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)

=== modified file 'mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result'
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result	2009-09-09 18:32:00 +0000
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result	2009-09-24 11:10:22 +0000
@@ -58,6 +58,31 @@ Last_SQL_Errno	0
 Last_SQL_Error	
 Replicate_Ignore_Server_Ids	
 Master_Server_Id	1
+Slave Binlog contains all ops as log_slave_updates is on
+show variables like 'server_id';
+Variable_name	Value
+server_id	2
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	ON
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-bin.000001	#	Query	2	#	use `test`; CREATE TABLE t1 (a int key, b int) ENGINE=ndb
+slave-bin.000001	#	Query	2	#	BEGIN
+slave-bin.000001	#	Table_map	2	#	table_id: # (test.t1)
+slave-bin.000001	#	Table_map	2	#	table_id: # (mysql.ndb_apply_status)
+slave-bin.000001	#	Write_rows	2	#	table_id: #
+slave-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-bin.000001	#	Query	2	#	COMMIT
+slave-bin.000001	#	Query	2	#	BEGIN
+slave-bin.000001	#	Table_map	2	#	table_id: # (test.t1)
+slave-bin.000001	#	Table_map	2	#	table_id: # (mysql.ndb_apply_status)
+slave-bin.000001	#	Write_rows	2	#	table_id: #
+slave-bin.000001	#	Write_rows	2	#	table_id: # flags: STMT_END_F
+slave-bin.000001	#	Query	2	#	COMMIT
 SELECT * FROM t1 ORDER BY a;
 a	b
 1	2
@@ -103,5 +128,23 @@ Last_SQL_Errno	0
 Last_SQL_Error	
 Replicate_Ignore_Server_Ids	
 Master_Server_Id	2
+Master Binlog contains only Master ops as log_slave_updates is off
+show variables like 'server_id';
+Variable_name	Value
+server_id	1
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.t1)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
 STOP SLAVE;
 DROP TABLE t1;

=== added file 'mysql-test/suite/rpl_ndb/r/rpl_ndb_slave_lsu.result'
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_slave_lsu.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_slave_lsu.result	2009-09-16 16:04:14 +0000
@@ -0,0 +1,808 @@
+*** Configuring connections ***
+STOP SLAVE;
+*** Waiting for each cluster to startup ***
+*** Configuring replication via Slave ***
+RESET SLAVE;
+CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=MASTER_PORT,MASTER_USER="root";;
+START SLAVE;
+*** Generating slave cluster originated binloggable changes ***
+CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_logged_1;
+CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_logged_2;
+CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_logged_3;
+***Generating slave cluster non-binloggable changes***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Generating data to be replicated ***
+CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_1 VALUES (1);
+DROP TABLE bug45756_master_logged_1;
+CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_2 VALUES (1);
+DROP TABLE bug45756_master_logged_2;
+CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_3 VALUES (1);
+DROP TABLE bug45756_master_logged_3;
+*** Generating changes not to be replicated ***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_1 VALUES (1);
+DROP TABLE bug45756_master_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_2 VALUES (1);
+DROP TABLE bug45756_master_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_3 VALUES (1);
+DROP TABLE bug45756_master_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Checking binlog contents on every server in both clusters ***
+
+
+
+connection srv_master;
+show variables like 'server_id';
+Variable_name	Value
+server_id	1
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; DROP TABLE bug45756_master_logged_1
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`
+
+
+
+connection srv_master1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	2
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_master2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	3
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_1`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; DROP TABLE bug45756_master_logged_3
+
+
+
+connection srv_slave;
+show variables like 'server_id';
+Variable_name	Value
+server_id	4
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_slave1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	5
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; DROP TABLE bug_45756_slave_logged_2
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_3`
+
+
+
+connection srv_slave2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	6
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	ON
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_2`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; DROP TABLE bug_45756_slave_logged_3
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_1`
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`
+*** Configuring replication via Slave1 ***
+STOP SLAVE;
+STOP SLAVE;
+RESET SLAVE;
+CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=MASTER_PORT,MASTER_USER="root";
+START SLAVE;
+*** Generating slave cluster originated binloggable changes ***
+CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_logged_1;
+CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_logged_2;
+CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_logged_3;
+***Generating slave cluster non-binloggable changes***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Generating data to be replicated ***
+CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_1 VALUES (1);
+DROP TABLE bug45756_master_logged_1;
+CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_2 VALUES (1);
+DROP TABLE bug45756_master_logged_2;
+CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_3 VALUES (1);
+DROP TABLE bug45756_master_logged_3;
+*** Generating changes not to be replicated ***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_1 VALUES (1);
+DROP TABLE bug45756_master_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_2 VALUES (1);
+DROP TABLE bug45756_master_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_3 VALUES (1);
+DROP TABLE bug45756_master_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Checking binlog contents on every server in both clusters ***
+
+
+
+connection srv_master;
+show variables like 'server_id';
+Variable_name	Value
+server_id	1
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; DROP TABLE bug45756_master_logged_1
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`
+
+
+
+connection srv_master1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	2
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_master2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	3
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_1`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; DROP TABLE bug45756_master_logged_3
+
+
+
+connection srv_slave;
+show variables like 'server_id';
+Variable_name	Value
+server_id	4
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_slave1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	5
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; DROP TABLE bug_45756_slave_logged_2
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_3`
+
+
+
+connection srv_slave2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	6
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	ON
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_2`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; DROP TABLE bug_45756_slave_logged_3
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_1`
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`
+*** Configuring replication via Slave2 ***
+STOP SLAVE;
+STOP SLAVE;
+RESET SLAVE;
+CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=MASTER_PORT,MASTER_USER="root";;
+START SLAVE;
+*** Generating slave cluster originated binloggable changes ***
+CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_logged_1;
+CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_logged_2;
+CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_logged_3;
+***Generating slave cluster non-binloggable changes***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Generating data to be replicated ***
+CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_1 VALUES (1);
+DROP TABLE bug45756_master_logged_1;
+CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_2 VALUES (1);
+DROP TABLE bug45756_master_logged_2;
+CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_3 VALUES (1);
+DROP TABLE bug45756_master_logged_3;
+*** Generating changes not to be replicated ***
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_1 VALUES (1);
+DROP TABLE bug45756_master_not_logged_1;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_2 VALUES (1);
+DROP TABLE bug45756_master_not_logged_2;
+SET SQL_LOG_BIN= 1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_3 VALUES (1);
+DROP TABLE bug45756_master_not_logged_3;
+SET SQL_LOG_BIN= 1;
+*** Checking binlog contents on every server in both clusters ***
+
+
+
+connection srv_master;
+show variables like 'server_id';
+Variable_name	Value
+server_id	1
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; DROP TABLE bug45756_master_logged_1
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	1	#	BEGIN
+master-bin.000001	#	Table_map	1	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	1	#	table_id: #
+master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	1	#	COMMIT
+master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`
+
+
+
+connection srv_master1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	2
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_master2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	3
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_1)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_1`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_2)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+master-bin.000001	#	Query	3	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+master-bin.000001	#	Query	3	#	BEGIN
+master-bin.000001	#	Table_map	3	#	table_id: # (test.bug45756_master_logged_3)
+master-bin.000001	#	Table_map	3	#	table_id: # (mysql.ndb_apply_status)
+master-bin.000001	#	Write_rows	3	#	table_id: #
+master-bin.000001	#	Write_rows	3	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	3	#	COMMIT
+master-bin.000001	#	Query	3	#	use `test`; DROP TABLE bug45756_master_logged_3
+
+
+
+connection srv_slave;
+show variables like 'server_id';
+Variable_name	Value
+server_id	4
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	OFF
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+
+
+
+connection srv_slave1;
+show variables like 'server_id';
+Variable_name	Value
+server_id	5
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	OFF
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; DROP TABLE bug_45756_slave_logged_2
+slave-master-bin.000001	#	Query	5	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	5	#	BEGIN
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	5	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	5	#	table_id: #
+slave-master-bin.000001	#	Write_rows	5	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	5	#	COMMIT
+slave-master-bin.000001	#	Query	5	#	use `test`; drop table `test`.`bug_45756_slave_logged_3`
+
+
+
+connection srv_slave2;
+show variables like 'server_id';
+Variable_name	Value
+server_id	6
+show variables like 'log_bin';
+Variable_name	Value
+log_bin	ON
+show variables like 'log_slave_updates';
+Variable_name	Value
+log_slave_updates	ON
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_1`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; drop table `test`.`bug_45756_slave_logged_2`
+slave-master-bin.000001	#	Query	6	#	use `test`; CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug_45756_slave_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	6	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	6	#	use `test`; DROP TABLE bug_45756_slave_logged_3
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_1)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; DROP TABLE bug45756_master_logged_1
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_2)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_2`
+slave-master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB
+slave-master-bin.000001	#	Query	6	#	BEGIN
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (test.bug45756_master_logged_3)
+slave-master-bin.000001	#	Table_map	6	#	table_id: # (mysql.ndb_apply_status)
+slave-master-bin.000001	#	Write_rows	6	#	table_id: #
+slave-master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
+slave-master-bin.000001	#	Query	6	#	COMMIT
+slave-master-bin.000001	#	Query	1	#	use `test`; drop table `test`.`bug45756_master_logged_3`

=== modified file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test	2008-03-14 14:42:27 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test	2009-09-11 15:39:22 +0000
@@ -25,6 +25,8 @@ SHOW TABLES;
 # insert some values on the slave and master
 --connection master
 INSERT INTO t1 VALUES (1,2);
+# Give time to propagate + close epoch, to ensure deterministic Binlog contents
+--sleep 1
 --connection slave
 INSERT INTO t1 VALUES (2,3);
 
@@ -42,6 +44,13 @@ SELECT * FROM t1 ORDER BY a;
 # BUG#34654 Last_IO_Errno is not reset - Mask columns 35 and 36
 --replace_column 1 # 4 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
 --query_vertical show slave status;
+
+--echo Slave Binlog contains all ops as log_slave_updates is on
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
 # connect to master and ensure data it there.
 --connection master
 SELECT * FROM t1 ORDER BY a;
@@ -50,6 +59,12 @@ SELECT * FROM t1 ORDER BY a;
 --replace_column 1 # 4 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
 --query_vertical show slave status;
 
+--echo Master Binlog contains only Master ops as log_slave_updates is off
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
 # stop replication on "master" as not to replicate
 # shutdown circularly, eg drop table
 --connection master

=== modified file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf	2008-10-31 14:11:44 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf	2009-09-11 10:34:36 +0000
@@ -1,16 +1,27 @@
 !include ../my.cnf
 
+# 2 clusters, each with 2 MySQLDs
+# All MySQLDs log-slave-updates
+# Potential infinite loops are broken by both servers 
+# on each cluster having the same server-id
+# To support > 2 clusters and/or different server-ids per
+# MySQLD server, we need some other loop breaking 
+# mechanism 
+
 [mysqld.1.1]
 server-id= 1
 log-bin
+log-slave-updates
 
 [mysqld.2.1]
 server-id= 1
 log-bin
+log-slave-updates
 
 [mysqld.1.slave]
 server-id= 2
 log-bin
+log-slave-updates
 skip-slave-start
 
 [mysqld.2.slave]
@@ -22,6 +33,7 @@ master-user=		@mysqld.2.1.#user
 master-connect-retry=	1
 init-rpl-role=		slave
 log-bin
+log-slave-updates
 skip-slave-start
 ndb_connectstring=	@mysql_cluster.slave.ndb_connectstring
 

=== added file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.cnf'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.cnf	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.cnf	2009-09-16 16:04:14 +0000
@@ -0,0 +1,112 @@
+!include include/default_ndbd.cnf
+
+[cluster_config.1]
+# NoOfReplicas refers to NDBD nodes/nodegroup
+NoOfReplicas=                  2
+ndbd=,
+ndb_mgmd=
+# 3 MySQLDS attached to Cluster 1
+mysqld=,,                   
+
+
+
+[cluster_config.slave]
+# NoOfReplicas refers to NDBD nodes/nodegroup
+NoOfReplicas=                  2
+ndbd=,
+ndb_mgmd=
+# 3 MySQLDs attached to Cluster 2
+mysqld=,,
+
+
+
+[mysqld]
+open-files-limit=           1024
+local-infile
+default-character-set=      latin1
+connect-timeout=            60
+log-bin-trust-function-creators=1
+key_buffer_size=            1M
+sort_buffer=                256K
+max_heap_table_size=        1M
+loose-innodb_data_file_path=      ibdata1:10M:autoextend
+slave-net-timeout=120
+ndbcluster
+
+
+
+[mysqld.1.1]
+server-id= 1
+log-bin= master-bin
+binlog_format=row
+
+
+
+[mysqld.2.1]
+server-id= 2
+# Note no binary log
+
+
+
+[mysqld.3.1]
+server-id= 3
+log-bin= master-bin
+binlog_format=row
+
+
+
+[mysqld.1.slave]
+# Note no binlog on this slave
+server-id= 4
+init-rpl-role= slave
+skip-slave-start
+loose-skip-innodb
+slave-load-tmpdir= ../../../tmp
+ndb_connectstring= @mysql_cluster.slave.ndb_connectstring
+
+
+
+[mysqld.2.slave]
+# Note binlog on this slave, but not logging slave updates
+server-id= 5
+init-rpl-role= slave
+skip-slave-start
+loose-skip-innodb
+slave-load-tmpdir= ../../../tmp
+ndb_connectstring= @mysql_cluster.slave.ndb_connectstring
+log-bin= slave-master-bin
+binlog_format=row
+
+
+
+[mysqld.3.slave]
+# Note binlog on this slave, with slave updates logged
+server-id= 6
+init-rpl-role= slave
+skip-slave-start
+loose-skip-innodb
+slave-load-tmpdir= ../../../tmp
+ndb_connectstring= @mysql_cluster.slave.ndb_connectstring
+log-bin= slave-master-bin
+binlog_format=row
+log-slave-updates
+
+
+
+[ENV]
+MASTER_MYPORT= @mysqld.1.1.port
+MASTER_MYPORT1= @mysqld.2.1.port
+MASTER_MYSOCK1= @mysqld.2.1.socket
+MASTER_MYPORT2= @mysqld.3.1.port
+MASTER_MYSOCK2= @mysqld.3.1.socket
+SLAVE_MYPORT= @mysqld.1.slave.port
+SLAVE_MYSOCK= @mysqld.1.slave.socket
+SLAVE_MYPORT1= @mysqld.2.slave.port
+SLAVE_MYSOCK1= @mysqld.2.slave.socket
+SLAVE_MYPORT2= @mysqld.3.slave.port
+SLAVE_MYSOCK2= @mysqld.3.slave.socket
+
+
+NDB_CONNECTSTRING= @mysql_cluster.1.ndb_connectstring
+NDB_CONNECTSTRING_SLAVE= @mysql_cluster.slave.ndb_connectstring
+NDB_BACKUP_DIR= @cluster_config.ndbd.1.1.BackupDataDir

=== added file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc	2009-09-16 16:04:14 +0000
@@ -0,0 +1,196 @@
+###############################################################################
+# Description: Performs binloggable and non binloggable DDL and DML at each
+#              MySQLD in pair of clusters with (at least) 3 MySQLDs each.
+#              Then connects to each MySQLD and examines the contents of
+#              its Binlog.
+#              Expected contents depends on the configuration of Binlogging
+#              in the cluster used.
+#              Default from rpl_ndb_multi_binlog_update.test is as shown
+#              below. 
+# 
+# Testing scenario: Cluster 1 replicates to Cluster 2
+#
+#  Key : BL= Binlogging, LSU = LogSlaveUpdates = On
+#
+#                       BL                        BL
+#  cluster 1 [  srv_master  srv_master1  srv_master2  ]
+#                   |
+#                   |-----------------------
+#                   v          v            v
+#  cluster 2 [  srv_slave  srv_slave1  srv_slave2 ]
+#                                  BL      BL LSU
+#
+#  Cluster 1:
+#  - Schema change originates on all severs in Cluster 1
+#  - MySQLD1 which is binlogging master. 
+#    Identification: connection (srv_master), config (mysqld.1.1).
+#  - MySQLD2 which is not binlogging.
+#    Identification: connection (srv_master1), config (mysqld.1.2).
+#  - MySQLD3 which is binlogging but not currently master.
+#    Identification: connection (srv_master2), config (mysqld.1.3).
+#
+#  Cluster 2:
+#  - MySQLD1: 
+#    Can act as slave, not binlogging
+#    Identification: connection (srv_slave), config (mysqld.1.slave).
+#  - MySQLD2: 
+#    Can act as slave, binlogging, log-slave-updates = off
+#    Identification: connection (srv_slave1), config (mysqld.2.slave).
+#  - MySQLD3 
+#    Can act as slave, binlogging, log-slave-updates = on
+#    Identification: connection (srv_slave2), config (mysqld.3.slave).
+#
+# See rpl_ndb_multi_binlog_update.test for default configuration.
+# Originally motivated by bug#45756
+# See rpl_ndb_slave_lsu.test for full testcase
+#
+# Preconditions :
+#   - Connections srv_master, srv_master1, srv_master2, srv_slave, 
+#     srv_slave1, srv_slave2 exist.
+#   - $which_slave contains the name of the slave server performing
+#     the replication slave role.
+#
+###############################################################################
+
+###############################################################################
+#                            Checking Replication
+###############################################################################
+--echo *** Generating slave cluster originated binloggable changes ***
+connection srv_slave;
+CREATE TABLE bug_45756_slave_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_logged_1;
+
+connection srv_slave1;
+CREATE TABLE bug_45756_slave_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_logged_2;
+
+connection srv_slave2;
+CREATE TABLE bug_45756_slave_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_logged_3;
+
+--echo ***Generating slave cluster non-binloggable changes***
+connection srv_slave;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_1 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_1;
+SET SQL_LOG_BIN= 1;
+
+connection srv_slave1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_2 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_2;
+SET SQL_LOG_BIN= 1;
+
+connection srv_slave2;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug_45756_slave_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug_45756_slave_not_logged_3 VALUES (1);
+DROP TABLE bug_45756_slave_not_logged_3;
+SET SQL_LOG_BIN= 1;
+
+--echo *** Generating data to be replicated ***
+connection srv_master;
+CREATE TABLE bug45756_master_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_1 VALUES (1);
+DROP TABLE bug45756_master_logged_1;
+
+connection srv_master1;
+CREATE TABLE bug45756_master_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_2 VALUES (1);
+DROP TABLE bug45756_master_logged_2;
+
+connection srv_master2;
+CREATE TABLE bug45756_master_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_logged_3 VALUES (1);
+DROP TABLE bug45756_master_logged_3;
+
+--echo *** Generating changes not to be replicated ***
+connection srv_master;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_1 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_1 VALUES (1);
+DROP TABLE bug45756_master_not_logged_1;
+SET SQL_LOG_BIN= 1;
+
+connection srv_master1;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_2 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_2 VALUES (1);
+DROP TABLE bug45756_master_not_logged_2;
+SET SQL_LOG_BIN= 1;
+
+connection srv_master2;
+SET SQL_LOG_BIN= 0;
+CREATE TABLE bug45756_master_not_logged_3 (a int) engine = NDB;
+INSERT INTO bug45756_master_not_logged_3 VALUES (1);
+DROP TABLE bug45756_master_not_logged_3;
+SET SQL_LOG_BIN= 1;
+
+connection srv_master;
+sync_slave_with_master $which_slave;
+
+--echo *** Checking binlog contents on every server in both clusters ***
+connection srv_master;
+--echo 
+--echo 
+--echo 
+--echo connection srv_master;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
+connection srv_master1;
+--echo 
+--echo 
+--echo 
+--echo connection srv_master1;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
+connection srv_master2;
+--echo 
+--echo 
+--echo 
+--echo connection srv_master2;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
+connection srv_slave;
+--echo 
+--echo 
+--echo 
+--echo connection srv_slave;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
+connection srv_slave1;
+--echo 
+--echo 
+--echo 
+--echo connection srv_slave1;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc
+
+connection srv_slave2;
+--echo 
+--echo 
+--echo 
+--echo connection srv_slave2;
+show variables like 'server_id';
+show variables like 'log_bin';
+show variables like 'log_slave_updates';
+--source include/show_binlog_events2.inc

=== added file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.cnf'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.cnf	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.cnf	2009-09-16 16:04:14 +0000
@@ -0,0 +1 @@
+!include suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.cnf

=== added file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.test'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_slave_lsu.test	2009-09-16 16:04:14 +0000
@@ -0,0 +1,219 @@
+###############################################################################
+# Description: Checks if DDL and DML statements are correctly logged by
+#              servers and slave servers according to log-slave-updates,
+#              and independent of their settings on the particular MySQLD
+#              acting in the slave role
+#
+# Testing scenario: Cluster 1 replicates to Cluster 2
+#   Key : BL = log-bin, LSU = log-slave-updates
+#
+#                       BL                        BL
+#  cluster 1 [  srv_master  srv_master1  srv_master2  ]
+#                   |----------+------------
+#                   v          v           v
+#  cluster 2 [  srv_slave  srv_slave1  srv_slave2 ]
+#                                  BL     BL LSU  
+#
+#  - First replicate via srv_slave and check all nodes' Binlog contents
+#  - Second replicate via srv_slave1 and check all nodes' Binlog contents
+#  - Third replicate via srv_slave2 and check all nodes' Binlog contents
+#
+# Makes use of suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc
+# Originally motivated by bug#45756
+###############################################################################
+
+--source include/have_ndb.inc
+--source include/have_log_bin.inc
+
+###############################################################################
+#                           Configuring Environment
+###############################################################################
+--echo *** Configuring connections ***
+
+connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
+connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
+
+connect (srv_master,127.0.0.1,root,,test,$MASTER_MYPORT,);
+connect (srv_master1,127.0.0.1,root,,test,$MASTER_MYPORT1,);
+connect (srv_master2,127.0.0.1,root,,test,$MASTER_MYPORT2,);
+connect (srv_slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
+connect (srv_slave1,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
+connect (srv_slave2,127.0.0.1,root,,test,$SLAVE_MYPORT2,);
+
+connection slave;
+--disable_warnings
+STOP SLAVE;
+source include/wait_for_slave_to_stop.inc;
+--enable_warnings
+
+--echo *** Waiting for each cluster to startup ***
+
+# Check schema op binlogging enabled between servers on cluster1
+--let $source_server=srv_master
+--let $dest_server=srv_master2
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_master1
+--let $dest_server=srv_master
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_master1
+--let $dest_server=srv_master2
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_master2
+--let $dest_server=srv_master
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+# Check schema op binlogging enabled between servers on cluster2
+--let $source_server=srv_slave
+--let $dest_server=srv_slave1
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_slave
+--let $dest_server=srv_slave2
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_slave1
+--let $dest_server=srv_slave2
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+--let $source_server=srv_slave2
+--let $dest_server=srv_slave1
+source suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc;
+
+# Reset state of all Binlogging nodes
+--disable_query_log
+connection master;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_master2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave1;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+--enable_query_log
+
+--echo *** Configuring replication via Slave ***
+connection slave;
+--disable_warnings
+RESET SLAVE;
+--replace_result $MASTER_MYPORT MASTER_PORT
+--eval CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=$MASTER_MYPORT,MASTER_USER="root";
+START SLAVE;
+source include/wait_for_slave_to_start.inc;
+--enable_warnings
+
+--let $which_slave=srv_slave
+--source suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc
+
+
+
+--echo *** Configuring replication via Slave1 ***
+connection slave;
+--disable_warnings
+STOP SLAVE;
+source include/wait_for_slave_to_stop.inc;
+--enable_warnings
+
+connection srv_slave1;
+--disable_warnings
+STOP SLAVE;
+source include/wait_for_slave_to_stop.inc;
+--enable_warnings
+
+# Reset state of all Binlogging nodes
+--disable_query_log
+connection master;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_master2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave1;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+--enable_query_log
+
+connection srv_slave1;
+--disable_warnings
+RESET SLAVE;
+--replace_result $MASTER_MYPORT MASTER_PORT
+--eval CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=$MASTER_MYPORT,MASTER_USER="root"
+START SLAVE;
+source include/wait_for_slave_to_start.inc;
+--enable_warnings
+
+--let $which_slave=srv_slave1
+--source suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc
+
+
+
+--echo *** Configuring replication via Slave2 ***
+connection srv_slave1;
+--disable_warnings
+STOP SLAVE;
+source include/wait_for_slave_to_stop.inc;
+--enable_warnings
+
+connection srv_slave2;
+--disable_warnings
+STOP SLAVE;
+source include/wait_for_slave_to_stop.inc;
+--enable_warnings
+
+# Reset state of all Binlogging nodes
+--disable_query_log
+connection master;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_master2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave1;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+
+connection srv_slave2;
+--disable_warnings
+RESET MASTER;
+--enable_warnings
+--enable_query_log
+
+connection srv_slave2;
+--disable_warnings
+RESET SLAVE;
+--replace_result $MASTER_MYPORT MASTER_PORT
+--eval CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=$MASTER_MYPORT,MASTER_USER="root";
+START SLAVE;
+source include/wait_for_slave_to_start.inc;
+--enable_warnings
+
+--let $which_slave=srv_slave2
+--source suite/rpl_ndb/t/rpl_ndb_multi_binlog_update.inc

=== added file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_wait_schema_logging.inc	2009-09-16 16:04:14 +0000
@@ -0,0 +1,78 @@
+# suite/t/rpl_ndb/rpl_ndb_wait_schema_logging.inc
+#
+# SUMMARY
+#   Waits until schema op performed on $source_server is
+#   being logged by $dest_server
+#   Assumes that source_server and dest_server are connected
+#   to the same cluster
+#   Assumes that $dest_server has binlogging enabled.
+#
+###############################################################
+# Include file to wait for schema logging setup, where schema
+# changes made on $source_server are logged on $dest_server
+###############################################################
+
+connection $dest_server;
+
+#--echo Waiting for schema event logging to be active between $source_server and $dest_server
+#--echo - First check that $dest_server has binary logging enabled
+
+let $binlog= query_get_value(show variables like 'log_bin', Value, 1);
+if (`SELECT "$binlog" != "ON"`)
+{
+  show variables like 'server_id';
+  show variables like 'log_bin';
+  --die ERROR: Binlogging not activated
+}
+
+--disable_query_log
+RESET MASTER;
+--enable_query_log
+
+# Following code 'inspired' by include/wait_for_binlog_event.inc
+
+--let $wait_binlog_event=drop table
+
+let $_loop_count= 10;
+let $_event= ;
+let $_event_pos= 1;
+
+while (`SELECT INSTR("$_event","$wait_binlog_event") = 0`)
+{
+  #--echo loop_count is $_loop_count;
+  dec $_loop_count;
+  if (!$_loop_count)
+  {
+    SHOW BINLOG EVENTS;
+    --die ERROR: failed while waiting local cluster schema event logging to start
+  }
+
+  connection $source_server;
+  --disable_query_log
+  create table rpl_ndb_wait_schema_logging (a int primary key) engine=ndb;
+  drop table rpl_ndb_wait_schema_logging;
+  --enable_query_log
+  connection $dest_server;
+
+  let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
+  #--echo Event is : $_event
+  while (`SELECT ("$_event" != "No such row") and (INSTR("$_event", "$wait_binlog_event") = 0)`)
+  {
+    inc $_event_pos;
+    let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
+    #--echo Event did not match- next event is $_event;
+  }
+}
+
+# Since we're attached to the same cluster, if we've seen the event
+# then synchronous binlogging of changes is on (i.e. synchronous with
+# the original schema change)
+# Therefore it should now be safe to reset the master on the destination
+# server as no more binlog changes are in-flight.
+connection $dest_server;
+
+--disable_query_log
+RESET MASTER;
+--enable_query_log
+
+#--echo - Schema event logging is active

=== modified file 'sql/ha_ndbcluster.cc'
--- a/sql/ha_ndbcluster.cc	2009-09-08 11:02:48 +0000
+++ b/sql/ha_ndbcluster.cc	2009-09-17 13:53:38 +0000
@@ -7063,7 +7063,17 @@ int ndbcluster_discover(handlerton *hton
       goto err;
     }
   }
-
+#ifdef HAVE_NDB_BINLOG
+  if (ndbcluster_check_if_local_table(db, name))
+  {
+    DBUG_PRINT("info", ("ndbcluster_discover: Skipping locally defined table '%s.%s'",
+                        db, name));
+    sql_print_error("ndbcluster_discover: Skipping locally defined table '%s.%s'",
+                    db, name);
+    error= 1;
+    goto err;
+  }
+#endif
   *frmlen= len;
   *frmblob= data;
   
@@ -10850,6 +10860,7 @@ int ha_ndbcluster::alter_frm(THD *thd, c
     my_free((char*)data, MYF(MY_ALLOW_ZERO_PTR));
     my_free((char*)pack_data, MYF(MY_ALLOW_ZERO_PTR));
     error= 1;
+    my_error(ER_FILE_NOT_FOUND, MYF(0), file); 
   }
   else
   {
@@ -10863,6 +10874,7 @@ int ha_ndbcluster::alter_frm(THD *thd, c
     {
       DBUG_PRINT("info", ("On-line alter of table %s failed", m_tabname));
       error= ndb_to_mysql_error(&dict->getNdbError());
+      my_error(error, MYF(0));
     }
     my_free((char*)data, MYF(MY_ALLOW_ZERO_PTR));
     my_free((char*)pack_data, MYF(MY_ALLOW_ZERO_PTR));

=== modified file 'sql/ha_ndbcluster_binlog.cc'
--- a/sql/ha_ndbcluster_binlog.cc	2009-08-25 19:44:04 +0000
+++ b/sql/ha_ndbcluster_binlog.cc	2009-09-17 13:53:38 +0000
@@ -150,12 +150,6 @@ static NDB_SCHEMA_OBJECT *ndb_get_schema
 static void ndb_free_schema_object(NDB_SCHEMA_OBJECT **ndb_schema_object,
                                    bool have_lock);
 
-/*
-  Helper functions
-*/
-static bool ndbcluster_check_if_local_table(const char *dbname, const char *tabname);
-static bool ndbcluster_check_if_local_tables_in_db(THD *thd, const char *dbname);
-
 #ifndef DBUG_OFF
 /* purecov: begin deadcode */
 static void print_records(TABLE *table, const uchar *record)
@@ -1996,10 +1990,34 @@ int ndbcluster_log_schema_op(THD *thd,
       r|= op->setValue(SCHEMA_TYPE_I, log_type);
       DBUG_ASSERT(r == 0);
       /* any value */
-      if (!(thd->options & OPTION_BIN_LOG))
-        r|= op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
+      Uint32 anyValue;
+      if (! thd->slave_thread)
+      {
+        /* Schema change originating from this MySQLD, check SQL_LOG_BIN
+         * variable and pass 'setting' to all logging MySQLDs via AnyValue  
+         */
+        if (thd->options & OPTION_BIN_LOG) /* e.g. SQL_LOG_BIN == on */
+        {
+          DBUG_PRINT("info", ("Schema event for binlogging"));
+          anyValue = 0;
+        }
+        else
+        {
+          DBUG_PRINT("info", ("Schema event not for binlogging")); 
+          anyValue = NDB_ANYVALUE_FOR_NOLOGGING;
+        }
+      }
       else
-        r|= op->setAnyValue(thd->server_id);
+      {
+        /* Slave applying replicated schema event
+         * Pass original applier's serverId in AnyValue
+         */
+        DBUG_PRINT("info", ("Replicated schema event with original server id %d",
+                            thd->server_id));
+        anyValue = thd->server_id;
+      }
+
+      r|= op->setAnyValue(anyValue);
       DBUG_ASSERT(r == 0);
 #if 0
       if (log_db != new_db && new_db && new_table_name)
@@ -2242,14 +2260,34 @@ ndb_handle_schema_change(THD *thd, Ndb *
 
 static void ndb_binlog_query(THD *thd, Cluster_schema *schema)
 {
-  if (schema->any_value & NDB_ANYVALUE_RESERVED)
+  /* any_value == 0 means local cluster sourced change that
+   * should be logged
+   */
+  if (schema->any_value != 0)
   {
-    if (schema->any_value != NDB_ANYVALUE_FOR_NOLOGGING)
-      sql_print_warning("NDB: unknown value for binlog signalling 0x%X, "
-                        "query not logged",
-                        schema->any_value);
-    return;
+    if (schema->any_value & NDB_ANYVALUE_RESERVED)
+    {
+      /* Originating SQL node did not want this query logged */
+      if (schema->any_value != NDB_ANYVALUE_FOR_NOLOGGING)
+        sql_print_warning("NDB: unknown value for binlog signalling 0x%X, "
+                          "query not logged",
+                          schema->any_value);
+      return;
+    }
+    else 
+    {
+      /* AnyValue is set to non-zero serverId, must be a query applied
+       * by a slave mysqld.
+       * TODO : Assert that we are running in the Binlog injector thread?
+       */
+      if (! g_ndb_log_slave_updates)
+      {
+        /* This MySQLD does not log slave updates */
+        return;
+      }
+    }
   }
+
   uint32 thd_server_id_save= thd->server_id;
   DBUG_ASSERT(sizeof(thd_server_id_save) == sizeof(thd->server_id));
   char *thd_db_save= thd->db;
@@ -3238,7 +3276,7 @@ void set_binlog_flags(NDB_SHARE *share)
     set_binlog_full(share);
 }
 
-static bool
+bool
 ndbcluster_check_if_local_table(const char *dbname, const char *tabname)
 {
   char key[FN_REFLEN + 1];
@@ -3260,7 +3298,7 @@ ndbcluster_check_if_local_table(const ch
   DBUG_RETURN(false);
 }
 
-static bool
+bool
 ndbcluster_check_if_local_tables_in_db(THD *thd, const char *dbname)
 {
   DBUG_ENTER("ndbcluster_check_if_local_tables_in_db");
@@ -5051,6 +5089,7 @@ restart:
     if (unlikely(schema_res > 0))
     {
       thd->proc_info= "Processing events from schema table";
+      g_ndb_log_slave_updates= opt_log_slave_updates;
       s_ndb->
         setReportThreshEventGCISlip(ndb_report_thresh_binlog_epoch_slip);
       s_ndb->

=== modified file 'sql/ha_ndbcluster_binlog.h'
--- a/sql/ha_ndbcluster_binlog.h	2009-05-26 18:53:34 +0000
+++ b/sql/ha_ndbcluster_binlog.h	2009-09-17 13:53:38 +0000
@@ -274,6 +274,14 @@ inline void free_share(NDB_SHARE **share
 
 void set_binlog_flags(NDB_SHARE *share);
 
+/*
+  Helper functions
+*/
+bool
+ndbcluster_check_if_local_table(const char *dbname, const char *tabname);
+bool
+ndbcluster_check_if_local_tables_in_db(THD *thd, const char *dbname);
+
 inline
 Thd_ndb *
 get_thd_ndb(THD *thd)

=== modified file 'storage/ndb/src/kernel/blocks/ERROR_codes.txt'
--- a/storage/ndb/src/kernel/blocks/ERROR_codes.txt	2009-09-01 10:50:11 +0000
+++ b/storage/ndb/src/kernel/blocks/ERROR_codes.txt	2009-09-14 12:48:22 +0000
@@ -6,7 +6,7 @@ Next DBTUP 4029
 Next DBLQH 5054
 Next DBDICT 6008
 Next DBDIH 7215
-Next DBTC 8080
+Next DBTC 8081
 Next CMVMI 9000
 Next BACKUP 10041
 Next DBUTIL 11002
@@ -278,7 +278,7 @@ Delay execution of COMPLETECONF signal 2
 8045: (ABORTCONF only as part of take-over)
 Delay execution of ABORTCONF signal 2 seconds to generate time-out.
 
-8050: Send ZABORT_TIMEOUT_BREAK delayed
+8080: Send ZABORT_TIMEOUT_BREAK delayed
 
 8053: Crash in timeOutFoundLab, state CS_WAIT_COMMIT_CONF
 

=== modified file 'storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2009-08-07 11:54:37 +0000
+++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2009-09-22 13:04:32 +0000
@@ -1388,7 +1388,6 @@ checkop:
     nextbits &= ~(Uint32)Operationrec::OP_MASK;
     nextbits &= ~(Uint32)Operationrec::OP_ELEMENT_DISAPPEARED;
     nextbits |= (nextop = ZINSERT);
-    nextbits |= Operationrec::OP_INSERT_IS_DONE;
     goto conf;
   }
   else if (nextop == ZINSERT)

=== modified file 'storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp'
--- a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2009-05-26 18:53:34 +0000
+++ b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2009-09-22 07:32:29 +0000
@@ -2963,6 +2963,8 @@ public:
 #ifdef ERROR_INSERT
   void TRACE_OP_DUMP(const TcConnectionrec* regTcPtr, const char * pos);
 #endif
+
+  Uint32 get_node_status(Uint32 nodeId) const;
 };
 
 inline

=== modified file 'storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2009-05-26 18:53:34 +0000
+++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2009-09-22 07:32:29 +0000
@@ -3529,15 +3529,10 @@ void Dblqh::execLQHKEYREQ(Signal* signal
     return;
   }
 
+  if (unlikely(get_node_status(refToNode(sig5)) != ZNODE_UP))
   {
-    HostRecordPtr Thostptr;
-    Thostptr.i = refToNode(sig5); // TC-ref
-    ptrCheckGuard(Thostptr, chostFileSize, hostRecord);
-    if (unlikely(Thostptr.p->nodestatus != ZNODE_UP))
-    {
-      noFreeRecordLab(signal, lqhKeyReq, ZNODE_FAILURE_ERROR);
-      return;
-    }
+    noFreeRecordLab(signal, lqhKeyReq, ZNODE_FAILURE_ERROR);
+    return;
   }
   
   Uint32 senderVersion = getNodeInfo(refToNode(senderRef)).m_version;
@@ -5380,7 +5375,9 @@ void Dblqh::packLqhkeyreqLab(Signal* sig
   }
   else
   {
-    ndbassert(LqhKeyReq::getOperation(Treqinfo) != ZINSERT);
+    if (fragptr.p->m_copy_started_state != Fragrecord::AC_IGNORED)
+      ndbassert(LqhKeyReq::getOperation(Treqinfo) != ZINSERT ||
+                get_node_status(nextNodeId) != ZNODE_UP);
   }
   
   UintR TreadLenAiInd = (regTcPtr->readlenAi == 0 ? 0 : 1);
@@ -7845,9 +7842,23 @@ void Dblqh::lqhTransNextLab(Signal* sign
 	  default:
 	    ndbrequire(false);
 	  }
-        }//if
-      }//if
-    }//if
+        }
+      }
+      else
+      {
+#if defined VM_TRACE || defined ERROR_INSERT
+        jam();
+        ndbrequire(tcConnectptr.p->tcScanRec == RNIL);
+#endif
+      }
+    }
+    else
+    {
+#if defined VM_TRACE || defined ERROR_INSERT
+      jam();
+      ndbrequire(tcConnectptr.p->tcScanRec == RNIL);
+#endif
+    }
   }//for
   tcNodeFailptr.p->tcRecNow = tend + 1;
   signal->theData[0] = ZLQH_TRANS_NEXT;
@@ -10509,6 +10520,8 @@ void Dblqh::execCOPY_FRAGREQ(Signal* sig
   tcConnectptr.p->schemaVersion = scanptr.p->scanSchemaVersion;
   tcConnectptr.p->savePointId = gci;
   tcConnectptr.p->applRef = 0;
+  tcConnectptr.p->transactionState = TcConnectionrec::SCAN_STATE_USED;
+
   scanptr.p->scanState = ScanRecord::WAIT_ACC_COPY;
   AccScanReq * req = (AccScanReq*)&signal->theData[0];
   req->senderData = scanptr.i;
@@ -20138,3 +20151,12 @@ Dblqh::TRACE_OP_DUMP(const Dblqh::TcConn
   (* traceopout) << endl;
 }
 #endif
+
+Uint32
+Dblqh::get_node_status(Uint32 nodeId) const
+{
+  HostRecordPtr Thostptr;
+  Thostptr.i = nodeId;
+  ptrCheckGuard(Thostptr, chostFileSize, hostRecord);
+  return Thostptr.p->nodestatus;
+}

=== modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp	2009-09-01 12:27:40 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp	2009-09-14 12:48:22 +0000
@@ -6784,7 +6784,7 @@ void Dbtc::sendAbortedAfterTimeout(Signa
       signal->theData[0] = TcContinueB::ZABORT_TIMEOUT_BREAK;
       signal->theData[1] = tcConnectptr.i;
       signal->theData[2] = apiConnectptr.i;      
-      if (ERROR_INSERTED(8050))
+      if (ERROR_INSERTED(8080))
       {
 	ndbout_c("sending ZABORT_TIMEOUT_BREAK delayed (%d %d)", 
 		 Tcheck, apiConnectptr.p->counter);

=== modified file 'storage/ndb/src/ndbapi/Ndb.cpp'
--- a/storage/ndb/src/ndbapi/Ndb.cpp	2009-06-22 08:50:59 +0000
+++ b/storage/ndb/src/ndbapi/Ndb.cpp	2009-09-18 13:59:24 +0000
@@ -786,11 +786,22 @@ Ndb::closeTransaction(NdbTransaction* aC
     DBUG_VOID_RETURN;
   }
   
-  if (aConnection->theReleaseOnClose == false) {
+  /**
+   * NOTE: It's ok to call getNodeSequence() here wo/ having mutex,
+   */
+  Uint32 nodeId = aConnection->getConnectedNodeId();
+  TransporterFacade* tp = theImpl->m_transporter_facade;   
+  Uint32 seq = tp->getNodeSequence(nodeId);
+  if (aConnection->theNodeSequence != seq)
+  {
+    aConnection->theReleaseOnClose = true;
+  }
+  
+  if (aConnection->theReleaseOnClose == false) 
+  {
     /**
      * Put it back in idle list for that node
      */
-    Uint32 nodeId = aConnection->getConnectedNodeId();
     aConnection->theNext = theConnectionArray[nodeId];
     theConnectionArray[nodeId] = aConnection;
     DBUG_VOID_RETURN;
@@ -1418,7 +1429,7 @@ Ndb::opTupleIdOnNdb(const NdbTableImpl* 
     goto error_handler;
 
   // Start transaction with table id as hint
-  tConnection = this->startTransaction(table,
+  tConnection = this->startTransaction(m_sys_tab_0,
                                        (const char *) &aTableId,
                                        sizeof(Uint32));
   if (tConnection == NULL)

=== modified file 'storage/ndb/test/ndbapi/testNdbApi.cpp'
--- a/storage/ndb/test/ndbapi/testNdbApi.cpp	2009-09-07 11:00:31 +0000
+++ b/storage/ndb/test/ndbapi/testNdbApi.cpp	2009-09-22 13:04:32 +0000
@@ -2823,6 +2823,10 @@ runBug44065(NDBT_Context* ctx, NDBT_Step
   int rowno = 0;
   aValue = 0;
   Ndb* pNdb = GETNDB(step);
+  Ndb * pNdb2 = new Ndb(&ctx->m_cluster_connection, "TEST_DB");
+  pNdb2->init();
+  pNdb2->waitUntilReady();
+
   const NdbDictionary::Table* pTab= ctx->getTab();
   
   HugoOperations hugoOps1(*pTab);
@@ -2831,21 +2835,26 @@ runBug44065(NDBT_Context* ctx, NDBT_Step
   CHECK(hugoOps1.execute_NoCommit(pNdb) == 0);
 
   HugoOperations hugoOps2(*pTab);
-  CHECK(hugoOps2.startTransaction(pNdb) == 0);
+  CHECK(hugoOps2.startTransaction(pNdb2) == 0);
   
-  CHECK(hugoOps2.pkDeleteRecord(pNdb, rowno) == 0);
-  CHECK(hugoOps2.pkInsertRecord(pNdb, rowno) == 0);
+  CHECK(hugoOps2.pkDeleteRecord(pNdb2, rowno) == 0);
+  CHECK(hugoOps2.pkInsertRecord(pNdb2, rowno) == 0);
   
   NdbTransaction* trans = hugoOps2.getTransaction();
+  aValue = 0;
   
   trans->executeAsynch(NdbTransaction::NoCommit, a_callback, 0);
+  pNdb2->sendPreparedTransactions(1);
   CHECK(hugoOps1.execute_Commit(pNdb) == 0);
+  ndbout_c("waiting for callback");
   while (aValue == 0)
   {
+    pNdb2->pollNdb();
     NdbSleep_MilliSleep(100);
   }
-  CHECK(hugoOps2.execute_Rollback(pNdb) == 0);
+  CHECK(hugoOps2.execute_Rollback(pNdb2) == 0);
   
+  delete pNdb2;
   ctx->stopTest();
 
   return NDBT_OK;

=== modified file 'storage/ndb/test/ndbapi/testNodeRestart.cpp'
--- a/storage/ndb/test/ndbapi/testNodeRestart.cpp	2009-05-26 18:53:34 +0000
+++ b/storage/ndb/test/ndbapi/testNodeRestart.cpp	2009-09-14 12:48:22 +0000
@@ -704,7 +704,7 @@ runBug18414(NDBT_Context* ctx, NDBT_Step
     
     if (loop & 1)
     {
-      if (restarter.insertErrorInNode(node1, 8050))
+      if (restarter.insertErrorInNode(node1, 8080))
 	goto err;
     }
     

=== modified file 'storage/ndb/test/run-test/autotest-run.sh'
--- a/storage/ndb/test/run-test/autotest-run.sh	2008-12-12 11:09:03 +0000
+++ b/storage/ndb/test/run-test/autotest-run.sh	2009-09-21 07:23:37 +0000
@@ -13,7 +13,12 @@ save_args=$*
 VERSION="autotest-run.sh version 1.00"
 
 DATE=`date '+%Y-%m-%d'`
-HOST=`hostname -s`
+if [ `uname -s` != "SunOS" ]
+then
+  HOST=`hostname -s`
+else
+  HOST=`hostname`
+fi
 export DATE HOST
 
 set -e
@@ -276,6 +281,7 @@ echo "date=$DATE" > info.txt
 echo "suite=$RUN" >> info.txt
 echo "clone=$clone0" >> info.txt
 echo "arch=$target" >> info.txt
+echo "host=$HOST" >> info.txt
 find . | xargs chmod ugo+r
 
 cd ..

=== modified file 'storage/ndb/test/run-test/daily-basic-tests.txt'
--- a/storage/ndb/test/run-test/daily-basic-tests.txt	2009-09-01 11:04:11 +0000
+++ b/storage/ndb/test/run-test/daily-basic-tests.txt	2009-09-22 13:04:32 +0000
@@ -601,6 +601,22 @@ max-time: 300
 cmd: testNodeRestart
 args: -n Bug32160 T1
 
+max-time: 2500
+cmd: testNodeRestart
+args: -n MixedPkRead T6 T13 
+
+max-time: 2500
+cmd: testIndex
+args: -n NFNR1 T6 T13 
+
+max-time: 2500
+cmd: testIndex
+args: -n NFNR1_O T6 T13 
+
+max-time: 2500
+cmd: testIndex
+args: -n NFNR2_O T6 T13 
+
 #
 # DICT TESTS
 max-time: 500
@@ -777,6 +793,14 @@ cmd: testNdbApi
 args: -n NdbRecordRowLength
 
 max-time: 500
+cmd: testNdbApi
+args: -n Bug44065
+
+max-time: 500
+cmd: testNdbApi
+args: -n Bug44065_org
+
+max-time: 500
 cmd: testInterpreter
 args: T1 
 
@@ -941,6 +965,31 @@ max-time: 600
 cmd: test_event_merge
 args: --no-implicit-nulls --no-multiops
 
+#
+max-time: 3600
+cmd: test_event
+args: -n EventOperationApplier -l 2
+
+#
+max-time: 3600
+cmd: test_event
+args: -n EventOperationApplier_NR -l 2
+
+#
+max-time: 3600
+cmd: test_event
+args: -n MergeEventOperationApplier_NR -l 2
+
+#
+max-time: 2500
+cmd: test_event
+args: -n Multi
+
+#
+max-time: 3600
+cmd: test_event
+args: -n CreateDropNR -l 1
+
 max-time: 600
 cmd: testBasic
 args: -n PkRead T1

=== modified file 'storage/ndb/test/run-test/daily-devel-tests.txt'
--- a/storage/ndb/test/run-test/daily-devel-tests.txt	2009-09-01 11:04:11 +0000
+++ b/storage/ndb/test/run-test/daily-devel-tests.txt	2009-09-15 10:03:14 +0000
@@ -59,10 +59,6 @@ args: -n SR_FULLDB T6 
 #
 max-time: 2500
 cmd: testNodeRestart
-args: -n MixedPkRead T6 T13 
-
-max-time: 2500
-cmd: testNodeRestart
 args: -l 1 -n MixedPkReadPkUpdate 
 
 max-time: 2500
@@ -100,10 +96,6 @@ args: -n Bug16772 T1
 #
 max-time: 2500
 cmd: testIndex
-args: -n NFNR1 T6 T13 
-
-max-time: 2500
-cmd: testIndex
 args: -n NFNR2 T6 T13 
 
 max-time: 2500
@@ -116,14 +108,6 @@ args: -l 2 -n SR1 T6 T13 
 
 max-time: 2500
 cmd: testIndex
-args: -n NFNR1_O T6 T13 
-
-max-time: 2500
-cmd: testIndex
-args: -n NFNR2_O T6 T13 
-
-max-time: 2500
-cmd: testIndex
 args: -n NFNR3_O T6 T13 
 
 max-time: 2500
@@ -138,32 +122,7 @@ max-time: 2500
 cmd: testDict
 args: -n NF1 T1 T6 T13 
 
-#
-max-time: 3600
-cmd: test_event
-args: -n EventOperationApplier -l 2
-
-#
-max-time: 3600
-cmd: test_event
-args: -n EventOperationApplier_NR -l 2
-
-#
-max-time: 3600
-cmd: test_event
-args: -n MergeEventOperationApplier_NR -l 2
-
-#
-max-time: 2500
-cmd: test_event
-args: -n Multi
-
 max-time: 600
 cmd: test_event
 args: -l 1 -n SubscribeNR T1
 
-#
-max-time: 3600
-cmd: test_event
-args: -n CreateDropNR -l 1
-

=== modified file 'storage/ndb/test/src/UtilTransactions.cpp'
--- a/storage/ndb/test/src/UtilTransactions.cpp	2009-05-26 18:53:34 +0000
+++ b/storage/ndb/test/src/UtilTransactions.cpp	2009-09-15 16:52:04 +0000
@@ -780,6 +780,9 @@ UtilTransactions::readRowFromTableAndInd
     if (pTrans1 == NULL) {
       const NdbError err = pNdb->getNdbError();
       
+      if (err.code == 4006)
+        goto close_all;
+
       if (err.status == NdbError::TemporaryError){
 	ERR(err);
 	NdbSleep_MilliSleep(50);


Attachment: [text/bzr-bundle] bzr/aelkin@mysql.com-20090924111022-2dc4skcerxal2bmh.bundle
Thread
bzr commit into mysql-5.1-telco-6.2 branch (aelkin:2995) Bug#47037Andrei Elkin24 Sep