mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 f73ffd1150
			
		
	
	
	f73ffd1150
	
	
	
		
			
			page_delete_rec_list_end(): Do not attempt to scrub the data of
an empty record.
The test case would reproduce a debug assertion failure in branches
where commit 358921ce32 (MDEV-26938)
is present. MariaDB Server 10.6 only supports ascending indexes,
and in those, the empty string would always be sorted first, never
last in a page.
Nevertheless, we fix the bug also in 10.6, in case it would be
reproducible in a slightly different scenario.
Reviewed by: Thirunarayanan Balathandayuthapani
		
	
			
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| --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;
 |