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

Side by Side Diff: third_party/sqlite/sqlite-src-3100200/ext/fts5/test/fts5auxdata.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 # Tests focusing on the fts5 xSetAuxdata() and xGetAuxdata() APIs.
13 #
14
15 source [file join [file dirname [info script]] fts5_common.tcl]
16 set testprefix fts5auxdata
17
18 # If SQLITE_ENABLE_FTS5 is defined, omit this file.
19 ifcapable !fts5 {
20 finish_test
21 return
22 }
23
24 do_execsql_test 1.0 {
25 CREATE VIRTUAL TABLE f1 USING fts5(a, b);
26 INSERT INTO f1(rowid, a, b) VALUES(1, 'a', 'b1');
27 INSERT INTO f1(rowid, a, b) VALUES(2, 'a', 'b2');
28 INSERT INTO f1(rowid, a, b) VALUES(3, 'a', 'b3');
29 INSERT INTO f1(rowid, a, b) VALUES(4, 'a', 'b4');
30 INSERT INTO f1(rowid, a, b) VALUES(5, 'a', 'b5');
31 }
32
33 proc aux_function_1 {cmd tn} {
34 switch [$cmd xRowid] {
35 1 {
36 do_test $tn.1 [list $cmd xGetAuxdata 0 ] {}
37 $cmd xSetAuxdata "one"
38 }
39
40 2 {
41 do_test $tn.2 [list $cmd xGetAuxdata 0 ] {one}
42 $cmd xSetAuxdata "two"
43 }
44
45 3 {
46 do_test $tn.3 [list $cmd xGetAuxdata 0 ] {two}
47 }
48
49 4 {
50 do_test $tn.4 [list $cmd xGetAuxdata 1 ] {two}
51 }
52
53 5 {
54 do_test $tn.5 [list $cmd xGetAuxdata 0 ] {}
55 }
56 }
57 }
58
59 sqlite3_fts5_create_function db aux_function_1 aux_function_1
60 db eval {
61 SELECT aux_function_1(f1, 1) FROM f1 WHERE f1 MATCH 'a'
62 ORDER BY rowid ASC
63 }
64
65 proc aux_function_2 {cmd tn inst} {
66 if {$inst == "A"} {
67 switch [$cmd xRowid] {
68 1 {
69 do_test $tn.1.$inst [list $cmd xGetAuxdata 0 ] {}
70 $cmd xSetAuxdata "one $inst"
71 }
72 2 {
73 do_test $tn.2.$inst [list $cmd xGetAuxdata 0 ] "one $inst"
74 $cmd xSetAuxdata "two $inst"
75 }
76 3 {
77 do_test $tn.3.$inst [list $cmd xGetAuxdata 0 ] "two $inst"
78 }
79 4 {
80 do_test $tn.4.$inst [list $cmd xGetAuxdata 1 ] "two $inst"
81 }
82 5 {
83 do_test $tn.5.$inst [list $cmd xGetAuxdata 0 ] {}
84 }
85 }
86 } else {
87 switch [$cmd xRowid] {
88 1 {
89 do_test $tn.1.$inst [list $cmd xGetAuxdata 0 ] "one A"
90 }
91 2 {
92 do_test $tn.2.$inst [list $cmd xGetAuxdata 0 ] "two A"
93 }
94 3 {
95 do_test $tn.3.$inst [list $cmd xGetAuxdata 0 ] "two A"
96 }
97 4 {
98 do_test $tn.4.$inst [list $cmd xGetAuxdata 0 ] {}
99 }
100 5 {
101 do_test $tn.5.$inst [list $cmd xGetAuxdata 0 ] {}
102 }
103 }
104 }
105 }
106
107 sqlite3_fts5_create_function db aux_function_2 aux_function_2
108 db eval {
109 SELECT aux_function_2(f1, 2, 'A'), aux_function_2(f1, 2, 'B')
110 FROM f1 WHERE f1 MATCH 'a'
111 ORDER BY rowid ASC
112 }
113
114 finish_test
115
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698