CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
fts3ag.test94 linesDownload Raw Back to test
1# 2006 October 192#3# The author disclaims copyright to this source code.4#5#*************************************************************************6# This file implements regression tests for SQLite library.  The focus7# of this script is testing handling of edge cases for various doclist8# merging functions in the FTS3 module query logic.9#10# $Id: fts3ag.test,v 1.2 2007/11/16 00:23:08 shess Exp $11#12 13set testdir [file dirname $argv0]14source $testdir/tester.tcl15 16# If SQLITE_ENABLE_FTS3 is defined, omit this file.17ifcapable !fts3 {18  finish_test19  return20}21 22db eval {23  CREATE VIRTUAL TABLE t1 USING fts3(content);24  INSERT INTO t1 (rowid, content) VALUES(1, 'this is a test');25  INSERT INTO t1 (rowid, content) VALUES(2, 'also a test');26}27 28# No hits at all.  Returns empty doclists from termSelect().29do_test fts3ag-1.1 {30  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something'}31} {}32 33# Empty left in docListExceptMerge().34do_test fts3ag-1.2 {35  execsql {SELECT rowid FROM t1 WHERE t1 MATCH '-this something'}36} {}37 38# Empty right in docListExceptMerge().39do_test fts3ag-1.3 {40  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'this -something'}41} {1}42 43# Empty left in docListPhraseMerge().44do_test fts3ag-1.4 {45  execsql {SELECT rowid FROM t1 WHERE t1 MATCH '"this something"'}46} {}47 48# Empty right in docListPhraseMerge().49do_test fts3ag-1.5 {50  execsql {SELECT rowid FROM t1 WHERE t1 MATCH '"something is"'}51} {}52 53# Empty left in docListOrMerge().54do_test fts3ag-1.6 {55  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something OR this'}56} {1}57 58# Empty right in docListOrMerge().59do_test fts3ag-1.7 {60  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'this OR something'}61} {1}62 63# Empty left in docListAndMerge().64do_test fts3ag-1.8 {65  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something this'}66} {}67 68# Empty right in docListAndMerge().69do_test fts3ag-1.9 {70  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'this something'}71} {}72 73# No support for all-except queries.74do_test fts3ag-1.10 {75  catchsql {SELECT rowid FROM t1 WHERE t1 MATCH '-this -something'}76} {1 {malformed MATCH expression: [-this -something]}}77 78# Test that docListOrMerge() correctly handles reaching the end of one79# doclist before it reaches the end of the other.80do_test fts3ag-1.11 {81  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'this OR also'}82} {1 2}83do_test fts3ag-1.12 {84  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'also OR this'}85} {1 2}86 87# Empty left and right in docListOrMerge().  Each term matches neither88# row, and when combined there was an assertion failure.89do_test fts3ag-1.13 {90  execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something OR nothing'}91} {}92 93finish_test94