mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +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.
		
			
				
	
	
		
			123 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| SET GLOBAL transaction_isolation='REPEATABLE-READ';
 | |
| CREATE TABLE bug56680(
 | |
| a INT AUTO_INCREMENT PRIMARY KEY,
 | |
| b CHAR(1),
 | |
| c INT,
 | |
| INDEX(b))
 | |
| ENGINE=InnoDB STATS_PERSISTENT=0;
 | |
| INSERT INTO bug56680 VALUES(0,'x',1);
 | |
| BEGIN;
 | |
| SELECT b FROM bug56680;
 | |
| b
 | |
| x
 | |
| connect  con1,localhost,root,,;
 | |
| connection con1;
 | |
| BEGIN;
 | |
| UPDATE bug56680 SET b='X';
 | |
| connection default;
 | |
| SELECT b FROM bug56680;
 | |
| b
 | |
| x
 | |
| SELECT * FROM bug56680;
 | |
| a	b	c
 | |
| 1	x	1
 | |
| connection con1;
 | |
| ROLLBACK;
 | |
| disconnect con1;
 | |
| connection default;
 | |
| SELECT b FROM bug56680;
 | |
| b
 | |
| x
 | |
| SET GLOBAL transaction_isolation='READ-UNCOMMITTED';
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| INSERT INTO bug56680 SELECT 0,b,c FROM bug56680;
 | |
| BEGIN;
 | |
| SELECT b FROM bug56680 LIMIT 2;
 | |
| b
 | |
| x
 | |
| x
 | |
| connect  con1,localhost,root,,;
 | |
| connection con1;
 | |
| BEGIN;
 | |
| DELETE FROM bug56680 WHERE a=1;
 | |
| INSERT INTO bug56680 VALUES(1,'X',1);
 | |
| SELECT b FROM bug56680 LIMIT 3;
 | |
| b
 | |
| X
 | |
| x
 | |
| x
 | |
| connection default;
 | |
| SELECT b FROM bug56680 LIMIT 2;
 | |
| b
 | |
| x
 | |
| x
 | |
| CHECK TABLE bug56680;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.bug56680	check	status	OK
 | |
| connection con1;
 | |
| ROLLBACK;
 | |
| SELECT b FROM bug56680 LIMIT 2;
 | |
| b
 | |
| x
 | |
| x
 | |
| CHECK TABLE bug56680;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.bug56680	check	status	OK
 | |
| connection default;
 | |
| disconnect con1;
 | |
| SELECT b FROM bug56680 LIMIT 2;
 | |
| b
 | |
| x
 | |
| x
 | |
| CREATE TABLE bug56680_2(
 | |
| a INT AUTO_INCREMENT PRIMARY KEY,
 | |
| b VARCHAR(2) CHARSET latin1 COLLATE latin1_german2_ci,
 | |
| c INT,
 | |
| INDEX(b))
 | |
| ENGINE=InnoDB STATS_PERSISTENT=0;
 | |
| INSERT INTO bug56680_2 SELECT 0,_latin1 0xdf,c FROM bug56680;
 | |
| BEGIN;
 | |
| SELECT HEX(b) FROM bug56680_2 LIMIT 2;
 | |
| HEX(b)
 | |
| DF
 | |
| DF
 | |
| DELETE FROM bug56680_2 WHERE a=1;
 | |
| INSERT INTO bug56680_2 VALUES(1,'SS',1);
 | |
| SELECT HEX(b) FROM bug56680_2 LIMIT 3;
 | |
| HEX(b)
 | |
| 5353
 | |
| DF
 | |
| DF
 | |
| CHECK TABLE bug56680_2;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.bug56680_2	check	status	OK
 | |
| ALTER TABLE bug56680_2 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
 | |
| SELECT HEX(b) FROM bug56680_2 LIMIT 2;
 | |
| HEX(b)
 | |
| 5353
 | |
| DF
 | |
| DELETE FROM bug56680_2 WHERE a=1;
 | |
| INSERT INTO bug56680_2 VALUES(1,_latin1 0xdf,1);
 | |
| SELECT HEX(b) FROM bug56680_2 LIMIT 3;
 | |
| HEX(b)
 | |
| DF
 | |
| DF
 | |
| DF
 | |
| CHECK TABLE bug56680_2;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.bug56680_2	check	status	OK
 | |
| # restart
 | |
| CHECK TABLE bug56680_2;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.bug56680_2	check	status	OK
 | |
| DROP TABLE bug56680_2;
 | |
| DROP TABLE bug56680;
 |