Loading mysql-test/r/ndb_lock.result +51 −24 Original line number Diff line number Diff line Loading @@ -63,62 +63,89 @@ pk u o 5 5 5 insert into t1 values (1,1,1); drop table t1; create table t1 (x integer not null primary key, y varchar(32)) engine = ndb; insert into t1 values (1,'one'), (2,'two'),(3,"three"); create table t1 (x integer not null primary key, y varchar(32), z integer, key(z)) engine = ndb; insert into t1 values (1,'one',1), (2,'two',2),(3,"three",3); begin; select * from t1 where x = 1 for update; x y 1 one x y z 1 one 1 begin; select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where y = 'one' or y = 'three' for update; x y 3 three 1 one x y z 3 three 3 1 one 1 begin; select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where z > 1 and z < 3 for update; x y z 2 two 2 begin; select * from t1 where x = 1 for update; x y z 1 one 1 select * from t1 where x = 2 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where x = 1 lock in share mode; x y 1 one x y z 1 one 1 begin; select * from t1 where x = 1 lock in share mode; x y 1 one x y z 1 one 1 select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where y = 'one' or y = 'three' lock in share mode; x y 3 three 1 one x y z 3 three 3 1 one 1 begin; select * from t1 where y = 'one' lock in share mode; x y 1 one x y z 1 one 1 select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where z > 1 and z < 3 lock in share mode; x y z 2 two 2 begin; select * from t1 where z = 1 lock in share mode; x y z 1 one 1 select * from t1 where x = 1 for update; x y z 1 one 1 select * from t1 where x = 2 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; drop table t1; mysql-test/t/ndb_lock.test +39 −4 Original line number Diff line number Diff line Loading @@ -71,9 +71,9 @@ drop table t1; # Lock for update create table t1 (x integer not null primary key, y varchar(32)) engine = ndb; create table t1 (x integer not null primary key, y varchar(32), z integer, key(z)) engine = ndb; insert into t1 values (1,'one'), (2,'two'),(3,"three"); insert into t1 values (1,'one',1), (2,'two',2),(3,"three",3); # PK access connection con1; Loading @@ -90,7 +90,7 @@ rollback; connection con1; commit; # scan # table scan connection con1; begin; select * from t1 where y = 'one' or y = 'three' for update; Loading @@ -107,6 +107,23 @@ rollback; connection con1; commit; # index scan connection con1; begin; select * from t1 where z > 1 and z < 3 for update; connection con2; begin; # Have to check with pk access here since scans take locks on # all rows and then release them in chunks select * from t1 where x = 1 for update; --error 1205 select * from t1 where x = 2 for update; rollback; connection con1; commit; # share locking # PK access Loading @@ -125,7 +142,7 @@ rollback; connection con1; commit; # scan # table scan connection con1; begin; select * from t1 where y = 'one' or y = 'three' lock in share mode; Loading @@ -143,6 +160,24 @@ rollback; connection con1; commit; # index scan connection con1; begin; select * from t1 where z > 1 and z < 3 lock in share mode; connection con2; begin; select * from t1 where z = 1 lock in share mode; # Have to check with pk access here since scans take locks on # all rows and then release them in chunks select * from t1 where x = 1 for update; --error 1205 select * from t1 where x = 2 for update; rollback; connection con1; commit; drop table t1; # End of 4.1 tests Loading
mysql-test/r/ndb_lock.result +51 −24 Original line number Diff line number Diff line Loading @@ -63,62 +63,89 @@ pk u o 5 5 5 insert into t1 values (1,1,1); drop table t1; create table t1 (x integer not null primary key, y varchar(32)) engine = ndb; insert into t1 values (1,'one'), (2,'two'),(3,"three"); create table t1 (x integer not null primary key, y varchar(32), z integer, key(z)) engine = ndb; insert into t1 values (1,'one',1), (2,'two',2),(3,"three",3); begin; select * from t1 where x = 1 for update; x y 1 one x y z 1 one 1 begin; select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where y = 'one' or y = 'three' for update; x y 3 three 1 one x y z 3 three 3 1 one 1 begin; select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where z > 1 and z < 3 for update; x y z 2 two 2 begin; select * from t1 where x = 1 for update; x y z 1 one 1 select * from t1 where x = 2 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where x = 1 lock in share mode; x y 1 one x y z 1 one 1 begin; select * from t1 where x = 1 lock in share mode; x y 1 one x y z 1 one 1 select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where y = 'one' or y = 'three' lock in share mode; x y 3 three 1 one x y z 3 three 3 1 one 1 begin; select * from t1 where y = 'one' lock in share mode; x y 1 one x y z 1 one 1 select * from t1 where x = 2 for update; x y 2 two x y z 2 two 2 select * from t1 where x = 1 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; begin; select * from t1 where z > 1 and z < 3 lock in share mode; x y z 2 two 2 begin; select * from t1 where z = 1 lock in share mode; x y z 1 one 1 select * from t1 where x = 1 for update; x y z 1 one 1 select * from t1 where x = 2 for update; ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; drop table t1;
mysql-test/t/ndb_lock.test +39 −4 Original line number Diff line number Diff line Loading @@ -71,9 +71,9 @@ drop table t1; # Lock for update create table t1 (x integer not null primary key, y varchar(32)) engine = ndb; create table t1 (x integer not null primary key, y varchar(32), z integer, key(z)) engine = ndb; insert into t1 values (1,'one'), (2,'two'),(3,"three"); insert into t1 values (1,'one',1), (2,'two',2),(3,"three",3); # PK access connection con1; Loading @@ -90,7 +90,7 @@ rollback; connection con1; commit; # scan # table scan connection con1; begin; select * from t1 where y = 'one' or y = 'three' for update; Loading @@ -107,6 +107,23 @@ rollback; connection con1; commit; # index scan connection con1; begin; select * from t1 where z > 1 and z < 3 for update; connection con2; begin; # Have to check with pk access here since scans take locks on # all rows and then release them in chunks select * from t1 where x = 1 for update; --error 1205 select * from t1 where x = 2 for update; rollback; connection con1; commit; # share locking # PK access Loading @@ -125,7 +142,7 @@ rollback; connection con1; commit; # scan # table scan connection con1; begin; select * from t1 where y = 'one' or y = 'three' lock in share mode; Loading @@ -143,6 +160,24 @@ rollback; connection con1; commit; # index scan connection con1; begin; select * from t1 where z > 1 and z < 3 lock in share mode; connection con2; begin; select * from t1 where z = 1 lock in share mode; # Have to check with pk access here since scans take locks on # all rows and then release them in chunks select * from t1 where x = 1 for update; --error 1205 select * from t1 where x = 2 for update; rollback; connection con1; commit; drop table t1; # End of 4.1 tests