For my sanity, inserting a complete test. All statements added to the transaction before the error are being removed:
use test;
create table t (a int not null auto_increment primary key, b varchar(20));
start transaction;
insert into t (b) values ('a'), ('b'), ('c'), ('d'), ('e');
commit;
SET GLOBAL transaction_log_truncate_debug= true;
start transaction;
update t set b = 'z' where a in (1,3,5);
delete from t where a in (select a from t where a < 3);
update t set b = 'y' where a in (2,4);
commit;
select print_transaction_message('transaction.log', ENTRY_OFFSET) from data_dictionary.transaction_log_entries\G
For my sanity, inserting a complete test. All statements added to the transaction before the error are being removed:
use test;
create table t (a int not null auto_increment primary key, b varchar(20));
start transaction;
insert into t (b) values ('a'), ('b'), ('c'), ('d'), ('e');
commit;
SET GLOBAL transaction_ log_truncate_ debug= true;
start transaction;
update t set b = 'z' where a in (1,3,5);
delete from t where a in (select a from t where a < 3);
update t set b = 'y' where a in (2,4);
commit;
select print_transacti on_message( 'transaction. log', ENTRY_OFFSET) from data_dictionary .transaction_ log_entries\ G