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

📄 fts2k.test

📁 最新的sqlite3.6.2源代码
💻 TEST
字号:
# 2007 March 9## The author disclaims copyright to this source code.##*************************************************************************# This file implements regression tests for SQLite library.  These# make sure that fts2 insertion buffering is fully transparent when# using transactions.## $Id: fts2k.test,v 1.2 2007/08/10 23:47:04 shess Exp $#set testdir [file dirname $argv0]source $testdir/tester.tcl# If SQLITE_ENABLE_FTS2 is defined, omit this file.ifcapable !fts2 {  finish_test  return}db eval {  CREATE VIRTUAL TABLE t1 USING fts2(content);  INSERT INTO t1 (rowid, content) VALUES(1, "hello world");  INSERT INTO t1 (rowid, content) VALUES(2, "hello there");  INSERT INTO t1 (rowid, content) VALUES(3, "cruel world");}# Test that possibly-buffered inserts went through after commit.do_test fts2k-1.1 {  execsql {    BEGIN TRANSACTION;    INSERT INTO t1 (rowid, content) VALUES(4, "false world");    INSERT INTO t1 (rowid, content) VALUES(5, "false door");    COMMIT TRANSACTION;    SELECT rowid FROM t1 WHERE t1 MATCH 'world';  }} {1 3 4}# Test that buffered inserts are seen by selects in the same# transaction.do_test fts2k-1.2 {  execsql {    BEGIN TRANSACTION;    INSERT INTO t1 (rowid, content) VALUES(6, "another world");    INSERT INTO t1 (rowid, content) VALUES(7, "another test");    SELECT rowid FROM t1 WHERE t1 MATCH 'world';    COMMIT TRANSACTION;  }} {1 3 4 6}# Test that buffered inserts are seen within a transaction.  This is# really the same test as 1.2.do_test fts2k-1.3 {  execsql {    BEGIN TRANSACTION;    INSERT INTO t1 (rowid, content) VALUES(8, "second world");    INSERT INTO t1 (rowid, content) VALUES(9, "second sight");    SELECT rowid FROM t1 WHERE t1 MATCH 'world';    ROLLBACK TRANSACTION;  }} {1 3 4 6 8}# Double-check that the previous result doesn't persist past the# rollback!do_test fts2k-1.4 {  execsql {    SELECT rowid FROM t1 WHERE t1 MATCH 'world';  }} {1 3 4 6}# Test it all together.do_test fts2k-1.5 {  execsql {    BEGIN TRANSACTION;    INSERT INTO t1 (rowid, content) VALUES(10, "second world");    INSERT INTO t1 (rowid, content) VALUES(11, "second sight");    ROLLBACK TRANSACTION;    SELECT rowid FROM t1 WHERE t1 MATCH 'world';  }} {1 3 4 6}# Test that the obvious case works.do_test fts2k-1.6 {  execsql {    BEGIN;    INSERT INTO t1 (rowid, content) VALUES(12, "third world");    COMMIT;    SELECT rowid FROM t1 WHERE t1 MATCH 'third';  }} {12}# This is exactly the same as the previous test, except that older# code loses the INSERT due to an SQLITE_SCHEMA error.do_test fts2k-1.7 {  execsql {    BEGIN;    INSERT INTO t1 (rowid, content) VALUES(13, "third dimension");    CREATE TABLE x (c);    COMMIT;    SELECT rowid FROM t1 WHERE t1 MATCH 'dimension';  }} {13}finish_test

⌨️ 快捷键说明

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