bdb-deadlock.tminus
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # This test doesn't work with the embedded version as this code
  2. # assumes that one query is running while we are doing queries on
  3. # a second connection.
  4. # This would work if mysqltest run would be threaded and handle each
  5. # connection in a separate thread.
  6. #
  7. #-- source include/not_embedded.inc
  8. -- source include/have_bdb.inc
  9. connect (con1,localhost,root,,);
  10. connect (con2,localhost,root,,);
  11. --disable_warnings
  12. drop table if exists t1,t2;
  13. --enable_warnings
  14. connection con1;
  15. create table t1 (id integer, x integer) engine=BDB;
  16. create table t2 (id integer, x integer) engine=BDB;
  17. insert into t1 values(0, 0);
  18. insert into t2 values(0, 0);
  19. set autocommit=0;
  20. update t1 set x = 1 where id = 0;
  21. connection con2;
  22. set autocommit=0;
  23. update t2 set x = 1 where id = 0;
  24. # The following query should hang because con1 is locking the page
  25. --send
  26. select x from t1 where id = 0;
  27. connection con1;
  28. # This should generate a deadlock as we are trying to access a locked row
  29. --send
  30. select x from t2 where id = 0;
  31. connection con2;
  32. --error 1213
  33. reap;
  34. commit;
  35. connection con1;
  36. reap;
  37. commit;
  38. connection con2;
  39. select * from t1;
  40. select * from t2;
  41. commit;
  42. connection con1;
  43. select * from t1;
  44. select * from t2;
  45. commit;
  46. drop table t1,t2;
  47. # End of 4.1 tests