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

📄 shared2.test

📁 sqlite-3.4.1,嵌入式数据库.是一个功能强大的开源数据库,给学习和研发以及小型公司的发展带来了全所未有的好处.
💻 TEST
字号:
# 2005 January 19## The author disclaims copyright to this source code.  In place of# a legal notice, here is a blessing:##    May you do good and not evil.#    May you find forgiveness for yourself and forgive others.#    May you share freely, never taking more than you give.##***********************************************************************## $Id: shared2.test,v 1.4 2006/01/26 13:11:37 danielk1977 Exp $set testdir [file dirname $argv0]source $testdir/tester.tcldb closeifcapable !shared_cache {  finish_test  return}set ::enable_shared_cache [sqlite3_enable_shared_cache 1]# Test that if we delete all rows from a table any read-uncommitted # cursors are correctly invalidated. Test on both table and index btrees.do_test shared2-1.1 {  sqlite3 db1 test.db  sqlite3 db2 test.db  # Set up some data. Table "numbers" has 64 rows after this block   # is executed.  execsql {    BEGIN;    CREATE TABLE numbers(a PRIMARY KEY, b);    INSERT INTO numbers(oid) VALUES(NULL);    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    INSERT INTO numbers(oid) SELECT NULL FROM numbers;    UPDATE numbers set a = oid, b = 'abcdefghijklmnopqrstuvwxyz0123456789';    COMMIT;  } db1} {}do_test shared2-1.2 {  # Put connection 2 in read-uncommitted mode and start a SELECT on table   # 'numbers'. Half way through the SELECT, use connection 1 to delete the  # contents of this table.  execsql {    pragma read_uncommitted = 1;  } db2  set count [execsql {SELECT count(*) FROM numbers} db2]  db2 eval {SELECT a FROM numbers ORDER BY oid} {    if {$a==32} {      execsql {        BEGIN;        DELETE FROM numbers;      } db1    }  }  list $a $count} {32 64}do_test shared2-1.3 {  # Same test as 1.2, except scan using the index this time.  execsql {    ROLLBACK;  } db1  set count [execsql {SELECT count(*) FROM numbers} db2]  db2 eval {SELECT a, b FROM numbers ORDER BY a} {    if {$a==32} {      execsql {        DELETE FROM numbers;      } db1    }  }  list $a $count} {32 64}#---------------------------------------------------------------------------# These tests, shared2.2.*, test the outcome when data is added to or # removed from a table due to a rollback while a read-uncommitted # cursor is scanning it.#do_test shared2-2.1 {  execsql {    INSERT INTO numbers VALUES(1, 'Medium length text field');    INSERT INTO numbers VALUES(2, 'Medium length text field');    INSERT INTO numbers VALUES(3, 'Medium length text field');    INSERT INTO numbers VALUES(4, 'Medium length text field');    BEGIN;    DELETE FROM numbers WHERE (a%2)=0;  } db1  set res [list]  db2 eval {    SELECT a FROM numbers ORDER BY a;  } {    lappend res $a    if {$a==3} {      execsql {ROLLBACK} db1    }  }  set res} {1 3 4}do_test shared2-2.2 {  execsql {    BEGIN;    INSERT INTO numbers VALUES(5, 'Medium length text field');    INSERT INTO numbers VALUES(6, 'Medium length text field');  } db1  set res [list]  db2 eval {    SELECT a FROM numbers ORDER BY a;  } {    lappend res $a    if {$a==5} {      execsql {ROLLBACK} db1    }  }  set res} {1 2 3 4 5}db1 closedb2 closedo_test shared2-3.2 {  sqlite3_thread_cleanup  sqlite3_enable_shared_cache 1} {0}sqlite3_enable_shared_cache $::enable_shared_cachefinish_test

⌨️ 快捷键说明

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