mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-21921 Make transaction_isolation and transaction_read_only into system variables
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.
This commit is contained in:
@@ -1017,8 +1017,8 @@ SET sql_mode = default;
|
||||
create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=innodb;
|
||||
BEGIN;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
SELECT @@tx_isolation,@@global.tx_isolation;
|
||||
@@tx_isolation @@global.tx_isolation
|
||||
SELECT @@transaction_isolation, @@global.transaction_isolation;
|
||||
@@transaction_isolation @@global.transaction_isolation
|
||||
SERIALIZABLE REPEATABLE-READ
|
||||
insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David');
|
||||
select id, code, name from t1 order by id;
|
||||
@@ -3141,7 +3141,7 @@ CONNECT c1,localhost,root,,;
|
||||
CONNECT c2,localhost,root,,;
|
||||
connection c1;
|
||||
SET binlog_format='MIXED';
|
||||
SET TX_ISOLATION='read-committed';
|
||||
SET TRANSACTION_ISOLATION='read-committed';
|
||||
SET AUTOCOMMIT=0;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
Warnings:
|
||||
@@ -3152,7 +3152,7 @@ SELECT * FROM t2;
|
||||
a
|
||||
connection c2;
|
||||
SET binlog_format='MIXED';
|
||||
SET TX_ISOLATION='read-committed';
|
||||
SET TRANSACTION_ISOLATION='read-committed';
|
||||
SET AUTOCOMMIT=0;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
COMMIT;
|
||||
@@ -3166,13 +3166,13 @@ CONNECT c1,localhost,root,,;
|
||||
CONNECT c2,localhost,root,,;
|
||||
connection c1;
|
||||
SET binlog_format='MIXED';
|
||||
SET TX_ISOLATION='read-committed';
|
||||
SET TRANSACTION_ISOLATION='read-committed';
|
||||
SET AUTOCOMMIT=0;
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
connection c2;
|
||||
SET binlog_format='MIXED';
|
||||
SET TX_ISOLATION='read-committed';
|
||||
SET TRANSACTION_ISOLATION='read-committed';
|
||||
SET AUTOCOMMIT=0;
|
||||
INSERT INTO t1 VALUES (2);
|
||||
COMMIT;
|
||||
|
Reference in New Issue
Block a user