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

📄 diskfull.test

📁 sqlite-3.4.1,嵌入式数据库.是一个功能强大的开源数据库,给学习和研发以及小型公司的发展带来了全所未有的好处.
💻 TEST
字号:
# 2001 October 12## 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 for correct handling of disk full# errors.# # $Id: diskfull.test,v 1.6 2007/04/05 17:15:53 danielk1977 Exp $set testdir [file dirname $argv0]source $testdir/tester.tclset sqlite_io_error_persist 0set sqlite_io_error_hit 0set sqlite_io_error_pending 0do_test diskfull-1.1 {  execsql {    CREATE TABLE t1(x);    INSERT INTO t1 VALUES(randstr(1000,1000));    INSERT INTO t1 SELECT * FROM t1;    INSERT INTO t1 SELECT * FROM t1;    INSERT INTO t1 SELECT * FROM t1;    INSERT INTO t1 SELECT * FROM t1;    CREATE INDEX t1i1 ON t1(x);    CREATE TABLE t2 AS SELECT x AS a, x AS b FROM t1;    CREATE INDEX t2i1 ON t2(b);  }} {}set sqlite_diskfull_pending 0integrity_check diskfull-1.2do_test diskfull-1.3 {  set sqlite_diskfull_pending 1  catchsql {    INSERT INTO t1 SELECT * FROM t1;  }} {1 {database or disk is full}}set sqlite_diskfull_pending 0integrity_check diskfull-1.4do_test diskfull-1.5 {  set sqlite_diskfull_pending 1  catchsql {    DELETE FROM t1;  }} {1 {database or disk is full}}set sqlite_diskfull_pending 0set sqlite_io_error_hit 0integrity_check diskfull-1.6proc do_diskfull_test {prefix sql} {  set ::go 1  set ::sql $sql  set ::i 1  while {$::go} {    incr ::i    do_test ${prefix}.$::i.1 {      set ::sqlite_diskfull_pending $::i      set ::sqlite_diskfull 0      set r [catchsql $::sql]      if {!$::sqlite_diskfull} {        set r {1 {database or disk is full}}        set ::go 0      }      if {$r=="1 {disk I/O error}"} {        set r {1 {database or disk is full}}      }      set r    } {1 {database or disk is full}}    set ::sqlite_diskfull_pending 0    db close    sqlite3 db test.db    integrity_check ${prefix}.$::i.2  }}do_diskfull_test diskfull-2 VACUUM# db close# file delete -force test.db# file delete -force test.db-journal# sqlite3 db test.db# # do_test diskfull-3.1 {#   execsql {#     PRAGMA default_cache_size = 10;#     CREATE TABLE t3(a, b, UNIQUE(a, b));#     INSERT INTO t3 VALUES( randstr(100, 100), randstr(100, 100) );#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     INSERT INTO t3 SELECT randstr(100, 100), randstr(100, 100) FROM t3;#     UPDATE t3 #     SET b = (SELECT a FROM t3 WHERE rowid = (SELECT max(rowid)-1 FROM t3))#     WHERE rowid = (SELECT max(rowid) FROM t3);#     PRAGMA cache_size;#   }# } {10}# breakpoint# do_diskfull_test diskfull-3.2 {#   BEGIN;#     INSERT INTO t3 VALUES( randstr(100, 100), randstr(100, 100) );#     UPDATE t3 SET a = b;#   COMMIT;# }finish_test

⌨️ 快捷键说明

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