⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tablelockbasic.out

📁 derby database source code.good for you.
💻 OUT
📖 第 1 页 / 共 3 页
字号:
ij> set isolation to RR;0 rows inserted/updated/deletedij> run resource 'TableLockBasic.subsql';ij> -- Very basic single user testing of table locking, verify that the right locks-- are obtained for simple operations.  This test only looks at table and-- row logical locks, it does not verify physical latches or lock ordering.---- The basic methodology is:--    start transaction--    simple operation--    print lock table which should match the master--    end transation-- run resource 'createTestProcedures.subsql';ij> CREATE FUNCTION  PADSTRING (DATA VARCHAR(32000), LENGTH INTEGER) RETURNS VARCHAR(32000) EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.Formatters.padString' LANGUAGE JAVA PARAMETER STYLE JAVA;0 rows inserted/updated/deletedij> CREATE PROCEDURE WAIT_FOR_POST_COMMIT() DYNAMIC RESULT SETS 0 LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.T_Access.waitForPostCommitToFinish' PARAMETER STYLE JAVA;0 rows inserted/updated/deletedij> run resource 'LockTableQuery.subsql';ij> create view lock_table asselect     cast(username as char(8)) as username,    cast(t.type as char(8)) as trantype,    cast(l.type as char(8)) as type,    cast(lockcount as char(3)) as cnt,    mode,    cast(tablename as char(12)) as tabname,    cast(lockname as char(10)) as lockname,    state,    statusfrom     new org.apache.derby.diag.LockTable() l  right outer join new org.apache.derby.diag.TransactionTable() ton l.xid = t.xid where l.tableType <> 'S' and t.type='UserTransaction';0 rows inserted/updated/deletedij> --on l.xid = t.xid where l.tableType <> 'S' or l.tableType is null-- order by--     tabname, type desc, mode, cnt, lockname-- lock table with system catalog locks included.create view full_lock_table asselect     cast(username as char(8)) as username,    cast(t.type as char(8)) as trantype,    cast(l.type as char(8)) as type,    cast(lockcount as char(3)) as cnt,    mode,    cast(tablename as char(12)) as tabname,    cast(lockname as char(10)) as lockname,    state,    statusfrom     new org.apache.derby.diag.LockTable() l right outer join new org.apache.derby.diag.TransactionTable() ton l.xid = t.xid where l.tableType <> 'S' ;0 rows inserted/updated/deletedij> -- lock table with no join.create view lock_table2 asselect     cast(l.xid as char(8)) as xid,    cast(l.type as char(8)) as type,    cast(lockcount as char(3)) as cnt,    mode,    cast(tablename as char(12)) as tabname,    cast(lockname as char(10)) as lockname,    statefrom     new org.apache.derby.diag.LockTable() l  where l.tableType <> 'S' ;0 rows inserted/updated/deletedij> -- transaction table with no join.create view tran_table asselect     *from     new org.apache.derby.diag.TransactionTable() t ;0 rows inserted/updated/deletedij> autocommit off;ij> create table heap_only (a int);0 rows inserted/updated/deletedij> commit;ij> ---------------------------------------------------------------------------------- Test insert into empty heap, should just get table lock --------------------------------------------------------------------------------insert into heap_only values (1);1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |1   |X   |HEAP_ONLY   |Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test insert into heap with one row, just get table lock --------------------------------------------------------------------------------insert into heap_only values (2);1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |1   |X   |HEAP_ONLY   |Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test select from a heap, should get shared table lock.--------------------------------------------------------------------------------select a from heap_only where a = 1;A          -----------1          ij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |1   |S   |HEAP_ONLY   |Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test delete from a heap, should get exclusive table lock.--------------------------------------------------------------------------------delete from heap_only where a = 1;1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |2   |X   |HEAP_ONLY   |Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test update to heap, should get exclusive table lock.--------------------------------------------------------------------------------update heap_only set a = 1000 where a = 2;1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |2   |X   |HEAP_ONLY   |Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test drop of heap, should get exclusive table lock.--------------------------------------------------------------------------------drop table heap_only;0 rows inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |3   |X   |*** TRANSIEN|Tablelock |GRANT|ACTIVE  ij> commit;ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', '4096');0 rows inserted/updated/deletedij> create table indexed_heap (a int, b varchar(1000));0 rows inserted/updated/deletedij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', NULL);0 rows inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |1   |X   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  ij> commit;ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', '4096');0 rows inserted/updated/deletedij> create index a_idx on indexed_heap (a, b);0 rows inserted/updated/deletedij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', NULL);0 rows inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |4   |S   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  APP     |UserTran|TABLE   |1   |X   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  APP     |UserTran|TABLE   |1   |X   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test insert into indexed heap, should just get table lock --------------------------------------------------------------------------------insert into indexed_heap (a) values (1);1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |2   |X   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test insert into indexed heap with one row, just get table lock --------------------------------------------------------------------------------insert into indexed_heap (a) values (2);1 row inserted/updated/deletedij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |2   |X   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  ij> commit;ij> ---------------------------------------------------------------------------------- Test select from a indexed heap, should get shared table lock.--------------------------------------------------------------------------------select a from indexed_heap where a = 1;A          -----------1          ij> select * from lock_table order by tabname, type desc, mode, cnt, lockname;USERNAME|TRANTYPE|TYPE    |CNT |MODE|TABNAME     |LOCKNAME  |STATE|STATUS  ---------------------------------------------------------------------------APP     |UserTran|TABLE   |1   |S   |INDEXED_HEAP|Tablelock |GRANT|ACTIVE  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -