MINI MINI MANI MO
| Path : /opt/mysql/mysql-test/suite/binlog/r/ |
|
|
| Current File : //opt/mysql/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency_trx_nontrx_violation.result |
include/begin_replace_gtid_combination.inc [gtid_mode=off/on -> binlog_direct_non_transactional_updates=0/1]
include/rpl_init.inc [topology=none]
SET @old_sql_notes= @@GLOBAL.SQL_NOTES;
SET GLOBAL SQL_NOTES= 0;
SET SESSION SQL_NOTES= 0;
CALL mtr.add_suppression('Statement violates GTID consistency:');
CALL mtr.add_suppression('Unsafe statement written to the binary log');
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 0;
SET GLOBAL GTID_MODE = OFF_PERMISSIVE;
SET GLOBAL GTID_MODE = ON_PERMISSIVE;
SET GLOBAL GTID_MODE = 2;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=ON_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=ON_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=ON_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 1;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=OFF_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=OFF_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=OFF_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 0;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=OFF GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=OFF GTID_MODE=OFF GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=0 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [No warning or error should be generated.]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 1;
SET GLOBAL GTID_MODE = OFF_PERMISSIVE;
SET GLOBAL GTID_MODE = ON_PERMISSIVE;
SET GLOBAL GTID_MODE = ON;
SET GLOBAL GTID_MODE = 3;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=ON GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=ON GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=3 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 2;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=ON_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=ON_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=ON_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 1;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=OFF_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=OFF_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=OFF_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 0;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=OFF GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=ERROR GTID_MODE=OFF GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=1 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 2;
SET GLOBAL GTID_MODE = OFF_PERMISSIVE;
SET GLOBAL GTID_MODE = ON_PERMISSIVE;
SET GLOBAL GTID_MODE = 2;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=ON_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=ON_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=ON_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=2 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 1;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=OFF_PERMISSIVE GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO tmp_myisam1 VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=OFF_PERMISSIVE GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=OFF_PERMISSIVE GTID_NEXT=GTID ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN; INSERT INTO innodb VALUES (1);
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO tmp_myisam1 VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=1 gtid_next=GTID
SET GTID_NEXT = 'GTID';
BEGIN;
error ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
INSERT INTO innodb VALUES (1);
ERROR HY000: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be an Error, not a Warning.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL GTID_MODE = 0;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=OFF GTID_NEXT=AUTOMATIC ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO tmp_myisam1 VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=AUTOMATIC
SET GTID_NEXT = 'AUTOMATIC';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
######## ENFORCE_GTID_CONSISTENCY=WARN GTID_MODE=OFF GTID_NEXT=ANONYMOUS ########
CREATE TABLE myisam1 (a INT) ENGINE = MyISAM;
CREATE TABLE myisam2 (a INT) ENGINE = MyISAM;
CREATE TABLE innodb (a INT) ENGINE = InnoDB;
---- InnoDB followed by MyISAM in one trx ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO myisam1 VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one autocommit statement ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and MyISAM in one statement inside trx ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
---- InnoDB followed by temp MyISAM in one trx, binlog_format=stm ----
SET SESSION BINLOG_FORMAT = STATEMENT;
CREATE TEMPORARY TABLE tmp_myisam1 (a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE tmp_myisam2 (a INT) ENGINE = MyISAM;
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN; INSERT INTO innodb VALUES (1);
[START] INSERT INTO tmp_myisam1 VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO tmp_myisam1 VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one autocommit statement, binlog_format=stm ----
CREATE TRIGGER trig BEFORE INSERT ON innodb FOR EACH ROW INSERT INTO tmp_myisam1 VALUES (1);
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
Warnings:
Warning 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
---- InnoDB and temp MyISAM in one statement inside trx, binlog_format=stm ----
# enforce_gtid_consistency=2 gtid_mode=0 gtid_next=ANONYMOUS
SET GTID_NEXT = 'ANONYMOUS';
BEGIN;
[START] INSERT INTO innodb VALUES (1);
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
[END] INSERT INTO innodb VALUES (1);
include/assert.inc [One warning/error should be generated.]
include/assert.inc [It should be a Warning, not an Error.]
include/assert.inc [Text should be "violates GTID consistency"]
include/assert.inc [ONGOING_AUTOMATIC_GTID_VIOLATING_TRANSACTION_COUNT should be 0]
include/assert.inc [ONGOING_ANONYMOUS_GTID_VIOLATING_TRANSACTION_COUNT should be 1]
ROLLBACK;
SET GTID_NEXT = 'AUTOMATIC';
include/assert.inc [Both counters should be 0]
DROP TRIGGER trig;
DROP TABLE myisam1, myisam2, tmp_myisam1, tmp_myisam2, innodb;
SET BINLOG_FORMAT = #;
SET GLOBAL ENFORCE_GTID_CONSISTENCY = OFF;
SET GLOBAL SQL_NOTES = @old_sql_notes;
include/rpl_end.inc
include/end_replace_gtid_combination.inc [gtid_mode=off/on -> binlog_direct_non_transactional_updates=0/1]
OHA YOOOO