--source include/have_innodb.inc --source include/have_sequence.inc --source include/have_debug.inc SET @save_debug=@@GLOBAL.INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG; SET @save_scrub=@@GLOBAL.INNODB_IMMEDIATE_SCRUB_DATA_UNCOMPRESSED; SET GLOBAL INNODB_IMMEDIATE_SCRUB_DATA_UNCOMPRESSED=1; SET GLOBAL INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=2; let $MYSQLD_DATADIR=`select @@datadir`; CREATE TABLE t1(f1 INT AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(256) GENERATED ALWAYS as('repairman'), INDEX idx(f2))ENGINE= InnoDB STATS_PERSISTENT=0; INSERT INTO t1(f1) SELECT seq FROM seq_1_to_50; FLUSH TABLE t1 FOR EXPORT; let SEARCH_PATTERN= repairman; let SEARCH_FILE= $MYSQLD_DATADIR/test/t1.ibd; -- source include/search_pattern_in_file.inc UNLOCK TABLES; ALTER TABLE t1 DROP INDEX idx; -- source include/wait_all_purged.inc FLUSH TABLE t1 FOR EXPORT; -- source include/search_pattern_in_file.inc UNLOCK TABLES; DROP TABLE t1; --echo # --echo # MDEV-37183 innodb_immediate_scrub_data_uncompressed=ON may break --echo # crash recovery --echo # SET GLOBAL innodb_limit_optimistic_insert_debug=0; # Note: MariaDB 10.6 fails to reproduce the crash; it maps DESC to ASC. CREATE TABLE t(a VARCHAR(1) PRIMARY KEY,INDEX(a DESC)) ENGINE=InnoDB; INSERT INTO t VALUES('2'),('1'),(''),('6'),('4'),('3'); SET GLOBAL innodb_limit_optimistic_insert_debug=3; INSERT INTO t VALUES('8'); CHECK TABLE t; SELECT COUNT(*) FROM t; DROP TABLE t; SET GLOBAL INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=@save_debug; SET GLOBAL INNODB_IMMEDIATE_SCRUB_DATA_UNCOMPRESSED=@save_scrub;