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.  fts2
7# DELETE handling assumed all fields were non-null.  This was not
8# the intention at all.
9#
10# $Id: fts2m.test,v 1.1 2007/04/09 20:45:42 shess Exp $
11#
12
13set testdir [file dirname $argv0]
14source $testdir/tester.tcl
15
16# If SQLITE_ENABLE_FTS2 is defined, omit this file.
17ifcapable !fts2 {
18  finish_test
19  return
20}
21
22db eval {
23  CREATE VIRTUAL TABLE t1 USING fts2(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
31do_test fts2m-1.0 {
32  execsql {
33    SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1;
34  }
35} {2 2 4}
36
37do_test fts2m-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
44do_test fts2m-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
51do_test fts2m-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
58do_test fts2m-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
65finish_test
66