2001-11-26 02:16:38 +02:00
|
|
|
-- source include/have_bdb.inc
|
|
|
|
|
|
|
|
connect (con1,localhost,root,,);
|
|
|
|
connect (con2,localhost,root,,);
|
|
|
|
|
2003-01-06 01:48:59 +02:00
|
|
|
--disable_warnings
|
2001-11-26 02:16:38 +02:00
|
|
|
drop table if exists t1,t2;
|
2003-01-06 01:48:59 +02:00
|
|
|
--enable_warnings
|
2001-11-26 02:16:38 +02:00
|
|
|
connection con1;
|
2003-12-10 04:31:42 +00:00
|
|
|
create table t1 (id integer, x integer) engine=BDB;
|
|
|
|
create table t2 (id integer, x integer) engine=BDB;
|
2001-11-26 02:16:38 +02:00
|
|
|
insert into t1 values(0, 0);
|
|
|
|
insert into t2 values(0, 0);
|
|
|
|
set autocommit=0;
|
|
|
|
update t1 set x = 1 where id = 0;
|
|
|
|
|
|
|
|
connection con2;
|
|
|
|
set autocommit=0;
|
|
|
|
update t2 set x = 1 where id = 0;
|
|
|
|
|
|
|
|
# The following query should hang because con1 is locking the page
|
|
|
|
--send
|
|
|
|
select x from t1 where id = 0;
|
|
|
|
|
|
|
|
connection con1;
|
|
|
|
# This should generate a deadlock as we are trying to access a locked row
|
2002-10-30 15:57:05 +04:00
|
|
|
--send
|
2001-11-26 02:16:38 +02:00
|
|
|
select x from t2 where id = 0;
|
|
|
|
|
|
|
|
connection con2;
|
2002-10-30 15:57:05 +04:00
|
|
|
--error 1213
|
2002-11-12 19:21:11 +04:00
|
|
|
reap;
|
2002-10-30 15:57:05 +04:00
|
|
|
commit;
|
|
|
|
|
|
|
|
connection con1;
|
2002-11-12 19:21:11 +04:00
|
|
|
reap;
|
2001-11-26 02:16:38 +02:00
|
|
|
commit;
|
2002-10-30 15:57:05 +04:00
|
|
|
|
|
|
|
connection con2;
|
2001-11-26 02:16:38 +02:00
|
|
|
select * from t1;
|
|
|
|
select * from t2;
|
|
|
|
commit;
|
|
|
|
|
|
|
|
connection con1;
|
|
|
|
select * from t1;
|
|
|
|
select * from t2;
|
|
|
|
commit;
|
2002-10-30 15:57:05 +04:00
|
|
|
|
2001-11-26 02:16:38 +02:00
|
|
|
drop table t1,t2;
|
2005-07-28 03:22:47 +03:00
|
|
|
|
|
|
|
# End of 4.1 tests
|