| # 2007 April 9 |
| # |
| # The author disclaims copyright to this source code. |
| # |
| #************************************************************************* |
| # This file implements regression tests for SQLite library. fts2 |
| # DELETE handling assumed all fields were non-null. This was not |
| # the intention at all. |
| # |
| # $Id: fts2m.test,v 1.1 2007/04/09 20:45:42 shess Exp $ |
| # |
| |
| set testdir [file dirname $argv0] |
| source $testdir/tester.tcl |
| |
| # If SQLITE_ENABLE_FTS2 is defined, omit this file. |
| ifcapable !fts2 { |
| finish_test |
| return |
| } |
| |
| db eval { |
| CREATE VIRTUAL TABLE t1 USING fts2(col_a, col_b); |
| |
| INSERT INTO t1(rowid, col_a, col_b) VALUES(1, 'testing', 'testing'); |
| INSERT INTO t1(rowid, col_a, col_b) VALUES(2, 'only a', null); |
| INSERT INTO t1(rowid, col_a, col_b) VALUES(3, null, 'only b'); |
| INSERT INTO t1(rowid, col_a, col_b) VALUES(4, null, null); |
| } |
| |
| do_test fts2m-1.0 { |
| execsql { |
| SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
| } |
| } {2 2 4} |
| |
| do_test fts2m-1.1 { |
| execsql { |
| DELETE FROM t1 WHERE rowid = 1; |
| SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
| } |
| } {1 1 3} |
| |
| do_test fts2m-1.2 { |
| execsql { |
| DELETE FROM t1 WHERE rowid = 2; |
| SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
| } |
| } {0 1 2} |
| |
| do_test fts2m-1.3 { |
| execsql { |
| DELETE FROM t1 WHERE rowid = 3; |
| SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
| } |
| } {0 0 1} |
| |
| do_test fts2m-1.4 { |
| execsql { |
| DELETE FROM t1 WHERE rowid = 4; |
| SELECT COUNT(col_a), COUNT(col_b), COUNT(*) FROM t1; |
| } |
| } {0 0 0} |
| |
| finish_test |