|
1 # 2007 April 9 |
|
2 # |
|
3 # The author disclaims copyright to this source code. |
|
4 # |
|
5 #************************************************************************* |
|
6 # This file implements regression tests for SQLite library. fts1 |
|
7 # DELETE handling assumed all fields were non-null. This was not |
|
8 # the intention at all. |
|
9 # |
|
10 # $Id: fts1l.test,v 1.1 2007/04/09 20:45:42 shess Exp $ |
|
11 # |
|
12 |
|
13 set testdir [file dirname $argv0] |
|
14 source $testdir/tester.tcl |
|
15 |
|
16 # If SQLITE_ENABLE_FTS1 is defined, omit this file. |
|
17 ifcapable !fts1 { |
|
18 finish_test |
|
19 return |
|
20 } |
|
21 |
|
22 db eval { |
|
23 CREATE VIRTUAL TABLE t1 USING fts1(col_a, col_b); |
|
24 |
|
25 INSERT INTO t1(rowid, col_a, col_b) VALUES(1, 'testing', 'testing'); |
|
26 INSERT INTO t1(rowid, col_a, col_b) VALUES(2, 'only a', null); |
|
27 INSERT INTO t1(rowid, col_a, col_b) VALUES(3, null, 'only b'); |
|
28 INSERT INTO t1(rowid, col_a, col_b) VALUES(4, null, null); |
|
29 } |
|
30 |
|
31 do_test fts1m-1.0 { |
|
32 execsql { |
|
33 SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
|
34 } |
|
35 } {2 2 4} |
|
36 |
|
37 do_test fts1m-1.1 { |
|
38 execsql { |
|
39 DELETE FROM t1 WHERE rowid = 1; |
|
40 SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
|
41 } |
|
42 } {1 1 3} |
|
43 |
|
44 do_test fts1m-1.2 { |
|
45 execsql { |
|
46 DELETE FROM t1 WHERE rowid = 2; |
|
47 SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
|
48 } |
|
49 } {0 1 2} |
|
50 |
|
51 do_test fts1m-1.3 { |
|
52 execsql { |
|
53 DELETE FROM t1 WHERE rowid = 3; |
|
54 SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
|
55 } |
|
56 } {0 0 1} |
|
57 |
|
58 do_test fts1m-1.4 { |
|
59 execsql { |
|
60 DELETE FROM t1 WHERE rowid = 4; |
|
61 SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
|
62 } |
|
63 } {0 0 0} |
|
64 |
|
65 finish_test |