set @@session.gtid_domain_id=1; set @save_gtid_stric_mode=@@global.gtid_strict_mode;
create table ta (a int) engine=aria;
create table ti (a int) engine=innodb;
create table ti_pk (a int primary key) engine=innodb;
create table t (a int) engine=innodb;
create function f_i()
returns integer
begin
insert into ti set a=1; return1;
end |
create function f_ia(arg int)
returns integer
begin
insert into ti_pk set a=1;
insert into ta set a=1;
insert into ti_pk set a=arg; return1;
end |
call mtr.add_suppression("Error writing file");
select count(*) as zero from t;
zero 0
select count(*) as zero from ta;
zero 0
select count(*) as zero from ti;
zero 0
# 1. simple Innodb test set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
insert into t set a=1; ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
# observe effective rollback
select count(*) as zero from t;
zero 0
# 2. simple Aira test set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
insert into ta values (1),(2); ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
# note no rollback
select count(*) as '*NON-zero*' from ta;
*NON-zero* 2
delete from ta;
# 3. multi-engine test set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
insert into ta set a=f_i(); ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
# note no rollback..
select count(*) as one from ta;
one 1
# ..except transactional engine
select count(*) as zero from ti;
zero 0
delete from ta; set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
insert into t set a=f_ia(0); ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
# note no rollback..
select count(*) as one from ta;
one 1
# ..except transactional engine
select count(*) as zero from t;
zero 0
select count(*) as zero from ti_pk;
zero 0
delete from ta;
# 4. create-table-select-f() set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
create table f_x (a int) select f_i() as a; ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
# rollback indeed takes place in the pure transactional case
select count(*) as zero from ti;
zero 0 set @@global.gtid_strict_mode=0; set @@session.gtid_seq_no=1; set @@global.gtid_strict_mode=1;
create table t_x (a int) engine=aria select f_ia(0) as a; ERROR HY000: An attempt was made to binlog GTID VALUE which would create an out-of-order sequence number with existing GTID VALUE, and gtid strict mode is enabled
select * from t_x; ERROR42S02: Table 'test.t_x' doesn't exist
# **TODO**: fix MDEV-36027
# **TODO**: the empty binlog is buggy ..
include/show_binlog_events.inc
# .. as non-transactional `ta` (and `t_x` sic!) are modified
select count(*) as one from ta;
one 1
select count(*) as zero from ti;
zero 0
delete from ta;
#. set @@global.gtid_strict_mode=@save_gtid_stric_mode;
drop function f_i;
drop function f_ia;
drop table t, ta, ti, ti_pk;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.