1*dee0359dSdan# 2006 September 9 2*dee0359dSdan# 3*dee0359dSdan# The author disclaims copyright to this source code. In place of 4*dee0359dSdan# a legal notice, here is a blessing: 5*dee0359dSdan# 6*dee0359dSdan# May you do good and not evil. 7*dee0359dSdan# May you find forgiveness for yourself and forgive others. 8*dee0359dSdan# May you share freely, never taking more than you give. 9*dee0359dSdan# 10*dee0359dSdan#************************************************************************* 11*dee0359dSdan# This file implements regression tests for SQLite library. The 12*dee0359dSdan# focus of this script is testing the FTS3 module. 13*dee0359dSdan# 14*dee0359dSdan# $Id: fts3aa.test,v 1.1 2007/08/20 17:38:42 shess Exp $ 15*dee0359dSdan# 16*dee0359dSdan 17*dee0359dSdanset testdir [file dirname $argv0] 18*dee0359dSdansource $testdir/tester.tcl 19*dee0359dSdanset testprefix fts3f 20*dee0359dSdan 21*dee0359dSdan# If SQLITE_ENABLE_FTS3 is defined, omit this file. 22*dee0359dSdanifcapable !fts3 { 23*dee0359dSdan finish_test 24*dee0359dSdan return 25*dee0359dSdan} 26*dee0359dSdan 27*dee0359dSdando_execsql_test 1.0 { 28*dee0359dSdan CREATE VIRTUAL TABLE ft USING fts3(x); 29*dee0359dSdan BEGIN; 30*dee0359dSdan INSERT INTO ft VALUES('a one'), ('b one'), ('c one'); 31*dee0359dSdan} 32*dee0359dSdan 33*dee0359dSdando_test 1.1 { 34*dee0359dSdan set ret [list] 35*dee0359dSdan db eval { SELECT docid FROM ft WHERE ft MATCH 'one' } { 36*dee0359dSdan if { $docid==2 } { 37*dee0359dSdan db eval COMMIT 38*dee0359dSdan } 39*dee0359dSdan lappend ret $docid 40*dee0359dSdan } 41*dee0359dSdan set ret 42*dee0359dSdan} {1 2 3} 43*dee0359dSdan 44*dee0359dSdando_execsql_test 1.2 { 45*dee0359dSdan BEGIN; 46*dee0359dSdan INSERT INTO ft VALUES('a one'), ('b one'), ('c one'); 47*dee0359dSdan} 48*dee0359dSdan 49*dee0359dSdando_execsql_test 1.3 { 50*dee0359dSdan SELECT docid, optimize(ft) FROM ft WHERE ft MATCH 'one' 51*dee0359dSdan} { 52*dee0359dSdan 1 {Index optimized} 2 {Index already optimal} 3 {Index already optimal} 53*dee0359dSdan 4 {Index already optimal} 54*dee0359dSdan 5 {Index already optimal} 6 {Index already optimal} 55*dee0359dSdan} 56*dee0359dSdan 57*dee0359dSdanfinish_test 58