mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Fixes the following bugs: Bug #30706: SQL thread on slave is allowed to block client queries when slave load is high Add (innodb|innobase|srv)_replication_delay MySQL config parameter. Bug #30888: Innodb table + stored procedure + row deletion = server crash While adding code for the low level read of the AUTOINC value from the index, the case for MEDIUM ints which are 3 bytes was missed triggering an assertion. Bug #30907: Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases We don't rely on *first_value to be 0 when checking whether get_auto_increment() has been invoked for the first time in a multi-row INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows inside ha_innobase::start_stmt() too. Bug #31444: "InnoDB: Error: MySQL is freeing a thd" in innodb_mysql.test ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and trx->n_mysql_tables_in_use only after row_lock_table_for_mysql() returns DB_SUCCESS. A timeout on LOCK TABLES would lead to an inconsistent state, which would cause trx_free() to print a warning. Bug #31494: innodb + 5.1 + read committed crash, assertion Set an error code when a deadlock occurs in semi-consistent read.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
drop table if exists t1;
 | 
						|
CREATE TABLE t1 (
 | 
						|
id int(11) NOT NULL auto_increment,
 | 
						|
ggid varchar(32) binary DEFAULT '' NOT NULL,
 | 
						|
email varchar(64) DEFAULT '' NOT NULL,
 | 
						|
passwd varchar(32) binary DEFAULT '' NOT NULL,
 | 
						|
PRIMARY KEY (id),
 | 
						|
UNIQUE ggid (ggid)
 | 
						|
) ENGINE=innodb;
 | 
						|
insert into t1 (ggid,passwd) values ('test1','xxx');
 | 
						|
insert into t1 (ggid,passwd) values ('test2','yyy');
 | 
						|
insert into t1 (ggid,passwd) values ('test2','this will fail');
 | 
						|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
 | 
						|
insert into t1 (ggid,id) values ('this will fail',1);
 | 
						|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
 | 
						|
select * from t1 where ggid='test1';
 | 
						|
id	ggid	email	passwd
 | 
						|
1	test1		xxx
 | 
						|
select * from t1 where passwd='xxx';
 | 
						|
id	ggid	email	passwd
 | 
						|
1	test1		xxx
 | 
						|
select * from t1 where id=2;
 | 
						|
id	ggid	email	passwd
 | 
						|
2	test2		yyy
 | 
						|
replace into t1 (ggid,id) values ('this will work',1);
 | 
						|
replace into t1 (ggid,passwd) values ('test2','this will work');
 | 
						|
update t1 set id=100,ggid='test2' where id=1;
 | 
						|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
 | 
						|
select * from t1;
 | 
						|
id	ggid	email	passwd
 | 
						|
1	this will work		
 | 
						|
3	test2		this will work
 | 
						|
select * from t1 where id=1;
 | 
						|
id	ggid	email	passwd
 | 
						|
1	this will work		
 | 
						|
select * from t1 where id=999;
 | 
						|
id	ggid	email	passwd
 | 
						|
drop table t1;
 | 
						|
End of tests
 |