Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(498)

Side by Side Diff: third_party/sqlite/sqlite-src-3170000/test/fts3offsets.test

Issue 2747283002: [sql] Import reference version of SQLite 3.17.. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # 2010 November 02
2 #
3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing:
5 #
6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give.
9 #
10 #***********************************************************************
11 #
12
13 set testdir [file dirname $argv0]
14 source $testdir/tester.tcl
15
16 # If SQLITE_ENABLE_FTS3 is not defined, omit this file.
17 ifcapable !fts3 { finish_test ; return }
18
19 set testprefix fts3offsets
20 set sqlite_fts3_enable_parentheses 1
21
22 proc extract {offsets text} {
23 set res ""
24
25 set off [list]
26 foreach {t i s n} $offsets {
27 lappend off [list $s $n]
28 }
29 set off [lsort -integer -index 0 $off]
30
31 set iOff 0
32 foreach e $off {
33 foreach {s n} $e {}
34 append res [string range $text $iOff $s-1]
35 append res "("
36 append res [string range $text $s [expr $s+$n-1]]
37 append res ")"
38 set iOff [expr $s+$n]
39 }
40 append res [string range $text $iOff end]
41
42 set res
43 }
44 db func extract extract
45
46
47 do_execsql_test 1.1.0 {
48 CREATE VIRTUAL TABLE xx USING fts3(x);
49 INSERT INTO xx VALUES('A x x x B C x x');
50 INSERT INTO xx VALUES('A B C x B x x C');
51 INSERT INTO xx VALUES('A x x B C x x x');
52 }
53 do_execsql_test 1.1.1 {
54 SELECT oid,extract(offsets(xx), x) FROM xx WHERE xx MATCH 'a OR (b NEAR/1 c)';
55 } {
56 1 {(A) x x x (B) (C) x x}
57 2 {(A) (B) (C) x (B) x x C}
58 3 {(A) x x (B) (C) x x x}
59 }
60
61 do_execsql_test 1.2 {
62 DELETE FROM xx;
63 INSERT INTO xx VALUES('A x x x B C x x');
64 INSERT INTO xx VALUES('A x x C x x x C');
65 INSERT INTO xx VALUES('A x x B C x x x');
66 }
67 do_execsql_test 1.2.1 {
68 SELECT oid,extract(offsets(xx), x) FROM xx WHERE xx MATCH 'a OR (b NEAR/1 c)';
69 } {
70 1 {(A) x x x (B) (C) x x}
71 2 {(A) x x C x x x C}
72 3 {(A) x x (B) (C) x x x}
73 }
74
75 do_execsql_test 1.3 {
76 DELETE FROM xx;
77 INSERT INTO xx(rowid, x) VALUES(1, 'A B C');
78 INSERT INTO xx(rowid, x) VALUES(2, 'A x');
79 INSERT INTO xx(rowid, x) VALUES(3, 'A B C');
80 INSERT INTO xx(rowid, x) VALUES(4, 'A B C x x x x x x x B');
81 INSERT INTO xx(rowid, x) VALUES(5, 'A x x x x x x x x x C');
82 INSERT INTO xx(rowid, x) VALUES(6, 'A x x x x x x x x x x x B');
83 INSERT INTO xx(rowid, x) VALUES(7, 'A B C');
84 }
85 do_execsql_test 1.3.1 {
86 SELECT oid,extract(offsets(xx), x) FROM xx WHERE xx MATCH 'a OR (b NEAR/1 c)';
87 } {
88 1 {(A) (B) (C)}
89 2 {(A) x}
90 3 {(A) (B) (C)}
91 4 {(A) (B) (C) x x x x x x x B}
92 5 {(A) x x x x x x x x x C}
93 6 {(A) x x x x x x x x x x x B}
94 7 {(A) (B) (C)}
95 }
96
97
98 do_execsql_test 1.4 {
99 DELETE FROM xx;
100 INSERT INTO xx(rowid, x) VALUES(7, 'A B C');
101 INSERT INTO xx(rowid, x) VALUES(6, 'A x');
102 INSERT INTO xx(rowid, x) VALUES(5, 'A B C');
103 INSERT INTO xx(rowid, x) VALUES(4, 'A B C x x x x x x x B');
104 INSERT INTO xx(rowid, x) VALUES(3, 'A x x x x x x x x x C');
105 INSERT INTO xx(rowid, x) VALUES(2, 'A x x x x x x x x x x x B');
106 INSERT INTO xx(rowid, x) VALUES(1, 'A B C');
107 }
108 do_execsql_test 1.4.1 {
109 SELECT oid,extract(offsets(xx), x) FROM xx WHERE xx MATCH 'a OR (b NEAR/1 c)'
110 ORDER BY docid DESC;
111 } {
112 7 {(A) (B) (C)}
113 6 {(A) x}
114 5 {(A) (B) (C)}
115 4 {(A) (B) (C) x x x x x x x B}
116 3 {(A) x x x x x x x x x C}
117 2 {(A) x x x x x x x x x x x B}
118 1 {(A) (B) (C)}
119 }
120
121
122 set sqlite_fts3_enable_parentheses 0
123 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3170000/test/fts3near.test ('k') | third_party/sqlite/sqlite-src-3170000/test/fts3prefix.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698