113 lines
2.3 KiB
Plaintext
113 lines
2.3 KiB
Plaintext
--disable_query_log
|
|
set @@session.explicit_defaults_for_timestamp=off;
|
|
--enable_query_log
|
|
# owner: yuchen.wyc
|
|
# owner group: SQL1
|
|
# description: OUR GOAL: Make all this simple and effective!
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
|
|
--echo set timeout to 10s
|
|
connect (conn3,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
|
|
|
set global ob_trx_timeout = 10000000;
|
|
create table t1(c1 int primary key, c2 int);
|
|
insert into t1 values(1,1);
|
|
insert into t1 values(2,2);
|
|
insert into t1 values(3,3);
|
|
disconnect conn3;
|
|
|
|
--echo create 2 sessions
|
|
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
|
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
|
|
|
|
|
connection conn1;
|
|
--echo trx timeout
|
|
begin;
|
|
insert into t1 values(4,4);
|
|
--real_sleep 3
|
|
insert into t1 values(5,5);
|
|
--real_sleep 3
|
|
insert into t1 values(6,6);
|
|
--real_sleep 3
|
|
commit;
|
|
|
|
select * from t1;
|
|
|
|
begin;
|
|
insert into t1 values(7,7);
|
|
--real_sleep 3
|
|
insert into t1 values(8,8);
|
|
--real_sleep 3
|
|
insert into t1 values(9,9);
|
|
--real_sleep 3
|
|
insert into t1 values(10,10);
|
|
--real_sleep 3
|
|
--error 6002
|
|
commit;
|
|
|
|
select * from t1;
|
|
|
|
--echo trx idle timeout
|
|
|
|
begin;
|
|
insert into t1 values(11,11);
|
|
--real_sleep 12
|
|
--error 4012
|
|
insert into t1 values(12,12);
|
|
--error 6002
|
|
commit;
|
|
|
|
select * from t1;
|
|
|
|
--echo test two users
|
|
|
|
#下面的case,在切主场景下,上面的事务被kill,行锁会释放,下面的事务不会有锁冲突,从而造成case失败
|
|
#connection conn1;
|
|
#begin;
|
|
#select * from t1 where c1=1 for update;
|
|
#sleep 11;
|
|
#connection conn2;
|
|
#begin;
|
|
#--error 1205,4012
|
|
#select * from t1 where c1=1 for update;
|
|
#--error 4012
|
|
#update t1 set c2=1 where c1=1;
|
|
#--error 4012
|
|
#commit;
|
|
#select * from t1;
|
|
#connection conn1;
|
|
#--error 4012
|
|
#commit;
|
|
|
|
#begin;
|
|
#update t1 set c2=1 where c1=2;
|
|
#--real_sleep 3
|
|
#update t1 set c2=1 where c1=3;
|
|
#--real_sleep 3
|
|
#update t1 set c2=1 where c1=4;
|
|
#--real_sleep 3
|
|
#update t1 set c2=1 where c1=5;
|
|
#--real_sleep 3
|
|
|
|
#connection conn2;
|
|
#begin;
|
|
#--error 1205,4012
|
|
#update t1 set c2=c2+1 where c1=2;
|
|
#--error 4012
|
|
#update t1 set c2=c2+1 where c1=3;
|
|
#--error 4012
|
|
#update t1 set c2=c2+1 where c1=4;
|
|
#--error 4012
|
|
#update t1 set c2=c2+1 where c1=5;
|
|
#--error 4012
|
|
#commit;
|
|
#select * from t1;
|
|
#connection conn1;
|
|
#--error 4012
|
|
#commit;
|
|
set global ob_trx_timeout = 100000000;
|