mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge mysql.com:/home/marty/MySQL/mysql-4.1
into mysql.com:/home/marty/MySQL/mysql-5.0 sql/ha_ndbcluster.cc: Merge (using local)
This commit is contained in:
@ -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 x = 1 lock in share mode;
|
||||
x y
|
||||
1 one
|
||||
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 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;
|
||||
|
@ -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;
|
||||
@ -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;
|
||||
@ -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
|
||||
@ -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;
|
||||
@ -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
|
||||
|
Reference in New Issue
Block a user