mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 d20a96f9c1
			
		
	
	
	d20a96f9c1
	
	
	
		
			
			In MariaDB, we have a confusing problem where: * The transaction_isolation option can be set in a configuration file, but it cannot be set dynamically. * The tx_isolation system variable can be set dynamically, but it cannot be set in a configuration file. Therefore, we have two different names for the same thing in different contexts. This is needlessly confusing, and it complicates the documentation. The same thing applys for transaction_read_only. MySQL 5.7 solved this problem by making them into system variables. https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-20.html This commit takes a similar approach by adding new system variables and marking the original ones as deprecated. This commit also resolves some legacy problems related to SET STATEMENT and transaction_isolation.
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| # test for BUG#41029:
 | |
| # "MRR: SELECT FOR UPDATE fails to lock gaps (InnoDB table)"
 | |
| 
 | |
| --source include/have_debug.inc
 | |
| --source include/have_innodb.inc
 | |
| 
 | |
| select @default_binlog_format:=@@global.binlog_format;
 | |
| set global binlog_format=row;
 | |
| 
 | |
| connect (con1,localhost,root,,);
 | |
| connect (con2,localhost,root,,);
 | |
| 
 | |
| connection con1;
 | |
| 
 | |
| # bug requires this
 | |
| set session debug_dbug="+d,optimizer_innodb_ds_mrr";
 | |
| 
 | |
| set autocommit=0;
 | |
| use test;
 | |
| drop table if exists t1;
 | |
| create table t1 (dummy int primary key, a int unique, b int) engine=innodb;
 | |
| insert into t1 values(1,1,1),(3,3,3),(5,5,5);
 | |
| commit;
 | |
| set session transaction isolation level repeatable read;
 | |
| select @@transaction_isolation;
 | |
| start transaction;
 | |
| select * from t1 where a > 2 for update;
 | |
| 
 | |
| connection con2;
 | |
| 
 | |
| use test;
 | |
| set autocommit=0;
 | |
| start transaction;
 | |
| select 1;
 | |
| --error ER_LOCK_WAIT_TIMEOUT
 | |
| insert into t1 values(2,2,2);
 | |
| rollback;
 | |
| 
 | |
| connection con1;
 | |
| rollback;
 | |
| 
 | |
| drop table t1;
 | |
| connection default;
 | |
| set global binlog_format=@default_binlog_format;
 |