Annotation of embedaddon/sqlite3/test/fts2h.test, revision 1.1
1.1 ! misho 1: # 2006 October 31 (scaaarey)
! 2: #
! 3: # The author disclaims copyright to this source code.
! 4: #
! 5: #*************************************************************************
! 6: # This file implements regression tests for SQLite library. The focus
! 7: # here is testing correct handling of excessively long terms.
! 8: #
! 9: # $Id: fts2h.test,v 1.1 2006/11/29 21:03:01 shess Exp $
! 10: #
! 11:
! 12: set testdir [file dirname $argv0]
! 13: source $testdir/tester.tcl
! 14:
! 15: # If SQLITE_ENABLE_FTS2 is defined, omit this file.
! 16: ifcapable !fts2 {
! 17: finish_test
! 18: return
! 19: }
! 20:
! 21: # Generate a term of len copies of char.
! 22: proc bigterm {char len} {
! 23: for {set term ""} {$len>0} {incr len -1} {
! 24: append term $char
! 25: }
! 26: return $term
! 27: }
! 28:
! 29: # Generate a document of bigterms based on characters from the list
! 30: # chars.
! 31: proc bigtermdoc {chars len} {
! 32: set doc ""
! 33: foreach char $chars {
! 34: append doc " " [bigterm $char $len]
! 35: }
! 36: return $doc
! 37: }
! 38:
! 39: set len 5000
! 40: set doc1 [bigtermdoc {a b c d} $len]
! 41: set doc2 [bigtermdoc {b d e f} $len]
! 42: set doc3 [bigtermdoc {a c e} $len]
! 43:
! 44: set aterm [bigterm a $len]
! 45: set bterm [bigterm b $len]
! 46: set xterm [bigterm x $len]
! 47:
! 48: db eval {
! 49: CREATE VIRTUAL TABLE t1 USING fts2(content);
! 50: INSERT INTO t1 (rowid, content) VALUES(1, $doc1);
! 51: INSERT INTO t1 (rowid, content) VALUES(2, $doc2);
! 52: INSERT INTO t1 (rowid, content) VALUES(3, $doc3);
! 53: }
! 54:
! 55: # No hits at all. Returns empty doclists from termSelect().
! 56: do_test fts2h-1.1 {
! 57: execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something'}
! 58: } {}
! 59:
! 60: do_test fts2h-1.2 {
! 61: execsql {SELECT rowid FROM t1 WHERE t1 MATCH $aterm}
! 62: } {1 3}
! 63:
! 64: do_test fts2h-1.2 {
! 65: execsql {SELECT rowid FROM t1 WHERE t1 MATCH $xterm}
! 66: } {}
! 67:
! 68: do_test fts2h-1.3 {
! 69: execsql "SELECT rowid FROM t1 WHERE t1 MATCH '$aterm -$xterm'"
! 70: } {1 3}
! 71:
! 72: do_test fts2h-1.4 {
! 73: execsql "SELECT rowid FROM t1 WHERE t1 MATCH '\"$aterm $bterm\"'"
! 74: } {1}
! 75:
! 76: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>