4 changed files with 178 additions and 0 deletions
-
35mysql-test/suite/tokudb/r/i_s_tokudb_lock_waits_released.result
-
24mysql-test/suite/tokudb/r/i_s_tokudb_locks_released.result
-
65mysql-test/suite/tokudb/t/i_s_tokudb_lock_waits_released.test
-
54mysql-test/suite/tokudb/t/i_s_tokudb_locks_released.test
@ -0,0 +1,35 @@ |
|||
set default_storage_engine='tokudb'; |
|||
set tokudb_prelock_empty=false; |
|||
drop table if exists t; |
|||
create table t (id int primary key); |
|||
set autocommit=0; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
select * from information_schema.tokudb_lock_waits; |
|||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time |
|||
select * from information_schema.tokudb_trx; |
|||
trx_id trx_mysql_thread_id |
|||
set autocommit=0; |
|||
insert into t values (1); |
|||
set autocommit=0; |
|||
insert into t values (1); |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
select * from information_schema.tokudb_lock_waits; |
|||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time |
|||
REQUEST_TRX_ID BLOCK_TRX_ID ./test/t-main 0001000000 0001000000 LOCK_WAITS_START_TIME |
|||
select * from information_schema.tokudb_trx; |
|||
trx_id trx_mysql_thread_id |
|||
TRX_ID MYSQL_ID |
|||
TRX_ID MYSQL_ID |
|||
commit; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
commit; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
drop table t; |
|||
@ -0,0 +1,24 @@ |
|||
set default_storage_engine='tokudb'; |
|||
set tokudb_prelock_empty=false; |
|||
drop table if exists t; |
|||
create table t (id int primary key); |
|||
set autocommit=0; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
set autocommit=0; |
|||
insert into t values (1); |
|||
set autocommit=0; |
|||
insert into t values (1); |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
commit; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
commit; |
|||
select * from information_schema.tokudb_locks; |
|||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right |
|||
drop table t; |
|||
@ -0,0 +1,65 @@ |
|||
# verify that information_schema.tokudb_locks gets populated with locks, information_schema.tokudb_lock_waits gets |
|||
# populated with 1 lock_wait and all transactions are present in information_schema.tokudb_trx for 2 clients |
|||
|
|||
source include/have_tokudb.inc; |
|||
set default_storage_engine='tokudb'; |
|||
set tokudb_prelock_empty=false; |
|||
disable_warnings; |
|||
drop table if exists t; |
|||
enable_warnings; |
|||
|
|||
create table t (id int primary key); |
|||
set autocommit=0; |
|||
let $default_id=`select connection_id()`; |
|||
|
|||
# should be empty |
|||
select * from information_schema.tokudb_locks; |
|||
select * from information_schema.tokudb_lock_waits; |
|||
select * from information_schema.tokudb_trx; |
|||
|
|||
connect (conn_a,localhost,root,,); |
|||
set autocommit=0; |
|||
let $a_id=`select connection_id()`; |
|||
|
|||
insert into t values (1); |
|||
|
|||
connect (conn_b,localhost,root,,); |
|||
set autocommit=0; |
|||
let $b_id=`select connection_id()`; |
|||
|
|||
send insert into t values (1); |
|||
|
|||
|
|||
# should find the presence of a lock on 1st transaction |
|||
connection default; |
|||
replace_column 1 TRX_ID 2 MYSQL_ID; |
|||
eval select * from information_schema.tokudb_locks; |
|||
|
|||
# should find the presence of a lock_wait on the 2nd transaction |
|||
replace_column 1 REQUEST_TRX_ID 2 BLOCK_TRX_ID 6 LOCK_WAITS_START_TIME; |
|||
eval select * from information_schema.tokudb_lock_waits; |
|||
|
|||
# should find the presence of two transactions |
|||
replace_column 1 TRX_ID 2 MYSQL_ID; |
|||
eval select * from information_schema.tokudb_trx; |
|||
|
|||
connection conn_a; |
|||
commit; |
|||
# verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction |
|||
replace_column 1 TRX_ID 2 MYSQL_ID; |
|||
eval select * from information_schema.tokudb_locks; |
|||
|
|||
connection conn_b; |
|||
--error 1062 |
|||
reap; |
|||
commit; |
|||
|
|||
disconnect conn_b; |
|||
|
|||
connection default; |
|||
# verify that the lock on the 2nd transaction has been released |
|||
# should be be empty |
|||
select * from information_schema.tokudb_locks; |
|||
|
|||
|
|||
drop table t; |
|||
@ -0,0 +1,54 @@ |
|||
# verify that information_schema.tokudb_locks gets populated with locks for 2 clients |
|||
|
|||
source include/have_tokudb.inc; |
|||
set default_storage_engine='tokudb'; |
|||
set tokudb_prelock_empty=false; |
|||
disable_warnings; |
|||
drop table if exists t; |
|||
enable_warnings; |
|||
|
|||
create table t (id int primary key); |
|||
set autocommit=0; |
|||
let $default_id=`select connection_id()`; |
|||
|
|||
# should be empty |
|||
select * from information_schema.tokudb_locks; |
|||
|
|||
|
|||
connect (conn_a,localhost,root,,); |
|||
set autocommit=0; |
|||
let $a_id=`select connection_id()`; |
|||
|
|||
insert into t values (1); |
|||
|
|||
connect (conn_b,localhost,root,,); |
|||
set autocommit=0; |
|||
let $b_id=`select connection_id()`; |
|||
|
|||
send insert into t values (1); |
|||
|
|||
|
|||
# should find the presence of a lock on 2nd transaction |
|||
connection default; |
|||
replace_column 1 TRX_ID 2 MYSQL_ID; |
|||
eval select * from information_schema.tokudb_locks; |
|||
|
|||
connection conn_a; |
|||
commit; |
|||
# verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction |
|||
replace_column 1 TRX_ID 2 MYSQL_ID; |
|||
select * from information_schema.tokudb_locks; |
|||
|
|||
connection conn_b; |
|||
--error 1062 |
|||
reap; |
|||
commit; |
|||
|
|||
disconnect conn_b; |
|||
|
|||
connection default; |
|||
# verify that the lockwait on the 2nd transaction has been released |
|||
# should be be empty |
|||
select * from information_schema.tokudb_locks; |
|||
|
|||
drop table t; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue