Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Test that terms longer than interior nodes work correctly. A bug prior to fts2.c r1.10 meant that such large terms caused an eventual stack overflow. (CVS 3523) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
66581162daa188d23078c9d21fd5b256 |
User & Date: | shess 2006-11-29 21:03:01.000 |
Context
2006-11-29
| ||
23:41 | Drop a couple variables which are no longer used anywhere. (CVS 3524) (check-in: 08c2cc0e07 user: shess tags: trunk) | |
21:03 | Test that terms longer than interior nodes work correctly. A bug prior to fts2.c r1.10 meant that such large terms caused an eventual stack overflow. (CVS 3523) (check-in: 66581162da user: shess tags: trunk) | |
20:53 | Added the speed1.test script (CVS 3522) (check-in: 30355dfbd9 user: drh tags: trunk) | |
Changes
Added test/fts2h.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | # 2006 October 31 (scaaarey) # # The author disclaims copyright to this source code. # #************************************************************************* # This file implements regression tests for SQLite library. The focus # here is testing correct handling of excessively long terms. # # $Id: fts2h.test,v 1.1 2006/11/29 21:03:01 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 } # Generate a term of len copies of char. proc bigterm {char len} { for {set term ""} {$len>0} {incr len -1} { append term $char } return $term } # Generate a document of bigterms based on characters from the list # chars. proc bigtermdoc {chars len} { set doc "" foreach char $chars { append doc " " [bigterm $char $len] } return $doc } set len 5000 set doc1 [bigtermdoc {a b c d} $len] set doc2 [bigtermdoc {b d e f} $len] set doc3 [bigtermdoc {a c e} $len] set aterm [bigterm a $len] set bterm [bigterm b $len] set xterm [bigterm x $len] db eval { CREATE VIRTUAL TABLE t1 USING fts2(content); INSERT INTO t1 (rowid, content) VALUES(1, $doc1); INSERT INTO t1 (rowid, content) VALUES(2, $doc2); INSERT INTO t1 (rowid, content) VALUES(3, $doc3); } # No hits at all. Returns empty doclists from termSelect(). do_test fts2h-1.1 { execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something'} } {} do_test fts2h-1.2 { execsql {SELECT rowid FROM t1 WHERE t1 MATCH $aterm} } {1 3} do_test fts2h-1.2 { execsql {SELECT rowid FROM t1 WHERE t1 MATCH $xterm} } {} do_test fts2h-1.3 { execsql "SELECT rowid FROM t1 WHERE t1 MATCH '$aterm -$xterm'" } {1 3} do_test fts2h-1.4 { execsql "SELECT rowid FROM t1 WHERE t1 MATCH '\"$aterm $bterm\"'" } {1} finish_test |