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

Side by Side Diff: third_party/sqlite/src/ext/fts5/test/fts5ad.test

Issue 2751253002: [sql] Import SQLite 3.17.0. (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
1 # 2014 June 17 1 # 2014 June 17
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #************************************************************************* 10 #*************************************************************************
11 # This file implements regression tests for SQLite library. The 11 # This file implements regression tests for SQLite library. The
12 # focus of this script is testing the FTS5 module. 12 # focus of this script is testing the FTS5 module.
13 # 13 #
14 # More specifically, the focus is on testing prefix queries, both with and
15 # without prefix indexes.
14 # 16 #
15 17
16 source [file join [file dirname [info script]] fts5_common.tcl] 18 source [file join [file dirname [info script]] fts5_common.tcl]
17 set testprefix fts5ad 19 set testprefix fts5ad
18 20
19 # If SQLITE_ENABLE_FTS5 is defined, omit this file. 21 # If SQLITE_ENABLE_FTS5 is defined, omit this file.
20 ifcapable !fts5 { 22 ifcapable !fts5 {
21 finish_test 23 finish_test
22 return 24 return
23 } 25 }
24 26
27 foreach_detail_mode $testprefix {
28
25 do_execsql_test 1.0 { 29 do_execsql_test 1.0 {
26 CREATE VIRTUAL TABLE yy USING fts5(x, y); 30 CREATE VIRTUAL TABLE yy USING fts5(x, y, detail=%DETAIL%);
27 INSERT INTO yy VALUES('Changes the result to be', 'the list of all matching'); 31 INSERT INTO yy VALUES('Changes the result to be', 'the list of all matching');
28 INSERT INTO yy VALUES('indices (or all matching', 'values if -inline is'); 32 INSERT INTO yy VALUES('indices (or all matching', 'values if -inline is');
29 INSERT INTO yy VALUES('specified as well.) If', 'indices are returned, the'); 33 INSERT INTO yy VALUES('specified as well.) If', 'indices are returned, the');
30 } {} 34 } {}
31 35
32 foreach {tn match res} { 36 foreach {tn match res} {
33 1 {c*} {1} 37 1 {c*} {1}
34 2 {i*} {3 2} 38 2 {i*} {3 2}
35 3 {t*} {3 1} 39 3 {t*} {3 1}
36 4 {r*} {3 1} 40 4 {r*} {3 1}
37 } { 41 } {
38 do_execsql_test 1.$tn { 42 do_execsql_test 1.$tn {
39 SELECT rowid FROM yy WHERE yy MATCH $match ORDER BY rowid DESC 43 SELECT rowid FROM yy WHERE yy MATCH $match ORDER BY rowid DESC
40 } $res 44 } $res
41 } 45 }
42 46
43 foreach {tn match res} { 47 foreach {tn match res} {
44 5 {c*} {1} 48 5 {c*} {1}
45 6 {i*} {2 3} 49 6 {i*} {2 3}
46 7 {t*} {1 3} 50 7 {t*} {1 3}
47 8 {r*} {1 3} 51 8 {r*} {1 3}
48 } { 52 } {
49 do_execsql_test 1.$tn { 53 do_execsql_test 1.$tn {
50 SELECT rowid FROM yy WHERE yy MATCH $match 54 SELECT rowid FROM yy WHERE yy MATCH $match
51 } $res 55 } $res
52 } 56 }
53 57
54 foreach {T create} { 58 foreach {T create} {
55 2 { 59 2 {
56 CREATE VIRTUAL TABLE t1 USING fts5(a, b); 60 CREATE VIRTUAL TABLE t1 USING fts5(a, b, detail=%DETAIL%);
57 INSERT INTO t1(t1, rank) VALUES('pgsz', 32); 61 INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
58 } 62 }
59 63
60 3 { 64 3 {
61 CREATE VIRTUAL TABLE t1 USING fts5(a, b, prefix=1,2,3,4,5); 65 CREATE VIRTUAL TABLE t1 USING fts5(a, b, prefix="1,2,3,4", detail=%DETAIL%);
62 INSERT INTO t1(t1, rank) VALUES('pgsz', 32); 66 INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
63 } 67 }
64 68
65 4 { 69 4 {
66 CREATE VIRTUAL TABLE t1 USING fts5(a, b); 70 CREATE VIRTUAL TABLE t1 USING fts5(a, b, detail=%DETAIL%);
67 INSERT INTO t1(t1, rank) VALUES('pgsz', 32); 71 INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
68 BEGIN; 72 BEGIN;
69 } 73 }
70 74
71 5 { 75 5 {
72 CREATE VIRTUAL TABLE t1 USING fts5(a, b, prefix=1,2,3,4,5); 76 CREATE VIRTUAL TABLE t1 USING fts5(a, b, prefix="1,2,3,4", detail=%DETAIL%);
73 INSERT INTO t1(t1, rank) VALUES('pgsz', 32); 77 INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
74 BEGIN; 78 BEGIN;
75 } 79 }
76 80
77 } { 81 } {
78 82
79 do_test $T.1 { 83 do_test $T.1 {
80 execsql { DROP TABLE IF EXISTS t1 } 84 execsql { DROP TABLE IF EXISTS t1 }
81 execsql $create 85 execsql $create
82 } {} 86 } {}
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 232 }
229 set n [llength $res] 233 set n [llength $res]
230 if {$T==5} breakpoint 234 if {$T==5} breakpoint
231 do_execsql_test $T.$bAsc.$tn.$n $sql $res 235 do_execsql_test $T.$bAsc.$tn.$n $sql $res
232 } 236 }
233 } 237 }
234 238
235 catchsql COMMIT 239 catchsql COMMIT
236 } 240 }
237 241
242 }
243
238 finish_test 244 finish_test
239 245
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698