# # Preparatory cleanup. # DROP TABLE IF EXISTS t1, t2; # # We need a fixed timestamp to avoid varying results. # SET timestamp=1000000000; # # Delete all existing binary logs. # RESET MASTER; # # Create test tables. # CREATE TABLE t1 ( c1 INT, c2 VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET latin1; CREATE TABLE t2 ( c1 INT, c2 VARCHAR(20) ) ENGINE=MyISAM DEFAULT CHARSET latin1; # # Start transaction #1, transactional table only, commit. # START TRANSACTION; # # Do some statements. # INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t1 SET c1 = c1 + 10; DELETE FROM t1 WHERE c1 = 12; # # Commit transaction. # COMMIT; SELECT * FROM t1; c1 c2 11 varchar-1 13 varchar-3 TRUNCATE TABLE t1; # # Start transaction #2, transactional table only, rollback. # START TRANSACTION; # # Do some statements. # INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t1 SET c1 = c1 + 10; DELETE FROM t1 WHERE c1 = 12; # # Rollback transaction. # ROLLBACK; SELECT * FROM t1; c1 c2 TRUNCATE TABLE t1; # # Start transaction #3, both tables, commit. # START TRANSACTION; # # Do some statements on the transactional table. # INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t1 SET c1 = c1 + 10; DELETE FROM t1 WHERE c1 = 12; # # Do some statements on the non-transactional table. # INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t2 SET c1 = c1 + 10; DELETE FROM t2 WHERE c1 = 12; # # Commit transaction. # COMMIT; SELECT * FROM t1; c1 c2 11 varchar-1 13 varchar-3 SELECT * FROM t2; c1 c2 11 varchar-1 13 varchar-3 TRUNCATE TABLE t1; TRUNCATE TABLE t2; # # Start transaction #4, both tables, rollback. # START TRANSACTION; # # Do some statements on the transactional table. # INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t1 SET c1 = c1 + 10; DELETE FROM t1 WHERE c1 = 12; # # Do some statements on the non-transactional table. # INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); UPDATE t2 SET c1 = c1 + 10; DELETE FROM t2 WHERE c1 = 12; # # Rollback transaction. # ROLLBACK; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back SELECT * FROM t1; c1 c2 SELECT * FROM t2; c1 c2 11 varchar-1 13 varchar-3 TRUNCATE TABLE t1; TRUNCATE TABLE t2; # # Flush all log buffers to the log file. # FLUSH LOGS; # # Call mysqlbinlog to display the log file contents. # include/mysqlbinlog.inc /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at # # # server id # end_log_pos # CRC32 # Start: binlog v #, server v # created # at startup ROLLBACK/*!*/; # at # # # server id # end_log_pos # CRC32 # Previous Consensus index=## ##PREV_CONSENSUS_INDEX: ##'/*!*/; # at # # # server id # end_log_pos # CRC32 # Previous-GTIDs # [empty] # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=276 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 Xid = # use `test`/*!*/; SET TIMESTAMP=#/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1168113696/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8mb4 *//*!*/; SET @@session.character_set_client=255,@@session.collation_connection=255,@@session.collation_server=255/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; /*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/; /*!80013 SET @@session.sql_require_primary_key=0*//*!*/; CREATE TABLE t1 ( c1 INT, c2 VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET latin1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=267 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; /*!80013 SET @@session.sql_require_primary_key=0*//*!*/; CREATE TABLE t2 ( c1 INT, c2 VARCHAR(20) ) ENGINE=MyISAM DEFAULT CHARSET latin1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=635 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t1` ### SET ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t1` ### SET ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Update_rows: table id # flags: STMT_END_F ### UPDATE `test`.`t1` ### WHERE ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=11 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t1` ### WHERE ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t1` ### WHERE ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Delete_rows: table id # flags: STMT_END_F ### DELETE FROM `test`.`t1` ### WHERE ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Xid = # COMMIT/*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=205 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 Xid = # SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=205 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 Xid = # SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=396 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t2` ### SET ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t2` ### SET ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t2` ### SET ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=460 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Update_rows: table id # flags: STMT_END_F ### UPDATE `test`.`t2` ### WHERE ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=11 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t2` ### WHERE ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t2` ### WHERE ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=366 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Delete_rows: table id # flags: STMT_END_F ### DELETE FROM `test`.`t2` ### WHERE ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=635 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t1` ### SET ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t1` ### SET ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Update_rows: table id # flags: STMT_END_F ### UPDATE `test`.`t1` ### WHERE ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=11 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t1` ### WHERE ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t1` ### WHERE ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t1` mapped to number # # at # # # server id # end_log_pos # CRC32 # Delete_rows: table id # flags: STMT_END_F ### DELETE FROM `test`.`t1` ### WHERE ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Xid = # COMMIT/*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=205 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 Xid = # SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=196 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t2 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=396 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t2` ### SET ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t2` ### SET ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### INSERT INTO `test`.`t2` ### SET ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=460 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Update_rows: table id # flags: STMT_END_F ### UPDATE `test`.`t2` ### WHERE ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=11 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t2` ### WHERE ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### UPDATE `test`.`t2` ### WHERE ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ ### SET ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=366 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=yes original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; BEGIN /*!*/; # at # # # server id # end_log_pos # CRC32 # Table_map: `test`.`t2` mapped to number # # at # # # server id # end_log_pos # CRC32 # Delete_rows: table id # flags: STMT_END_F ### DELETE FROM `test`.`t2` ### WHERE ### @1=12 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; COMMIT /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=205 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 Xid = # SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t1 /*!*/; # at # # # server id # end_log_pos # CRC32 # Consensus flag=# term=# index=# length=196 ##CONSENSUS FLAG: # TERM: # INDEX: # LENGTH: # RESERVE: 0'/*!*/; # at # # # server id # end_log_pos # CRC32 # Gcn have_snapshot_seq=false have_commit_seq=false SET @@session.innodb_commit_seq=#/*!*/; # at # # # server id # end_log_pos # CRC32 # Anonymous_GTID last_committed=# sequence_number=# rbr_only=no original_committed_timestamp=# immediate_commit_timestamp=# transaction_length=# # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; # at # # # server id # end_log_pos # CRC32 # Query thread_id=# exec_time=# error_code=0 SET TIMESTAMP=#/*!*/; TRUNCATE TABLE t2 /*!*/; # at # # # server id # end_log_pos # CRC32 # Rotate to binlog.000002 pos: 4 SET @@SESSION.GTID_NEXT= '#' /* added by mysqlbinlog */ /*!*/; DELIMITER ; # End of log file /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; # # Cleanup. # DROP TABLE t1, t2; # # Bug#22350047: IF CLIENT KILLED AFTER ROLLBACK TO SAVEPOINT PREVIOUS # STMTS COMMITTED # CREATE TABLE t1(a INT) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES(1); SAVEPOINT tx_0; ROLLBACK TO SAVEPOINT tx_0; KILL CONNECTION CONN_ID; # Without the patch, field 'a' contained the value 1 SELECT * FROM t1; a DROP TABLE t1;