mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Main problem was that no log-event print function checked for disk full error on the IO_CACHE. All changes in this patch only affects mysqlbinlog, not the server! - Changed all log-event print functions to return 1 on error - Fixed memory usage when not using --flashback. - Added printing of number of rows in row events. Can be disabled with --print-row-count=0 - Print annotated rows when using mysqlbinlog --short-form - Fixed that mysqlbinlog --debug works - Fixed create_drop_binlog.test test failure - Reorganized fields in PRINT_EVENT_INFO to be according to size to optimize storage - Don't change print_row_event_position or print_row_counts if set by user - Remove some testing of argument to my_free is 0 - base64-output=never is now supported and works in all context - Updated help information for --base64-output and --short-form - print_row_count is now on by default. Reset automatically if --short-form is used - Removed obsolote warning for mysql 5.6.0 - More DBUG_PRINT for mysqltest.cc - my_b_write_byte() now checks for flush failures. This fixed a memory overrun on disk full - my_b_printf() now returns 1 on failure, 0 on ok. This simplifies code and no old code was using the old return value of my_b_printf(). - my_b_Write_backtick_quote() now returns 1 on failure and 0 on ok - Fixed some error conditions in log printing that was not previously handled. - Slave_rows_error_report() can now handle longlong positions - Write_on_release_cache() rewritten so that we can detect errors on flush. Not depending on automatic release anymore. - Changed types for Pos and End_log_pos to 64 bit in SHOW BINLOG EVENTS - Fixed that copy_event_cache_to_string_and_reinit() works with strings longer than 4G (Changed to use LEX_STRING instead of String) - Restricted binlog_rows_event_max_size to UINT32_MAX-1 as String's are anyway restricted to UINT32_MAX - Fixed bug in rpl_binlog_state::write_to_iocache() which hide write failures (duplicate variable name) - Fixed bug in String::append if original string was not allocated - Stop mysqlbinlog output at once if there is an error. - Before printing error message, flush result file. This ensures that the error message is printed last. (Easier to find)
		
			
				
	
	
		
			486 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			486 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
SET GLOBAL log_bin_compress=on;
 | 
						|
SET GLOBAL log_bin_compress_min_len=10;
 | 
						|
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1));
 | 
						|
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1));
 | 
						|
INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "");
 | 
						|
INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL);
 | 
						|
INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A");
 | 
						|
INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A");
 | 
						|
INSERT INTO t2 SELECT * FROM t1;
 | 
						|
UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL;
 | 
						|
DELETE FROM t1;
 | 
						|
DELETE FROM t2;
 | 
						|
FLUSH BINARY LOGS;
 | 
						|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
 | 
						|
DELIMITER /*!*/;
 | 
						|
# at 4
 | 
						|
#<date> server id 1  end_log_pos 256 CRC32 XXX 	Start: xxx
 | 
						|
ROLLBACK/*!*/;
 | 
						|
# at 256
 | 
						|
#<date> server id 1  end_log_pos 285 CRC32 XXX 	Gtid list []
 | 
						|
# at 285
 | 
						|
#<date> server id 1  end_log_pos 329 CRC32 XXX 	Binlog checkpoint master-bin.000001
 | 
						|
# at 329
 | 
						|
#<date> server id 1  end_log_pos 371 CRC32 XXX 	GTID 0-1-1 ddl
 | 
						|
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
 | 
						|
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
 | 
						|
/*!100001 SET @@session.server_id=1*//*!*/;
 | 
						|
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
 | 
						|
# at 371
 | 
						|
#<date> server id 1  end_log_pos 533 CRC32 XXX 	Query_compressed	thread_id=5	exec_time=x	error_code=0
 | 
						|
use `test`/*!*/;
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
SET @@session.pseudo_thread_id=5/*!*/;
 | 
						|
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
 | 
						|
SET @@session.sql_mode=1411383296/*!*/;
 | 
						|
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
 | 
						|
/*!\C latin1 *//*!*/;
 | 
						|
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
 | 
						|
SET @@session.lc_time_names=0/*!*/;
 | 
						|
SET @@session.collation_database=DEFAULT/*!*/;
 | 
						|
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
 | 
						|
/*!*/;
 | 
						|
# at 533
 | 
						|
#<date> server id 1  end_log_pos 575 CRC32 XXX 	GTID 0-1-2 ddl
 | 
						|
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
 | 
						|
# at 575
 | 
						|
#<date> server id 1  end_log_pos 727 CRC32 XXX 	Query_compressed	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
 | 
						|
/*!*/;
 | 
						|
# at 727
 | 
						|
#<date> server id 1  end_log_pos 769 CRC32 XXX 	GTID 0-1-3
 | 
						|
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 769
 | 
						|
# at 843
 | 
						|
#<date> server id 1  end_log_pos 843 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
 | 
						|
#<date> server id 1  end_log_pos 899 CRC32 XXX 	Table_map: `test`.`t1` mapped to number num
 | 
						|
# at 899
 | 
						|
#<date> server id 1  end_log_pos 967 CRC32 XXX 	Write_compressed_rows: table id 30 flags: STMT_END_F
 | 
						|
### INSERT INTO `test`.`t1`
 | 
						|
### SET
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 1
 | 
						|
# at 967
 | 
						|
#<date> server id 1  end_log_pos 1040 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 1040
 | 
						|
#<date> server id 1  end_log_pos 1082 CRC32 XXX 	GTID 0-1-4
 | 
						|
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 1082
 | 
						|
# at 1158
 | 
						|
#<date> server id 1  end_log_pos 1158 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
 | 
						|
#<date> server id 1  end_log_pos 1214 CRC32 XXX 	Table_map: `test`.`t1` mapped to number num
 | 
						|
# at 1214
 | 
						|
#<date> server id 1  end_log_pos 1281 CRC32 XXX 	Write_compressed_rows: table id 30 flags: STMT_END_F
 | 
						|
### INSERT INTO `test`.`t1`
 | 
						|
### SET
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
# Number of rows: 1
 | 
						|
# at 1281
 | 
						|
#<date> server id 1  end_log_pos 1354 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 1354
 | 
						|
#<date> server id 1  end_log_pos 1396 CRC32 XXX 	GTID 0-1-5
 | 
						|
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 1396
 | 
						|
# at 1474
 | 
						|
#<date> server id 1  end_log_pos 1474 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
 | 
						|
#<date> server id 1  end_log_pos 1530 CRC32 XXX 	Table_map: `test`.`t1` mapped to number num
 | 
						|
# at 1530
 | 
						|
#<date> server id 1  end_log_pos 1596 CRC32 XXX 	Write_compressed_rows: table id 30 flags: STMT_END_F
 | 
						|
### INSERT INTO `test`.`t1`
 | 
						|
### SET
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 1
 | 
						|
# at 1596
 | 
						|
#<date> server id 1  end_log_pos 1669 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 1669
 | 
						|
#<date> server id 1  end_log_pos 1711 CRC32 XXX 	GTID 0-1-6
 | 
						|
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 1711
 | 
						|
# at 1786
 | 
						|
#<date> server id 1  end_log_pos 1786 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
 | 
						|
#<date> server id 1  end_log_pos 1842 CRC32 XXX 	Table_map: `test`.`t1` mapped to number num
 | 
						|
# at 1842
 | 
						|
#<date> server id 1  end_log_pos 1909 CRC32 XXX 	Write_compressed_rows: table id 30 flags: STMT_END_F
 | 
						|
### INSERT INTO `test`.`t1`
 | 
						|
### SET
 | 
						|
###   @1=13 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 1
 | 
						|
# at 1909
 | 
						|
#<date> server id 1  end_log_pos 1982 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 1982
 | 
						|
#<date> server id 1  end_log_pos 2024 CRC32 XXX 	GTID 0-1-7
 | 
						|
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 2024
 | 
						|
# at 2078
 | 
						|
#<date> server id 1  end_log_pos 2078 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> INSERT INTO t2 SELECT * FROM t1
 | 
						|
#<date> server id 1  end_log_pos 2134 CRC32 XXX 	Table_map: `test`.`t2` mapped to number num
 | 
						|
# at 2134
 | 
						|
#<date> server id 1  end_log_pos 2225 CRC32 XXX 	Write_compressed_rows: table id 31 flags: STMT_END_F
 | 
						|
### INSERT INTO `test`.`t2`
 | 
						|
### SET
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### INSERT INTO `test`.`t2`
 | 
						|
### SET
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
### INSERT INTO `test`.`t2`
 | 
						|
### SET
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=NULL /* INT meta=0 nullable=1 is_null=1 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### INSERT INTO `test`.`t2`
 | 
						|
### SET
 | 
						|
###   @1=13 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=0 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 4
 | 
						|
# at 2225
 | 
						|
#<date> server id 1  end_log_pos 2298 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 2298
 | 
						|
#<date> server id 1  end_log_pos 2340 CRC32 XXX 	GTID 0-1-8
 | 
						|
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 2340
 | 
						|
# at 2406
 | 
						|
#<date> server id 1  end_log_pos 2406 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
 | 
						|
#<date> server id 1  end_log_pos 2462 CRC32 XXX 	Table_map: `test`.`t2` mapped to number num
 | 
						|
# at 2462
 | 
						|
#<date> server id 1  end_log_pos 2561 CRC32 XXX 	Update_compressed_rows: table id 31 flags: STMT_END_F
 | 
						|
### UPDATE `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### SET
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### UPDATE `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
### SET
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
### UPDATE `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=NULL /* INT meta=0 nullable=1 is_null=1 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### SET
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 3
 | 
						|
# at 2561
 | 
						|
#<date> server id 1  end_log_pos 2634 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 2634
 | 
						|
#<date> server id 1  end_log_pos 2676 CRC32 XXX 	GTID 0-1-9
 | 
						|
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 2676
 | 
						|
# at 2713
 | 
						|
#<date> server id 1  end_log_pos 2713 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> DELETE FROM t1
 | 
						|
#<date> server id 1  end_log_pos 2769 CRC32 XXX 	Table_map: `test`.`t1` mapped to number num
 | 
						|
# at 2769
 | 
						|
#<date> server id 1  end_log_pos 2861 CRC32 XXX 	Delete_compressed_rows: table id 30 flags: STMT_END_F
 | 
						|
### DELETE FROM `test`.`t1`
 | 
						|
### WHERE
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### DELETE FROM `test`.`t1`
 | 
						|
### WHERE
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
### DELETE FROM `test`.`t1`
 | 
						|
### WHERE
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### DELETE FROM `test`.`t1`
 | 
						|
### WHERE
 | 
						|
###   @1=13 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 4
 | 
						|
# at 2861
 | 
						|
#<date> server id 1  end_log_pos 2934 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 2934
 | 
						|
#<date> server id 1  end_log_pos 2976 CRC32 XXX 	GTID 0-1-10
 | 
						|
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
 | 
						|
BEGIN
 | 
						|
/*!*/;
 | 
						|
# at 2976
 | 
						|
# at 3013
 | 
						|
#<date> server id 1  end_log_pos 3013 CRC32 XXX 	Annotate_rows:
 | 
						|
#Q> DELETE FROM t2
 | 
						|
#<date> server id 1  end_log_pos 3069 CRC32 XXX 	Table_map: `test`.`t2` mapped to number num
 | 
						|
# at 3069
 | 
						|
#<date> server id 1  end_log_pos 3154 CRC32 XXX 	Delete_compressed_rows: table id 31 flags: STMT_END_F
 | 
						|
### DELETE FROM `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### DELETE FROM `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=11 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
 | 
						|
### DELETE FROM `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=12 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=5 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
### DELETE FROM `test`.`t2`
 | 
						|
### WHERE
 | 
						|
###   @1=13 /* INT meta=0 nullable=0 is_null=0 */
 | 
						|
###   @2=1 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @3=2 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @4=3 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @5=0 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @7=6 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @8=7 /* INT meta=0 nullable=1 is_null=0 */
 | 
						|
###   @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
 | 
						|
# Number of rows: 4
 | 
						|
# at 3154
 | 
						|
#<date> server id 1  end_log_pos 3227 CRC32 XXX 	Query	thread_id=5	exec_time=x	error_code=0
 | 
						|
SET TIMESTAMP=X/*!*/;
 | 
						|
COMMIT
 | 
						|
/*!*/;
 | 
						|
# at 3227
 | 
						|
#<date> server id 1  end_log_pos 3275 CRC32 XXX 	Rotate to master-bin.000002  pos: 4
 | 
						|
DELIMITER ;
 | 
						|
# End of log file
 | 
						|
ROLLBACK /* added by mysqlbinlog */;
 | 
						|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
 | 
						|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
 | 
						|
 | 
						|
Test mysqlbinlog | mysql type point-in-time recovery with compressed events.
 | 
						|
 | 
						|
FLUSH BINARY LOGS;
 | 
						|
CREATE TABLE t3 (a INT PRIMARY KEY, b INT, c VARCHAR(100));
 | 
						|
INSERT INTO t3 VALUES (0, 10, "hello");
 | 
						|
BEGIN;
 | 
						|
INSERT INTO t3 VALUES (1, 10, "cat"), (2, 10, "mouse"), (3, 10, "dog");
 | 
						|
INSERT INTO t3 VALUES (4, 10, "goodbye");
 | 
						|
COMMIT;
 | 
						|
UPDATE t3 SET b=b+100 where a<>1;
 | 
						|
DELETE FROM t3 WHERE a=2;
 | 
						|
SET @old_image=@@binlog_row_image;
 | 
						|
SET binlog_row_image=minimal;
 | 
						|
INSERT INTO t3 VALUES (5, 20, "red"), (6, 30, "green"), (7, 40, "blue");
 | 
						|
INSERT INTO t3 VALUES (8, 20, "rigel");
 | 
						|
UPDATE t3 SET c = concat("colour of ", c) WHERE a > 5;
 | 
						|
UPDATE t3 SET b=b*2 WHERE a IN (5,6,7);
 | 
						|
DELETE FROM t3 WHERE a=6;
 | 
						|
SET binlog_row_image=@old_image;
 | 
						|
SELECT * FROM t3 ORDER BY a;
 | 
						|
a	b	c
 | 
						|
0	110	hello
 | 
						|
1	10	cat
 | 
						|
3	110	dog
 | 
						|
4	110	goodbye
 | 
						|
5	40	red
 | 
						|
7	80	colour of blue
 | 
						|
8	20	colour of rigel
 | 
						|
FLUSH LOGS;
 | 
						|
DROP TABLE t3;
 | 
						|
SELECT * FROM t3 ORDER BY a;
 | 
						|
a	b	c
 | 
						|
0	110	hello
 | 
						|
1	10	cat
 | 
						|
3	110	dog
 | 
						|
4	110	goodbye
 | 
						|
5	40	red
 | 
						|
7	80	colour of blue
 | 
						|
8	20	colour of rigel
 | 
						|
DROP TABLE t1,t2,t3;
 | 
						|
SET GLOBAL log_bin_compress=off;
 | 
						|
SET GLOBAL log_bin_compress_min_len=256;
 |