xref: /sqlite-3.40.0/test/fts3f.test (revision dee0359d)
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