--source include/have_innodb.inc --source include/have_sequence.inc # Enable MDEV-515 table-level undo logging for insert into empty table SET foreign_key_checks=0, unique_checks=0; --echo # --echo # MDEV-24715 Assertion !node->table->skip_alter_undo --echo # CREATE TABLE t (a INT UNIQUE) ENGINE=InnoDB REPLACE SELECT 1 AS a, 2 AS b UNION SELECT 1 AS a, 3 AS c; SELECT * FROM t; DROP TABLE t; CREATE TEMPORARY TABLE t (a INT UNIQUE) ENGINE=InnoDB REPLACE SELECT 1 AS a, 2 AS b UNION SELECT 1 AS a, 3 AS c; SELECT * FROM t; DROP TEMPORARY TABLE t; --echo # --echo # MDEV-24720 AHI removal during bulk index rollback --echo # SET @save_ahi = @@global.innodb_adaptive_hash_index; SET GLOBAL innodb_adaptive_hash_index = 1; CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB; BEGIN; INSERT INTO t1 SELECT * FROM seq_1_to_65536; ROLLBACK; CHECK TABLE t1; --echo # --echo # MDEV-24832 Root page AHI Removal fails fails during --echo # bulk index rollback --echo # BEGIN; INSERT INTO t1 SELECT * FROM seq_1_to_500; ROLLBACK; DROP TABLE t1; SET GLOBAL innodb_adaptive_hash_index = @save_ahi; --echo # --echo # MDEV-24951 Assertion m.first->second.valid(trx->undo_no) failed --echo # in trx_undo_report_row_operation --echo # CREATE TEMPORARY TABLE t (c INT) ENGINE=InnoDB; CREATE TEMPORARY TABLE t2 (c INT) ENGINE=InnoDB; SET tx_read_only=1; BEGIN; INSERT INTO t2 VALUES(0); INSERT INTO t VALUES(0); COMMIT; INSERT INTO t VALUES(0); --error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION DROP TEMPORARY TABLE t,t2; SET tx_read_only=0; DROP TEMPORARY TABLE t,t2; --echo # --echo # MDEV-24818 Optimize multiple INSERT into empty table --echo # CREATE TABLE t1(f1 INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (5),(6),(7); --error ER_DUP_ENTRY INSERT INTO t1 VALUES (4),(5),(6); COMMIT; SELECT * FROM t1; BEGIN; INSERT INTO t1 VALUES (5),(6),(7); SAVEPOINT a; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (4),(5),(6); ROLLBACK TO SAVEPOINT a; COMMIT; SELECT * FROM t1; DROP TABLE t1; # Repeat the same with the MDEV-515 test disabled SET foreign_key_checks=1; CREATE TABLE t1(f1 INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (5),(6),(7); --error ER_DUP_ENTRY INSERT INTO t1 VALUES (4),(5),(6); COMMIT; SELECT * FROM t1; BEGIN; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (5),(6),(7); SAVEPOINT a; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (4),(5),(6); ROLLBACK TO SAVEPOINT a; COMMIT; SELECT * FROM t1; DROP TABLE t1; SET foreign_key_checks=0;