Additional fix for bug#31455 (rpl decoder)

- Implementing --base64-format=decode-rows, to display
  SQL-alike decoded row events without their BINLOG statements.
- Adding --base64-format=decode-rows into tests when
  calling mysqlbinlog to avoid non-deterministic results
- Removing resetting of last_table_id in "RESET MASTER",
  which appeared to be dangerous.
This commit is contained in:
Alexander Barkov 2008-08-21 16:47:23 +05:00
parent 0c5bc2eafc
commit 762df2d05c
14 changed files with 513 additions and 3726 deletions

View File

@ -64,7 +64,8 @@ static void warning(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
static bool one_database=0, to_last_remote_log= 0, disable_log_bin= 0; static bool one_database=0, to_last_remote_log= 0, disable_log_bin= 0;
static bool opt_hexdump= 0; static bool opt_hexdump= 0;
const char *base64_output_mode_names[]= {"NEVER", "AUTO", "ALWAYS", NullS}; const char *base64_output_mode_names[]=
{"NEVER", "AUTO", "ALWAYS", "UNSPEC", "DECODE-ROWS", NullS};
TYPELIB base64_output_mode_typelib= TYPELIB base64_output_mode_typelib=
{ array_elements(base64_output_mode_names) - 1, "", { array_elements(base64_output_mode_names) - 1, "",
base64_output_mode_names, NULL }; base64_output_mode_names, NULL };

View File

@ -1650,8 +1650,8 @@ FLUSH LOGS;
--echo # --echo #
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.
@ -1730,8 +1730,8 @@ FLUSH LOGS;
--echo # --echo #
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.
@ -1853,8 +1853,8 @@ FLUSH LOGS;
--echo # --echo #
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.
@ -1911,8 +1911,8 @@ FLUSH LOGS;
--echo # --echo #
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -130,10 +130,6 @@ DELIMITER /*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Start: binlog v 4, server v 5.1.28-debug-log created 010909 4:46:40 at startup #010909 4:46:40 server id 1 end_log_pos # Start: binlog v 4, server v 5.1.28-debug-log created 010909 4:46:40 at startup
ROLLBACK/*!*/; ROLLBACK/*!*/;
BINLOG '
AMqaOw8BAAAAZgAAAGoAAAAAAAQANS4xLjI4LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAypo7EzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
use test/*!*/; use test/*!*/;
@ -166,14 +162,8 @@ BEGIN
/*!*/; /*!*/;
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAPYBAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxcBAAAASgAAAEACAAAQAAAAAAAAAAEAAv/8AQAAAAl2YXJjaGFyLTH8AgAAAAl2YXJjaGFy
LTL8AwAAAAl2YXJjaGFyLTM=
'/*!*/;
### INSERT INTO test.t1 ### INSERT INTO test.t1
### SET ### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -188,15 +178,8 @@ LTL8AwAAAAl2YXJjaGFyLTM=
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAGwCAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxgBAAAAeAAAAOQCAAAQAAAAAAAAAAEAAv///AEAAAAJdmFyY2hhci0x/AsAAAAJdmFyY2hh
ci0x/AIAAAAJdmFyY2hhci0y/AwAAAAJdmFyY2hhci0y/AMAAAAJdmFyY2hhci0z/A0AAAAJdmFy
Y2hhci0z
'/*!*/;
### UPDATE test.t1 ### UPDATE test.t1
### WHERE ### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -220,13 +203,8 @@ Y2hhci0z
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAABADAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxkBAAAALAAAADwDAAAQAAAAAAAAAAEAAv/8DAAAAAl2YXJjaGFyLTI=
'/*!*/;
### DELETE FROM test.t1 ### DELETE FROM test.t1
### WHERE ### WHERE
### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @1=12 /* INT meta=0 nullable=1 is_null=0 */
@ -267,14 +245,8 @@ BEGIN
/*!*/; /*!*/;
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAACUFAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxcBAAAASgAAAG8FAAAQAAAAAAAAAAEAAv/8AQAAAAl2YXJjaGFyLTH8AgAAAAl2YXJjaGFy
LTL8AwAAAAl2YXJjaGFyLTM=
'/*!*/;
### INSERT INTO test.t1 ### INSERT INTO test.t1
### SET ### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -289,15 +261,8 @@ LTL8AwAAAAl2YXJjaGFyLTM=
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAJsFAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxgBAAAAeAAAABMGAAAQAAAAAAAAAAEAAv///AEAAAAJdmFyY2hhci0x/AsAAAAJdmFyY2hh
ci0x/AIAAAAJdmFyY2hhci0y/AwAAAAJdmFyY2hhci0y/AMAAAAJdmFyY2hhci0z/A0AAAAJdmFy
Y2hhci0z
'/*!*/;
### UPDATE test.t1 ### UPDATE test.t1
### WHERE ### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -321,27 +286,16 @@ Y2hhci0z
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAD8GAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxkBAAAALAAAAGsGAAAQAAAAAAAAAAEAAv/8DAAAAAl2YXJjaGFyLTI=
'/*!*/;
### DELETE FROM test.t1 ### DELETE FROM test.t1
### WHERE ### WHERE
### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @1=12 /* INT meta=0 nullable=1 is_null=0 */
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 1 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id 1 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAJcGAAAAAAEAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxcBAAAASgAAAOEGAAAQAAEAAAAAAAEAAv/8AQAAAAl2YXJjaGFyLTH8AgAAAAl2YXJjaGFy
LTL8AwAAAAl2YXJjaGFyLTM=
'/*!*/;
### INSERT INTO test.t2 ### INSERT INTO test.t2
### SET ### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -356,15 +310,8 @@ LTL8AwAAAAl2YXJjaGFyLTM=
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 1 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id 1 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAA0HAAAAAAEAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxgBAAAAeAAAAIUHAAAQAAEAAAAAAAEAAv///AEAAAAJdmFyY2hhci0x/AsAAAAJdmFyY2hh
ci0x/AIAAAAJdmFyY2hhci0y/AwAAAAJdmFyY2hhci0y/AMAAAAJdmFyY2hhci0z/A0AAAAJdmFy
Y2hhci0z
'/*!*/;
### UPDATE test.t2 ### UPDATE test.t2
### WHERE ### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -388,13 +335,8 @@ Y2hhci0z
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 1 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id 1 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAALEHAAAAAAEAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxkBAAAALAAAAN0HAAAQAAEAAAAAAAEAAv/8DAAAAAl2YXJjaGFyLTI=
'/*!*/;
### DELETE FROM test.t2 ### DELETE FROM test.t2
### WHERE ### WHERE
### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @1=12 /* INT meta=0 nullable=1 is_null=0 */
@ -427,14 +369,8 @@ BEGIN
/*!*/; /*!*/;
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAGcJAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxcBAAAASgAAALEJAAAQAAAAAAAAAAEAAv/8AQAAAAl2YXJjaGFyLTH8AgAAAAl2YXJjaGFy
LTL8AwAAAAl2YXJjaGFyLTM=
'/*!*/;
### INSERT INTO test.t1 ### INSERT INTO test.t1
### SET ### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -449,15 +385,8 @@ LTL8AwAAAAl2YXJjaGFyLTM=
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAN0JAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxgBAAAAeAAAAFUKAAAQAAAAAAAAAAEAAv///AEAAAAJdmFyY2hhci0x/AsAAAAJdmFyY2hh
ci0x/AIAAAAJdmFyY2hhci0y/AwAAAAJdmFyY2hhci0y/AMAAAAJdmFyY2hhci0z/A0AAAAJdmFy
Y2hhci0z
'/*!*/;
### UPDATE test.t1 ### UPDATE test.t1
### WHERE ### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -481,27 +410,16 @@ Y2hhci0z
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number 0 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id 0 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAIEKAAAAAAAAAAAAAAAABHRlc3QAAnQxAAIDDwIUAAM=
AMqaOxkBAAAALAAAAK0KAAAQAAAAAAAAAAEAAv/8DAAAAAl2YXJjaGFyLTI=
'/*!*/;
### DELETE FROM test.t1 ### DELETE FROM test.t1
### WHERE ### WHERE
### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @1=12 /* INT meta=0 nullable=1 is_null=0 */
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 2 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id 2 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAANkKAAAAAAIAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxcBAAAASgAAACMLAAAQAAIAAAAAAAEAAv/8AQAAAAl2YXJjaGFyLTH8AgAAAAl2YXJjaGFy
LTL8AwAAAAl2YXJjaGFyLTM=
'/*!*/;
### INSERT INTO test.t2 ### INSERT INTO test.t2
### SET ### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -516,15 +434,8 @@ LTL8AwAAAAl2YXJjaGFyLTM=
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 2 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id 2 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAE8LAAAAAAIAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxgBAAAAeAAAAMcLAAAQAAIAAAAAAAEAAv///AEAAAAJdmFyY2hhci0x/AsAAAAJdmFyY2hh
ci0x/AIAAAAJdmFyY2hhci0y/AwAAAAJdmFyY2hhci0y/AMAAAAJdmFyY2hhci0z/A0AAAAJdmFy
Y2hhci0z
'/*!*/;
### UPDATE test.t2 ### UPDATE test.t2
### WHERE ### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @1=1 /* INT meta=0 nullable=1 is_null=0 */
@ -548,13 +459,8 @@ Y2hhci0z
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at # # at #
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number 2 #010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id 2 flags: STMT_END_F #010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
BINLOG '
AMqaOxMBAAAALAAAAPMLAAAAAAIAAAAAAAAABHRlc3QAAnQyAAIDDwIUAAM=
AMqaOxkBAAAALAAAAB8MAAAQAAIAAAAAAAEAAv/8DAAAAAl2YXJjaGFyLTI=
'/*!*/;
### DELETE FROM test.t2 ### DELETE FROM test.t2
### WHERE ### WHERE
### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @1=12 /* INT meta=0 nullable=1 is_null=0 */

View File

@ -442,5 +442,5 @@ flush logs;
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001

View File

@ -115,7 +115,7 @@ FLUSH LOGS;
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/
--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/$mysqlbinlog_output --exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/$mysqlbinlog_output
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.

View File

@ -150,8 +150,8 @@ FLUSH LOGS;
--echo # --echo #
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/
--exec $MYSQL_BINLOG -v -v $MYSQLTEST_VARDIR/log/master-bin.000001 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLTEST_VARDIR/log/master-bin.000001
--echo # --echo #
--echo # Cleanup. --echo # Cleanup.

View File

@ -1910,14 +1910,17 @@ void Log_event::print_base64(IO_CACHE* file,
DBUG_ASSERT(0); DBUG_ASSERT(0);
} }
if (my_b_tell(file) == 0) if (print_event_info->base64_output_mode != BASE64_OUTPUT_DECODE_ROWS)
my_b_printf(file, "\nBINLOG '\n"); {
if (my_b_tell(file) == 0)
my_b_printf(file, "\nBINLOG '\n");
my_b_printf(file, "%s\n", tmp_str); my_b_printf(file, "%s\n", tmp_str);
if (!more)
my_b_printf(file, "'%s\n", print_event_info->delimiter);
if (!more)
my_b_printf(file, "'%s\n", print_event_info->delimiter);
}
if (print_event_info->verbose) if (print_event_info->verbose)
{ {
Rows_log_event *ev= NULL; Rows_log_event *ev= NULL;
@ -3249,7 +3252,8 @@ void Start_log_event_v3::print(FILE* file, PRINT_EVENT_INFO* print_event_info)
print_event_info->base64_output_mode != BASE64_OUTPUT_NEVER && print_event_info->base64_output_mode != BASE64_OUTPUT_NEVER &&
!print_event_info->short_form) !print_event_info->short_form)
{ {
my_b_printf(&cache, "BINLOG '\n"); if (print_event_info->base64_output_mode != BASE64_OUTPUT_DECODE_ROWS)
my_b_printf(&cache, "BINLOG '\n");
print_base64(&cache, print_event_info, FALSE); print_base64(&cache, print_event_info, FALSE);
print_event_info->printed_fd_event= TRUE; print_event_info->printed_fd_event= TRUE;
} }

View File

@ -580,6 +580,7 @@ enum enum_base64_output_mode {
BASE64_OUTPUT_AUTO= 1, BASE64_OUTPUT_AUTO= 1,
BASE64_OUTPUT_ALWAYS= 2, BASE64_OUTPUT_ALWAYS= 2,
BASE64_OUTPUT_UNSPEC= 3, BASE64_OUTPUT_UNSPEC= 3,
BASE64_OUTPUT_DECODE_ROWS= 4,
/* insert new output modes here */ /* insert new output modes here */
BASE64_OUTPUT_MODE_COUNT BASE64_OUTPUT_MODE_COUNT
}; };

View File

@ -1078,7 +1078,6 @@ void table_cache_free(void);
bool table_def_init(void); bool table_def_init(void);
void table_def_free(void); void table_def_free(void);
void assign_new_table_id(TABLE_SHARE *share); void assign_new_table_id(TABLE_SHARE *share);
void reset_table_id_sequence();
uint cached_open_tables(void); uint cached_open_tables(void);
uint cached_table_definitions(void); uint cached_table_definitions(void);
void kill_mysql(void); void kill_mysql(void);

View File

@ -3720,13 +3720,6 @@ void assign_new_table_id(TABLE_SHARE *share)
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
void reset_table_id_sequence()
{
pthread_mutex_lock(&LOCK_open);
last_table_id= ~0UL;
pthread_mutex_unlock(&LOCK_open);
}
/** /**
Compare metadata versions of an element obtained from the table Compare metadata versions of an element obtained from the table
definition cache and its corresponding node in the parse tree. definition cache and its corresponding node in the parse tree.

View File

@ -1285,16 +1285,13 @@ bool change_master(THD* thd, Master_info* mi)
int reset_master(THD* thd) int reset_master(THD* thd)
{ {
int rc;
if (!mysql_bin_log.is_open()) if (!mysql_bin_log.is_open())
{ {
my_message(ER_FLUSH_MASTER_BINLOG_CLOSED, my_message(ER_FLUSH_MASTER_BINLOG_CLOSED,
ER(ER_FLUSH_MASTER_BINLOG_CLOSED), MYF(ME_BELL+ME_WAITTANG)); ER(ER_FLUSH_MASTER_BINLOG_CLOSED), MYF(ME_BELL+ME_WAITTANG));
return 1; return 1;
} }
if (!(rc= mysql_bin_log.reset_logs(thd))) return mysql_bin_log.reset_logs(thd);
reset_table_id_sequence();
return rc;
} }
int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1, int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1,