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

📄 createtab.test

📁 sqlite-3.4.1,嵌入式数据库.是一个功能强大的开源数据库,给学习和研发以及小型公司的发展带来了全所未有的好处.
💻 TEST
字号:
# 2007 May 02## 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.##***********************************************************************# This file implements regression tests for SQLite library.  The# focus of this file is testing that it is OK to create new tables# and indices while creating existing tables and indices.## $Id: createtab.test,v 1.2 2007/05/04 14:36:22 drh Exp $set testdir [file dirname $argv0]source $testdir/tester.tclifcapable autovacuum {  set upperBound 2} else {  set upperBound 0}# Run these tests for all possible values of autovacuum.#for {set av 0} {$av<=$upperBound} {incr av} {  db close  file delete -force test.db test.db-journal  sqlite3 db test.db  # Create a table that spans multiple pages.  It is important  # that part of the database be in pages beyond the root page.  #  do_test createtab-$av.1 {    execsql "PRAGMA auto_vacuum=$av"    execsql {      PRAGMA page_size=1024;      CREATE TABLE t1(x INTEGER PRIMARY KEY, y);      INSERT INTO t1 VALUES(1, hex(randomblob(200)));      INSERT INTO t1 VALUES(2, hex(randomblob(200)));      INSERT INTO t1 VALUES(3, hex(randomblob(200)));      INSERT INTO t1 VALUES(4, hex(randomblob(200)));      SELECT count(*) FROM t1;    }  } {4}  do_test createtab-$av.2 {    file size test.db  } [expr {1024*(4+($av!=0)+([execsql {PRAGMA encoding}]!="UTF-8")*2)}]    # Start reading the table  #  do_test createtab-$av.3 {    set STMT [sqlite3_prepare db {SELECT x FROM t1} -1 TAIL]    sqlite3_step $STMT  } {SQLITE_ROW}  do_test createtab-$av.4 {    sqlite3_column_int $STMT 0  } {1}    # While still reading the table, create a new table.  #  do_test createtab-$av.5 {    execsql {      CREATE TABLE t2(a,b);      INSERT INTO t2 VALUES(1,2);      SELECT * FROM t2;    }  } {1 2}    # Continue reading the original table.  #  do_test createtab-$av.6 {    sqlite3_column_int $STMT 0  } {1}  do_test createtab-$av.7 {    sqlite3_step $STMT  } {SQLITE_ROW}  do_test createtab-$av.8 {    sqlite3_column_int $STMT 0  } {2}    # Do another cycle of creating a new database table while contining  # to read the original table.  #  do_test createtab-$av.11 {    execsql {      CREATE TABLE t3(a,b);      INSERT INTO t3 VALUES(4,5);      SELECT * FROM t3;    }  } {4 5}  do_test createtab-$av.12 {    sqlite3_column_int $STMT 0  } {2}  do_test createtab-$av.13 {    sqlite3_step $STMT  } {SQLITE_ROW}  do_test createtab-$av.14 {    sqlite3_column_int $STMT 0  } {3}    # One more cycle.  #  do_test createtab-$av.21 {    execsql {      CREATE TABLE t4(a,b);      INSERT INTO t4 VALUES('abc','xyz');      SELECT * FROM t4;    }  } {abc xyz}  do_test createtab-$av.22 {    sqlite3_column_int $STMT 0  } {3}  do_test createtab-$av.23 {    sqlite3_step $STMT  } {SQLITE_ROW}  do_test createtab-$av.24 {    sqlite3_column_int $STMT 0  } {4}    # Finish reading.  Do an integrity check on the database.  #  do_test createtab-$av.30 {    sqlite3_step $STMT  } {SQLITE_DONE}  do_test createtab-$av.31 {    sqlite3_finalize $STMT  } {SQLITE_OK}  do_test createtab-$av.32 {    execsql {      SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1    }  } {t1 t2 t3 t4}  integrity_check createtab-$av.40}  finish_test

⌨️ 快捷键说明

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