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