diff options
author | dan miller | 2007-10-20 02:49:29 +0000 |
---|---|---|
committer | dan miller | 2007-10-20 02:49:29 +0000 |
commit | e36d23a85ebff914d74bb541558c2b6082b78edb (patch) | |
tree | 54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test | |
parent | * Fixed an issue whereby avatar chat distances were being calculated against ... (diff) | |
download | opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2 opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz |
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test b/libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test new file mode 100644 index 0000000..72561d8 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/fts2h.test | |||
@@ -0,0 +1,76 @@ | |||
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 | ||