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

Side by Side Diff: third_party/sqlite/sqlite-src-3170000/ext/fts5/test/fts5simple2.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 # 2015 September 05
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 source [file join [file dirname [info script]] fts5_common.tcl]
14 set testprefix fts5simple2
15
16 # If SQLITE_ENABLE_FTS5 is defined, omit this file.
17 ifcapable !fts5 {
18 finish_test
19 return
20 }
21
22 do_execsql_test 1.0 {
23 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
24 INSERT INTO t1 VALUES('a b c');
25 }
26 do_execsql_test 1.1 {
27 SELECT rowid FROM t1('c a b')
28 } {1}
29
30 #-------------------------------------------------------------------------
31 #
32 reset_db
33 do_execsql_test 2.0 {
34 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
35 BEGIN;
36 INSERT INTO t1 VALUES('b c d');
37 INSERT INTO t1 VALUES('b c d');
38 COMMIT;
39 }
40 do_execsql_test 2.1 {
41 SELECT rowid FROM t1('b c d')
42 } {1 2}
43
44 #-------------------------------------------------------------------------
45 #
46 reset_db
47 do_execsql_test 3.0 {
48 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
49 BEGIN;
50 INSERT INTO t1 VALUES('b c d');
51 INSERT INTO t1 VALUES('b c d');
52 }
53 do_execsql_test 3.1 {
54 SELECT rowid FROM t1('b c d'); COMMIT;
55 } {1 2}
56
57 #-------------------------------------------------------------------------
58 #
59 reset_db
60 do_execsql_test 4.0 {
61 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
62 BEGIN;
63 INSERT INTO t1 VALUES('a1 b1 c1');
64 INSERT INTO t1 VALUES('a2 b2 c2');
65 INSERT INTO t1 VALUES('a3 b3 c3');
66 COMMIT;
67 }
68 do_execsql_test 4.1 {
69 SELECT rowid FROM t1('b*');
70 } {1 2 3}
71
72
73 #-------------------------------------------------------------------------
74 #
75 reset_db
76 do_execsql_test 5.0 {
77 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
78 BEGIN;
79 INSERT INTO t1 VALUES('a1 b1 c1');
80 INSERT INTO t1 VALUES('a2 b2 c2');
81 INSERT INTO t1 VALUES('a1 b1 c1');
82 COMMIT;
83 }
84 do_execsql_test 5.1 { SELECT rowid FROM t1('b*') } {1 2 3}
85
86 #-------------------------------------------------------------------------
87 #
88 reset_db
89 do_execsql_test 6.0 {
90 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=full);
91 BEGIN;
92 INSERT INTO t1 VALUES('a1 b1 c1');
93 INSERT INTO t1 VALUES('a1 b1 c1');
94 INSERT INTO t1 VALUES('a1 b1 c1');
95 COMMIT;
96 }
97
98 do_execsql_test 6.1 { SELECT rowid FROM t1('a1') ORDER BY rowid DESC } {3 2 1}
99 do_execsql_test 6.2 { SELECT rowid FROM t1('b1') ORDER BY rowid DESC } {3 2 1}
100 do_execsql_test 6.3 { SELECT rowid FROM t1('c1') ORDER BY rowid DESC } {3 2 1}
101
102 #-------------------------------------------------------------------------
103 #
104 reset_db
105 do_execsql_test 7.0 {
106 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
107 BEGIN;
108 INSERT INTO t1 VALUES('a1 b1');
109 INSERT INTO t1 VALUES('a1 b2');
110 COMMIT;
111 }
112 do_execsql_test 7.1 { SELECT rowid FROM t1('b*') ORDER BY rowid DESC } {2 1}
113 do_execsql_test 7.2 { SELECT rowid FROM t1('a1') ORDER BY rowid DESC } {2 1}
114
115 #-------------------------------------------------------------------------
116 #
117 reset_db
118 do_execsql_test 8.0 {
119 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
120 INSERT INTO t1 VALUES('a1 b1 c1');
121 INSERT INTO t1 VALUES('a2 b2 c2');
122 INSERT INTO t1 VALUES('a1 b1 c1');
123 }
124 do_execsql_test 8.0.1 { SELECT rowid FROM t1('b*') } {1 2 3}
125 do_execsql_test 8.0.2 { SELECT rowid FROM t1('a1') } {1 3}
126 do_execsql_test 8.0.3 { SELECT rowid FROM t1('c2') } {2}
127
128 do_execsql_test 8.0.4 { SELECT rowid FROM t1('b*') ORDER BY rowid DESC } {3 2 1}
129 do_execsql_test 8.0.5 { SELECT rowid FROM t1('a1') ORDER BY rowid DESC } {3 1}
130 do_execsql_test 8.0.8 { SELECT rowid FROM t1('c2') ORDER BY rowid DESC } {2}
131
132 do_execsql_test 8.1.0 { INSERT INTO t1(t1) VALUES('optimize') }
133
134 do_execsql_test 8.1.1 { SELECT rowid FROM t1('b*') } {1 2 3}
135 do_execsql_test 8.1.2 { SELECT rowid FROM t1('a1') } {1 3}
136 do_execsql_test 8.1.3 { SELECT rowid FROM t1('c2') } {2}
137
138 do_execsql_test 8.2.1 { SELECT rowid FROM t1('b*') ORDER BY rowid DESC} {3 2 1}
139 do_execsql_test 8.2.2 { SELECT rowid FROM t1('a1') ORDER BY rowid DESC} {3 1}
140 do_execsql_test 8.2.3 { SELECT rowid FROM t1('c2') ORDER BY rowid DESC} {2}
141
142 #--------------------------------------------------------------------------
143 #
144 reset_db
145 do_execsql_test 9.0.0 {
146 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
147 INSERT INTO t1 VALUES('a1 b1 c1');
148 INSERT INTO t1 VALUES('a2 b2 c2');
149 INSERT INTO t1 VALUES('a1 b1 c1');
150 }
151 do_execsql_test 9.0.1 {
152 INSERT INTO t1(t1) VALUES('integrity-check');
153 } {}
154
155 reset_db
156 do_execsql_test 9.1.0 {
157 CREATE VIRTUAL TABLE t1 USING fts5(a, b, detail=none);
158 INSERT INTO t1 VALUES('a1 b1 c1', 'x y z');
159 INSERT INTO t1 VALUES('a2 b2 c2', '1 2 3');
160 INSERT INTO t1 VALUES('a1 b1 c1', 'x 2 z');
161 }
162 do_execsql_test 9.2.1 {
163 INSERT INTO t1(t1) VALUES('integrity-check');
164 } {}
165
166 #--------------------------------------------------------------------------
167 #
168 reset_db
169 do_execsql_test 10.0 {
170 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
171 INSERT INTO t1 VALUES('b1');
172 INSERT INTO t1 VALUES('b1');
173 DELETE FROM t1 WHERE rowid=1;
174 }
175
176 do_execsql_test 10.1 {
177 SELECT rowid FROM t1('b1');
178 } {2}
179
180 do_execsql_test 10.2 {
181 SELECT rowid FROM t1('b1') ORDER BY rowid DESC;
182 } {2}
183
184 do_execsql_test 10.3 {
185 INSERT INTO t1(t1) VALUES('integrity-check');
186 } {}
187
188 #--------------------------------------------------------------------------
189 #
190 reset_db
191 do_execsql_test 11.1 {
192 CREATE VIRTUAL TABLE t1 USING fts5(x, y, detail=none);
193 INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
194 WITH d(x,y) AS (
195 SELECT NULL, 'xyz' UNION ALL SELECT NULL, 'xyz' FROM d
196 )
197 INSERT INTO t1 SELECT * FROM d LIMIT 23;
198 }
199
200 #db eval { SELECT rowid AS r, quote(block) AS b FROM t1_data } { puts "$r: $b" }
201 do_execsql_test 11.2 {
202 SELECT rowid FROM t1;
203 } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23}
204
205 do_execsql_test 11.3 {
206 SELECT rowid FROM t1('xyz');
207 } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23}
208
209 do_execsql_test 11.4 {
210 INSERT INTO t1(t1) VALUES('integrity-check');
211 }
212
213 #-------------------------------------------------------------------------
214 #
215 reset_db
216 do_execsql_test 12.0 {
217 CREATE VIRTUAL TABLE yy USING fts5(x, detail=none);
218 INSERT INTO yy VALUES('in if');
219 INSERT INTO yy VALUES('if');
220 } {}
221
222 do_execsql_test 12.1 {
223 SELECT rowid FROM yy('i*');
224 } {1 2}
225
226 #-------------------------------------------------------------------------
227 #
228 reset_db
229 do_execsql_test 13.0 {
230 CREATE VIRTUAL TABLE t1 USING fts5(a, prefix=1, detail=none);
231 } {}
232 foreach {rowid a} {
233 0 {f}
234 1 {u}
235 2 {k}
236 3 {a}
237 4 {a}
238 5 {u}
239 6 {u}
240 7 {u}
241 8 {f}
242 9 {f}
243 10 {a}
244 11 {p}
245 12 {f}
246 13 {u}
247 14 {a}
248 15 {a}
249 } {
250 do_execsql_test 13.1.$rowid {
251 INSERT INTO t1(rowid, a) VALUES($rowid, $a);
252 }
253 }
254
255 #-------------------------------------------------------------------------
256 #
257 reset_db
258 fts5_aux_test_functions db
259 do_execsql_test 14.0 {
260 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=none);
261 INSERT INTO t1 VALUES('a b c d');
262 } {}
263
264 do_execsql_test 14.1 {
265 SELECT fts5_test_poslist(t1) FROM t1('b') ORDER BY rank;
266 } {0.0.1}
267
268 #-------------------------------------------------------------------------
269 #
270 reset_db
271 do_execsql_test 15.1 {
272 CREATE VIRTUAL TABLE t1 USING fts5(x, detail=none);
273 BEGIN;
274 INSERT INTO t1(rowid, x) VALUES(1, 'sqlite');
275 INSERT INTO t1(rowid, x) VALUES(2, 'sqlite');
276 COMMIT;
277 } {}
278
279 do_test 15.1 {
280 execsql { INSERT INTO t1(t1) VALUES('integrity-check') }
281 } {}
282
283 do_test 15.2 {
284 execsql { DELETE FROM t1 }
285 } {}
286
287 do_execsql_test 15.3.1 {
288 SELECT rowid FROM t1('sqlite');
289 } {}
290
291 do_execsql_test 15.3.2 {
292 SELECT rowid FROM t1('sqlite') ORDER BY rowid DESC;
293 } {}
294
295 do_test 15.4 {
296 execsql { INSERT INTO t1(t1) VALUES('integrity-check') }
297 } {}
298
299 #-------------------------------------------------------------------------
300 #
301 reset_db
302 do_execsql_test 16.0 {
303 CREATE VIRTUAL TABLE t2 USING fts5(x, detail=none);
304 BEGIN;
305 INSERT INTO t2(rowid, x) VALUES(1, 'a b c');
306 INSERT INTO t2(rowid, x) VALUES(456, 'a b c');
307 INSERT INTO t2(rowid, x) VALUES(1000, 'a b c');
308 COMMIT;
309 UPDATE t2 SET x=x;
310 }
311
312 do_execsql_test 16.1 {
313 INSERT INTO t2(t2) VALUES('integrity-check');
314 } {}
315
316 do_execsql_test 16.2 {
317 SELECT rowid FROM t2('b') ORDER BY rowid DESC
318 } {1000 456 1}
319
320
321 #-------------------------------------------------------------------------
322 #
323 reset_db
324 do_execsql_test 16.0 {
325 CREATE VIRTUAL TABLE t2 USING fts5(x, detail=none);
326 BEGIN;
327 INSERT INTO t2(rowid, x) VALUES(1, 'a b c');
328 INSERT INTO t2(rowid, x) VALUES(456, 'a b c');
329 INSERT INTO t2(rowid, x) VALUES(1000, 'a b c');
330 COMMIT;
331 UPDATE t2 SET x=x;
332 DELETE FROM t2;
333 }
334
335 #-------------------------------------------------------------------------
336 #
337 reset_db
338 do_execsql_test 17.0 {
339 CREATE VIRTUAL TABLE t2 USING fts5(x, y);
340 BEGIN;
341 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
342 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
343 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
344 COMMIT;
345 }
346 do_execsql_test 17.1 { SELECT * FROM t2('y:a*') WHERE rowid BETWEEN 10 AND 20 }
347 do_execsql_test 17.2 {
348 BEGIN;
349 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
350 SELECT * FROM t2('y:a*') WHERE rowid BETWEEN 10 AND 20 ;
351 }
352 do_execsql_test 17.3 {
353 COMMIT
354 }
355
356 reset_db
357 do_execsql_test 17.4 {
358 CREATE VIRTUAL TABLE t2 USING fts5(x, y);
359 BEGIN;
360 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
361 INSERT INTO t2 VALUES('a aa aaa', 'b bb bbb');
362 SELECT * FROM t2('y:a*') WHERE rowid>66;
363 }
364 do_execsql_test 17.5 { SELECT * FROM t2('x:b* OR y:a*') }
365 do_execsql_test 17.5 { COMMIT ; SELECT * FROM t2('x:b* OR y:a*') }
366 do_execsql_test 17.6 {
367 SELECT * FROM t2('x:b* OR y:a*') WHERE rowid>55
368 }
369
370 #db eval {SELECT rowid, fts5_decode_none(rowid, block) aS r FROM t2_data} {puts $r}
371
372 finish_test
373
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698