DROP TABLE IF EXISTS t1; # Checking variables SHOW VARIABLES LIKE 'innodb_fake_changes'; Variable_name Value innodb_fake_changes OFF SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes'; VARIABLE_VALUE OFF SET innodb_fake_changes=1; SHOW VARIABLES LIKE 'innodb_fake_changes'; Variable_name Value innodb_fake_changes ON SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes'; VARIABLE_VALUE ON SET innodb_fake_changes=default; SHOW VARIABLES LIKE 'innodb_fake_changes'; Variable_name Value innodb_fake_changes OFF SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes'; VARIABLE_VALUE OFF # Explicit COMMIT should fail when innodb_fake_changes is enabled # DML should be fine CREATE TABLE t1 (a INT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); SET autocommit=0; SET innodb_fake_changes=1; BEGIN; INSERT INTO t1 VALUES (2); UPDATE t1 SET a=0; DELETE FROM t1 LIMIT 1; SELECT * FROM t1; a 1 COMMIT; ERROR HY000: Got error 131 during COMMIT SET innodb_fake_changes=default; DROP TABLE t1; # DDL must result in error CREATE TABLE t1 (a INT) ENGINE=InnoDB; SET autocommit=0; SET innodb_fake_changes=1; BEGIN; CREATE TABLE t2 (a INT) ENGINE=InnoDB; ERROR HY000: Can't create table 'test.t2' (errno: 131) DROP TABLE t1; ERROR 42S02: Unknown table 't1' TRUNCATE TABLE t1; ERROR HY000: Got error 131 during COMMIT ALTER TABLE t1 ENGINE=MyISAM; ERROR HY000: Got error 131 during COMMIT ROLLBACK; SET innodb_fake_changes=default; DROP TABLE t1;