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

Side by Side Diff: third_party/sqlite/sqlite-src-3100200/ext/fts5/test/fts5rank.test

Issue 1610543003: [sql] Import reference version of SQLite 3.10.2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 # 2014 Dec 20
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 # This file focuses on testing queries that use the "rank" column.
13 #
14
15 source [file join [file dirname [info script]] fts5_common.tcl]
16 set testprefix fts5rank
17
18 # If SQLITE_ENABLE_FTS5 is defined, omit this file.
19 ifcapable !fts5 {
20 finish_test
21 return
22 }
23
24
25 #-------------------------------------------------------------------------
26 # "ORDER BY rank" + highlight() + large poslists.
27 #
28 do_execsql_test 1.0 {
29 CREATE VIRTUAL TABLE xyz USING fts5(z);
30 }
31 do_test 1.1 {
32 set doc [string trim [string repeat "x y " 500]]
33 execsql { INSERT INTO xyz VALUES($doc) }
34 } {}
35 do_execsql_test 1.2 {
36 SELECT highlight(xyz, 0, '[', ']') FROM xyz WHERE xyz MATCH 'x' ORDER BY rank
37 } [list [string map {x [x]} $doc]]
38
39 do_execsql_test 1.3 {
40 SELECT highlight(xyz, 0, '[', ']') FROM xyz
41 WHERE xyz MATCH 'x AND y' ORDER BY rank
42 } [list [string map {x [x] y [y]} $doc]]
43
44 #-------------------------------------------------------------------------
45 # Check that the 'rank' option really is persistent.
46 #
47 do_execsql_test 2.0 {
48 CREATE VIRTUAL TABLE tt USING fts5(a);
49 INSERT INTO tt VALUES('a x x x x');
50 INSERT INTO tt VALUES('x x a a a');
51 INSERT INTO tt VALUES('x a a x x');
52 }
53
54 proc firstinst {cmd} {
55 foreach {p c o} [$cmd xInst 0] {}
56 return $o
57 }
58 sqlite3_fts5_create_function db firstinst firstinst
59
60 do_execsql_test 2.1 {
61 SELECT rowid FROM tt('a') ORDER BY rank;
62 } {2 3 1}
63
64 do_execsql_test 2.2 {
65 SELECT rowid FROM tt('a', 'firstinst()') ORDER BY rank;
66 } {1 3 2}
67
68 do_execsql_test 2.3 {
69 INSERT INTO tt(tt, rank) VALUES('rank', 'firstinst()');
70 SELECT rowid FROM tt('a') ORDER BY rank;
71 } {1 3 2}
72
73 do_test 2.4 {
74 sqlite3 db2 test.db
75 catchsql { SELECT rowid FROM tt('a') ORDER BY rank; } db2
76 } {1 {no such function: firstinst}}
77
78 do_test 2.5 {
79 db2 close
80 sqlite3 db2 test.db
81 sqlite3_fts5_create_function db2 firstinst firstinst
82 execsql { SELECT rowid FROM tt('a') ORDER BY rank; } db2
83 } {1 3 2}
84
85 do_test 2.6 {
86 execsql { SELECT rowid FROM tt('a') ORDER BY rank; } db2
87 } {1 3 2}
88
89 do_test 2.7 {
90 execsql { SELECT rowid FROM tt('a') ORDER BY rank; } db
91 } {1 3 2}
92
93
94
95
96
97
98
99 finish_test
100
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698