Loading include/my_sys.h +6 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,12 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *); #define my_b_tell(info) ((info)->pos_in_file + \ (uint) (*(info)->current_pos - (info)->request_pos)) #define my_b_get_buffer_start(info) (info)->request_pos #define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \ (char*) my_b_get_buffer_start(info) #define my_b_get_pos_in_file(info) (info)->pos_in_file /* tell write offset in the SEQ_APPEND cache */ my_off_t my_b_append_tell(IO_CACHE* info); my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ Loading mysql-test/include/show_binlog_events2.inc 0 → 100644 +5 −0 Original line number Diff line number Diff line --let $binlog_start=98 --replace_result $binlog_start <binlog_start> --replace_column 2 # 5 # --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ --eval show binlog events from $binlog_start mysql-test/r/binlog_start_comment.result +2 −0 Original line number Diff line number Diff line reset master; drop table if exists t1,t2; create table t1 (word varchar(20)) -- create table t1; create table t2 (word varchar(20)) -- create table t2; Loading @@ -11,3 +12,4 @@ flush logs; select * from t2; word Ada drop table t1,t2; mysql-test/r/mix_innodb_myisam_binlog.result +44 −37 Original line number Diff line number Diff line Loading @@ -100,9 +100,10 @@ insert into t1 values(9); insert into t2 select * from t1; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(9) master-bin.000001 185 Xid 1 # COMMIT /* XID */ master-bin.000001 212 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(9) master-bin.000001 253 Xid 1 # COMMIT /* XID */ master-bin.000001 280 Query 1 # use `test`; insert into t2 select * from t1 delete from t1; delete from t2; reset master; Loading @@ -111,19 +112,21 @@ begin; insert into t2 select * from t1; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 186 Xid 1 # COMMIT /* XID */ master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 254 Xid 1 # COMMIT /* XID */ master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 insert into t1 values(11); commit; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 186 Xid 1 # COMMIT /* XID */ master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 307 Query 1 # use `test`; BEGIN master-bin.000001 375 Query 1 # use `test`; insert into t1 values(11) master-bin.000001 463 Xid 1 # COMMIT /* XID */ master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 254 Xid 1 # COMMIT /* XID */ master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 375 Query 1 # use `test`; BEGIN master-bin.000001 443 Query 1 # use `test`; insert into t1 values(11) master-bin.000001 531 Xid 1 # COMMIT /* XID */ alter table t2 engine=INNODB; delete from t1; delete from t2; Loading Loading @@ -235,25 +238,29 @@ master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16) master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18) master-bin.000001 342 Xid 1 # COMMIT /* XID */ master-bin.000001 369 Query 1 # use `test`; delete from t1 master-bin.000001 446 Xid 1 # COMMIT /* XID */ master-bin.000001 473 Query 1 # use `test`; delete from t2 master-bin.000001 550 Xid 1 # COMMIT /* XID */ master-bin.000001 577 Query 1 # use `test`; alter table t2 type=MyISAM master-bin.000001 666 Query 1 # use `test`; insert into t1 values (1) master-bin.000001 754 Xid 1 # COMMIT /* XID */ master-bin.000001 781 Query 1 # use `test`; insert into t2 values (20) master-bin.000001 870 Query 1 # use `test`; drop table t1,t2 master-bin.000001 949 Query 1 # use `test`; create temporary table ti (a int) engine=innodb master-bin.000001 1059 Query 1 # use `test`; insert into ti values(1) master-bin.000001 1146 Xid 1 # COMMIT /* XID */ master-bin.000001 1173 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam master-bin.000001 1283 Query 1 # use `test`; insert t1 values (1) master-bin.000001 1366 Query 1 # use `test`; create table t0 (n int) master-bin.000001 1452 Query 1 # use `test`; insert t0 select * from t1 master-bin.000001 1541 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null) master-bin.000001 1648 Query 1 # use `test`; create table t2 (n int) engine=innodb master-bin.000001 1748 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` master-bin.000001 369 Query 1 # use `test`; BEGIN master-bin.000001 437 Query 1 # use `test`; delete from t1 master-bin.000001 514 Xid 1 # COMMIT /* XID */ master-bin.000001 541 Query 1 # use `test`; BEGIN master-bin.000001 609 Query 1 # use `test`; delete from t2 master-bin.000001 686 Xid 1 # COMMIT /* XID */ master-bin.000001 713 Query 1 # use `test`; alter table t2 type=MyISAM master-bin.000001 802 Query 1 # use `test`; BEGIN master-bin.000001 870 Query 1 # use `test`; insert into t1 values (1) master-bin.000001 958 Xid 1 # COMMIT /* XID */ master-bin.000001 985 Query 1 # use `test`; insert into t2 values (20) master-bin.000001 1074 Query 1 # use `test`; drop table t1,t2 master-bin.000001 1153 Query 1 # use `test`; create temporary table ti (a int) engine=innodb master-bin.000001 1263 Query 1 # use `test`; BEGIN master-bin.000001 1331 Query 1 # use `test`; insert into ti values(1) master-bin.000001 1418 Xid 1 # COMMIT /* XID */ master-bin.000001 1445 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam master-bin.000001 1555 Query 1 # use `test`; insert t1 values (1) master-bin.000001 1638 Query 1 # use `test`; create table t0 (n int) master-bin.000001 1724 Query 1 # use `test`; insert t0 select * from t1 master-bin.000001 1813 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null) master-bin.000001 1920 Query 1 # use `test`; create table t2 (n int) engine=innodb master-bin.000001 2020 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` do release_lock("lock1"); drop table t0,t2; reset master; Loading Loading @@ -402,7 +409,7 @@ insert into t2 values (bug27417(1)); ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 267 master-bin.000001 335 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -414,7 +421,7 @@ insert into t2 select bug27417(1) union select bug27417(2); ERROR 23000: Duplicate entry '2' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 290 master-bin.000001 358 select count(*) from t1 /* must be 2 */; count(*) 2 Loading @@ -438,7 +445,7 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; ERROR 23000: Duplicate entry '2' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 301 master-bin.000001 369 select count(*) from t1 /* must be 4 */; count(*) 4 Loading Loading @@ -466,7 +473,7 @@ delete from t2; ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 246 master-bin.000001 314 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -483,7 +490,7 @@ delete t2.* from t2,t5 where t2.a=t5.a + 1; ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 274 master-bin.000001 342 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -501,7 +508,7 @@ count(*) 2 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 376 master-bin.000001 444 drop trigger trg_del_t2; drop table t1,t2,t3,t4,t5; drop function bug27417; Loading mysql-test/r/multi_update.result +2 −2 Original line number Diff line number Diff line Loading @@ -545,7 +545,7 @@ a b 4 4 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 260 master-bin.000001 328 delete from t1; delete from t2; insert into t1 values (1,2),(3,4),(4,4); Loading @@ -555,7 +555,7 @@ UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a; ERROR 23000: Duplicate entry '4' for key 1 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 275 master-bin.000001 343 drop table t1, t2; drop table if exists t1, t2, t3; CREATE TABLE t1 (a int, PRIMARY KEY (a)); Loading Loading
include/my_sys.h +6 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,12 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *); #define my_b_tell(info) ((info)->pos_in_file + \ (uint) (*(info)->current_pos - (info)->request_pos)) #define my_b_get_buffer_start(info) (info)->request_pos #define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \ (char*) my_b_get_buffer_start(info) #define my_b_get_pos_in_file(info) (info)->pos_in_file /* tell write offset in the SEQ_APPEND cache */ my_off_t my_b_append_tell(IO_CACHE* info); my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ Loading
mysql-test/include/show_binlog_events2.inc 0 → 100644 +5 −0 Original line number Diff line number Diff line --let $binlog_start=98 --replace_result $binlog_start <binlog_start> --replace_column 2 # 5 # --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ --eval show binlog events from $binlog_start
mysql-test/r/binlog_start_comment.result +2 −0 Original line number Diff line number Diff line reset master; drop table if exists t1,t2; create table t1 (word varchar(20)) -- create table t1; create table t2 (word varchar(20)) -- create table t2; Loading @@ -11,3 +12,4 @@ flush logs; select * from t2; word Ada drop table t1,t2;
mysql-test/r/mix_innodb_myisam_binlog.result +44 −37 Original line number Diff line number Diff line Loading @@ -100,9 +100,10 @@ insert into t1 values(9); insert into t2 select * from t1; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(9) master-bin.000001 185 Xid 1 # COMMIT /* XID */ master-bin.000001 212 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(9) master-bin.000001 253 Xid 1 # COMMIT /* XID */ master-bin.000001 280 Query 1 # use `test`; insert into t2 select * from t1 delete from t1; delete from t2; reset master; Loading @@ -111,19 +112,21 @@ begin; insert into t2 select * from t1; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 186 Xid 1 # COMMIT /* XID */ master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 254 Xid 1 # COMMIT /* XID */ master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 insert into t1 values(11); commit; show binlog events from 98; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 186 Xid 1 # COMMIT /* XID */ master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 307 Query 1 # use `test`; BEGIN master-bin.000001 375 Query 1 # use `test`; insert into t1 values(11) master-bin.000001 463 Xid 1 # COMMIT /* XID */ master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) master-bin.000001 254 Xid 1 # COMMIT /* XID */ master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 master-bin.000001 375 Query 1 # use `test`; BEGIN master-bin.000001 443 Query 1 # use `test`; insert into t1 values(11) master-bin.000001 531 Xid 1 # COMMIT /* XID */ alter table t2 engine=INNODB; delete from t1; delete from t2; Loading Loading @@ -235,25 +238,29 @@ master-bin.000001 98 Query 1 # use `test`; BEGIN master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16) master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18) master-bin.000001 342 Xid 1 # COMMIT /* XID */ master-bin.000001 369 Query 1 # use `test`; delete from t1 master-bin.000001 446 Xid 1 # COMMIT /* XID */ master-bin.000001 473 Query 1 # use `test`; delete from t2 master-bin.000001 550 Xid 1 # COMMIT /* XID */ master-bin.000001 577 Query 1 # use `test`; alter table t2 type=MyISAM master-bin.000001 666 Query 1 # use `test`; insert into t1 values (1) master-bin.000001 754 Xid 1 # COMMIT /* XID */ master-bin.000001 781 Query 1 # use `test`; insert into t2 values (20) master-bin.000001 870 Query 1 # use `test`; drop table t1,t2 master-bin.000001 949 Query 1 # use `test`; create temporary table ti (a int) engine=innodb master-bin.000001 1059 Query 1 # use `test`; insert into ti values(1) master-bin.000001 1146 Xid 1 # COMMIT /* XID */ master-bin.000001 1173 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam master-bin.000001 1283 Query 1 # use `test`; insert t1 values (1) master-bin.000001 1366 Query 1 # use `test`; create table t0 (n int) master-bin.000001 1452 Query 1 # use `test`; insert t0 select * from t1 master-bin.000001 1541 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null) master-bin.000001 1648 Query 1 # use `test`; create table t2 (n int) engine=innodb master-bin.000001 1748 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` master-bin.000001 369 Query 1 # use `test`; BEGIN master-bin.000001 437 Query 1 # use `test`; delete from t1 master-bin.000001 514 Xid 1 # COMMIT /* XID */ master-bin.000001 541 Query 1 # use `test`; BEGIN master-bin.000001 609 Query 1 # use `test`; delete from t2 master-bin.000001 686 Xid 1 # COMMIT /* XID */ master-bin.000001 713 Query 1 # use `test`; alter table t2 type=MyISAM master-bin.000001 802 Query 1 # use `test`; BEGIN master-bin.000001 870 Query 1 # use `test`; insert into t1 values (1) master-bin.000001 958 Xid 1 # COMMIT /* XID */ master-bin.000001 985 Query 1 # use `test`; insert into t2 values (20) master-bin.000001 1074 Query 1 # use `test`; drop table t1,t2 master-bin.000001 1153 Query 1 # use `test`; create temporary table ti (a int) engine=innodb master-bin.000001 1263 Query 1 # use `test`; BEGIN master-bin.000001 1331 Query 1 # use `test`; insert into ti values(1) master-bin.000001 1418 Xid 1 # COMMIT /* XID */ master-bin.000001 1445 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam master-bin.000001 1555 Query 1 # use `test`; insert t1 values (1) master-bin.000001 1638 Query 1 # use `test`; create table t0 (n int) master-bin.000001 1724 Query 1 # use `test`; insert t0 select * from t1 master-bin.000001 1813 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null) master-bin.000001 1920 Query 1 # use `test`; create table t2 (n int) engine=innodb master-bin.000001 2020 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` do release_lock("lock1"); drop table t0,t2; reset master; Loading Loading @@ -402,7 +409,7 @@ insert into t2 values (bug27417(1)); ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 267 master-bin.000001 335 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -414,7 +421,7 @@ insert into t2 select bug27417(1) union select bug27417(2); ERROR 23000: Duplicate entry '2' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 290 master-bin.000001 358 select count(*) from t1 /* must be 2 */; count(*) 2 Loading @@ -438,7 +445,7 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; ERROR 23000: Duplicate entry '2' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 301 master-bin.000001 369 select count(*) from t1 /* must be 4 */; count(*) 4 Loading Loading @@ -466,7 +473,7 @@ delete from t2; ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 246 master-bin.000001 314 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -483,7 +490,7 @@ delete t2.* from t2,t5 where t2.a=t5.a + 1; ERROR 23000: Duplicate entry '1' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 274 master-bin.000001 342 select count(*) from t1 /* must be 1 */; count(*) 1 Loading @@ -501,7 +508,7 @@ count(*) 2 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 376 master-bin.000001 444 drop trigger trg_del_t2; drop table t1,t2,t3,t4,t5; drop function bug27417; Loading
mysql-test/r/multi_update.result +2 −2 Original line number Diff line number Diff line Loading @@ -545,7 +545,7 @@ a b 4 4 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 260 master-bin.000001 328 delete from t1; delete from t2; insert into t1 values (1,2),(3,4),(4,4); Loading @@ -555,7 +555,7 @@ UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a; ERROR 23000: Duplicate entry '4' for key 1 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB master-bin.000001 275 master-bin.000001 343 drop table t1, t2; drop table if exists t1, t2, t3; CREATE TABLE t1 (a int, PRIMARY KEY (a)); Loading