diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-05-22 14:49:38 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-05-23 10:25:12 +0300 |
commit | 1a6f470464171bd1144e4dd6f169bb4018f2e81a (patch) | |
tree | 1e400c7e969dd07f4b60fdba504ff1c6545ff6bc /mysql-test/main/concurrent_innodb_unsafelog.result | |
parent | 47cede646b8f24b8dddc5bbb19b8e2b250858214 (diff) | |
download | mariadb-git-1a6f470464171bd1144e4dd6f169bb4018f2e81a.tar.gz |
MDEV-19544 Remove innodb_locks_unsafe_for_binlog
The transaction isolation levels READ COMMITTED and READ UNCOMMITTED
should behave similarly to the old deprecated setting
innodb_locks_unsafe_for_binlog=1, that is, avoid acquiring gap locks.
row_search_mvcc(): Reduce the scope of some variables, and clean up
the initialization and use of the variable set_also_gap_locks.
Diffstat (limited to 'mysql-test/main/concurrent_innodb_unsafelog.result')
-rw-r--r-- | mysql-test/main/concurrent_innodb_unsafelog.result | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/mysql-test/main/concurrent_innodb_unsafelog.result b/mysql-test/main/concurrent_innodb_unsafelog.result index 39e757aeeb1..1bf556046b9 100644 --- a/mysql-test/main/concurrent_innodb_unsafelog.result +++ b/mysql-test/main/concurrent_innodb_unsafelog.result @@ -1,15 +1,14 @@ -SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; +SET @save_timeout = @@GLOBAL.innodb_lock_wait_timeout; +SET GLOBAL innodb_lock_wait_timeout = 1; +SET @save_isolation = @@GLOBAL.tx_isolation; +SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED; connection default; SET SQL_MODE=""; SELECT @@global.tx_isolation; @@global.tx_isolation -REPEATABLE-READ -SELECT @@global.innodb_locks_unsafe_for_binlog; -@@global.innodb_locks_unsafe_for_binlog -1 +READ-COMMITTED # keep_locks == 0 GRANT USAGE ON test.* TO mysqltest@localhost; -drop table if exists t1; ** ** two UPDATE's running and both changing distinct result sets @@ -47,7 +46,7 @@ begin; ** Update on t1 will cause a table scan which will be blocked because ** the previously initiated table scan applied exclusive key locks on ** all primary keys. -** Not so if innodb_locks_unsafe_for_binlog is set. The locks that +** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that ** do not match the WHERE condition are released. update t1 set eta=2 where tipo=22; ** Release user level name lock from thread 1. This will cause the ULL @@ -101,7 +100,7 @@ eta tipo c 60 2 hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 70 1 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 2 22 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -90 11 kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk +1 11 kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk ** And send final commit on thread 1. commit; ** Table should now be updated by both updates in the order of @@ -186,7 +185,7 @@ begin; ** Update on t1 will cause a table scan which will be blocked because ** the previously initiated table scan applied exclusive key locks on ** all primary keys. -** Not so if innodb_locks_unsafe_for_binlog is set. The locks that +** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that ** do not match the WHERE condition are released. update t1 set tipo=1 where tipo=2; ** Release ULL. This will release the next waiting ULL on thread 2. @@ -231,13 +230,13 @@ select * from t1; eta tipo c 7 7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8 8 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -10 1 ccccccccccccccccccccccccccccccccccccccccccc +1 1 ccccccccccccccccccccccccccccccccccccccccccc 20 1 ddddddddddddddddddddddddddddddddddddddddddd -30 1 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +1 1 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 40 1 fffffffffffffffffffffffffffffffffffffffffff -50 1 ggggggggggggggggggggggggggggggggggggggggggg +1 1 ggggggggggggggggggggggggggggggggggggggggggg 60 1 hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -70 1 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +1 1 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 80 22 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 90 11 kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk commit; @@ -474,7 +473,7 @@ begin; ** Updating single row using a table scan. This will time out ** because of ongoing transaction on thread 1 holding lock on ** all primary keys in the scan. -** Not so if innodb_locks_unsafe_for_binlog is set. The locks that +** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that ** do not match the WHERE condition are released. update t1 set tipo=11 where tipo=22; ** After the time out the transaction is aborted; no rows should @@ -733,7 +732,7 @@ begin; ** Update on t1 will cause a table scan which will be blocked because ** the previously initiated table scan applied exclusive key locks on ** all primary keys. -** Not so if innodb_locks_unsafe_for_binlog is set. The locks that +** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that ** do not match the WHERE condition are released. update t1 set tipo=1 where tipo=22; select * from t1; @@ -785,12 +784,11 @@ eta tipo c 70 1 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 80 1 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 90 11 kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk -** Cleanup -connection thread1; disconnect thread1; -connection thread2; disconnect thread2; connection default; drop table t1; drop user mysqltest@localhost; SET SQL_MODE=default; +SET GLOBAL innodb_lock_wait_timeout = @save_timeout; +SET GLOBAL tx_isolation = @save_isolation; |