stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; create table t1 (a int key, b int) engine innodb; create table t2 (a int key, b int) engine innodb; alter table t1 engine ndb; alter table t2 engine ndb; insert into t1 values (1,2); select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status; @start_pos:=start_pos @end_pos:=end_pos show binlog events from limit 1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 Query 1 # use `test`; insert into t1 values (1,2) show binlog events from limit 1,1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Xid 1 445 COMMIT /* XID */ begin; insert into t1 values (2,3); insert into t2 values (3,4); commit; select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status; @start_pos:=start_pos @end_pos:=end_pos show binlog events from limit 1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 Query 1 # use `test`; BEGIN show binlog events from limit 1,2; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # use `test`; insert into t1 values (2,3) master-bin.000001 # Query # # use `test`; insert into t2 values (3,4) show binlog events from limit 3,1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Xid 1 COMMIT /* XID */ DROP TABLE t1,t2; STOP SLAVE; RESET SLAVE; RESET MASTER; START SLAVE; CREATE TABLE t1 (c1 INT AUTO_INCREMENT NOT NULL PRIMARY KEY, c2 INT NOT NULL, c3 INT NOT NULL); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL AUTO_INCREMENT, `c2` int(11) NOT NULL, `c3` int(11) NOT NULL, PRIMARY KEY (`c1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ***** insert some data ***** SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL AUTO_INCREMENT, `c2` int(11) NOT NULL, `c3` int(11) NOT NULL, PRIMARY KEY (`c1`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status; @start_pos:=start_pos @end_pos:=end_pos show binlog events from limit 1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 Intvar 1 # INSERT_ID=10 show binlog events from limit 1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Intvar 1 28 INSERT_ID=10 set autocommit=0; select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status; @start_pos:=start_pos @end_pos:=end_pos show binlog events from limit 1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 Query 1 # use `test`; BEGIN show binlog events from limit 1,1; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Intvar 1 # INSERT_ID=11 SHOW BINLOG EVENTS; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Format_desc 1 # Server ver: 5.1.18-ndb-6.2.1-log, Binlog ver: 4 master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1 (c1 INT AUTO_INCREMENT NOT NULL PRIMARY KEY, c2 INT NOT NULL, c3 INT NOT NULL) master-bin.000001 # Intvar 1 # INSERT_ID=1 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,10*2,10+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=2 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,9*2,9+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=3 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,8*2,8+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=4 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,7*2,7+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=5 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,6*2,6+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=6 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,5*2,5+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=7 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,4*2,4+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=8 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,3*2,3+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=9 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,2*2,2+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=10 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,1*2,1+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Query 1 # use `test`; BEGIN master-bin.000001 # Intvar 1 # INSERT_ID=11 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,10*2,10+3) master-bin.000001 # Intvar 1 # INSERT_ID=12 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,9*2,9+3) master-bin.000001 # Intvar 1 # INSERT_ID=13 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,8*2,8+3) master-bin.000001 # Intvar 1 # INSERT_ID=14 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,7*2,7+3) master-bin.000001 # Intvar 1 # INSERT_ID=15 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,6*2,6+3) master-bin.000001 # Intvar 1 # INSERT_ID=16 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,5*2,5+3) master-bin.000001 # Intvar 1 # INSERT_ID=17 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,4*2,4+3) master-bin.000001 # Intvar 1 # INSERT_ID=18 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,3*2,3+3) master-bin.000001 # Intvar 1 # INSERT_ID=19 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,2*2,2+3) master-bin.000001 # Intvar 1 # INSERT_ID=20 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,1*2,1+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ SELECT * FROM test.t1 ORDER BY c1; c1 c2 c3 1 20 13 2 18 12 3 16 11 4 14 10 5 12 9 6 10 8 7 8 7 8 6 6 9 4 5 10 2 4 11 20 13 12 18 12 13 16 11 14 14 10 15 12 9 16 10 8 17 8 7 18 6 6 19 4 5 20 2 4 SELECT * FROM test.t1 ORDER BY c1; c1 c2 c3 1 20 13 2 18 12 3 16 11 4 14 10 5 12 9 6 10 8 7 8 7 8 6 6 9 4 5 10 2 4 11 20 13 12 18 12 13 16 11 14 14 10 15 12 9 16 10 8 17 8 7 18 6 6 19 4 5 20 2 4 21 20 13 22 18 12 23 16 11 24 14 10 25 12 9 26 10 8 27 8 7 28 6 6 29 4 5 30 2 4 ROLLBACK; SELECT * FROM test.t1 ORDER BY c1; c1 c2 c3 1 20 13 2 18 12 3 16 11 4 14 10 5 12 9 6 10 8 7 8 7 8 6 6 9 4 5 10 2 4 11 20 13 12 18 12 13 16 11 14 14 10 15 12 9 16 10 8 17 8 7 18 6 6 19 4 5 20 2 4 SELECT * FROM test.t1 ORDER BY c1; c1 c2 c3 1 20 13 2 18 12 3 16 11 4 14 10 5 12 9 6 10 8 7 8 7 8 6 6 9 4 5 10 2 4 11 20 13 12 18 12 13 16 11 14 14 10 15 12 9 16 10 8 17 8 7 18 6 6 19 4 5 20 2 4 SHOW BINLOG EVENTS; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Format_desc 1 # Server ver: 5.1.18-ndb-6.2.1-log, Binlog ver: 4 master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1 (c1 INT AUTO_INCREMENT NOT NULL PRIMARY KEY, c2 INT NOT NULL, c3 INT NOT NULL) master-bin.000001 # Intvar 1 # INSERT_ID=1 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,10*2,10+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=2 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,9*2,9+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=3 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,8*2,8+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=4 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,7*2,7+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=5 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,6*2,6+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=6 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,5*2,5+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=7 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,4*2,4+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=8 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,3*2,3+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=9 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,2*2,2+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Intvar 1 # INSERT_ID=10 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,1*2,1+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ master-bin.000001 # Query 1 # use `test`; BEGIN master-bin.000001 # Intvar 1 # INSERT_ID=11 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,10*2,10+3) master-bin.000001 # Intvar 1 # INSERT_ID=12 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,9*2,9+3) master-bin.000001 # Intvar 1 # INSERT_ID=13 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,8*2,8+3) master-bin.000001 # Intvar 1 # INSERT_ID=14 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,7*2,7+3) master-bin.000001 # Intvar 1 # INSERT_ID=15 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,6*2,6+3) master-bin.000001 # Intvar 1 # INSERT_ID=16 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,5*2,5+3) master-bin.000001 # Intvar 1 # INSERT_ID=17 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,4*2,4+3) master-bin.000001 # Intvar 1 # INSERT_ID=18 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,3*2,3+3) master-bin.000001 # Intvar 1 # INSERT_ID=19 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,2*2,2+3) master-bin.000001 # Intvar 1 # INSERT_ID=20 master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(NULL,1*2,1+3) master-bin.000001 # Xid 1 # COMMIT /* XID */ DROP TABLE t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT NOT NULL PRIMARY KEY, c2 INT NOT NULL, c3 INT NOT NULL); create procedure foo() deterministic begin insert into t1 values(NULL,2,3); end| create procedure foo2() deterministic begin START TRANSACTION; insert into t1 values(NULL,2,3); end| set autocommit=0; START TRANSACTION; CALL test.foo; ROLLBACK; SELECT * FROM t1; c1 c2 c3 SELECT * FROM t1; c1 c2 c3 CALL test.foo2; ROLLBACK; SELECT * FROM t1; c1 c2 c3 SELECT * FROM t1; c1 c2 c3 DROP TABLE t1;