-C Add\sthe\s"notindexed"\soption\sto\sfts4.
-D 2013-06-21T17:30:47.476
+C Add\sa\sfew\smore\stests\sfor\sthe\sfts4\snotindexed\soption.
+D 2013-06-21T18:18:23.327
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F test/fts3fault.test cb72dccb0a3b9f730f16c5240f3fcb9303eb1660
F test/fts3fault2.test 3198eef2804deea7cac8403e771d9cbcb752d887
F test/fts3first.test dbdedd20914c8d539aa3206c9b34a23775644641
-F test/fts3malloc.test b86ea33db9e8c58c0c2f8027a9fcadaf6a1568be
+F test/fts3malloc.test 1e3df7598534e77a7072aad610d46554cface3e9
F test/fts3matchinfo.test ecb08f586d027eb03941bcfcded6cb9d8ccb3a66
F test/fts3near.test 12895557870b0f9af7cc0be81a0171abb2d12f12
F test/fts3prefix.test b36d4f00b128a51e7b386cc013a874246d9d7dc1
F test/fts4merge2.test 5faa558d1b672f82b847d2a337465fa745e46891
F test/fts4merge3.test aab02a09f50fe6baaddc2e159c3eabc116d45fc7
F test/fts4merge4.test c19c85ca1faa7b6d536832b49c12e1867235f584
-F test/fts4noti.test 7710af8ad41b23571d62c0cee2a062c30ecb8012
+F test/fts4noti.test aed33ba44808852dcb24bf70fa132e7bf530f057
F test/fts4unicode.test c8ac44217bf6c17812b03eaafa6c06995ad304c2
F test/full.test 6b3c8fb43c6beab6b95438c1675374b95fab245d
F test/func.test b0fc34fdc36897769651975a2b0a606312753643
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P b674462243138fcee192ef05d434665e30c681c4
-R 977878ca999ebdf95aeef1dd83187bfc
-T *branch * fts4-notindexed
-T *sym-fts4-notindexed *
-T -sym-trunk *
+P 8ff2b8f5948ccddce70102e6d68d464c66e4f7ca
+R 78eae7e4eba9ee605ccaf88bbcc953f5
U dan
-Z 6bb2b422fa6b5870298aeb31440d85b9
+Z 1a5ea5678be579c71cc2f3fe2b3716ce
7 "(notindexed=a, notindexed=b, notindexed=c, a, B, c, d)" {0 {}}
8 "(notindexed=d, content=cc)" {1 {no such column: d}}
9 "(notindexed=a, content=cc)" {0 {}}
+ 10 "(notindexed=a, notindexed=b, a)" {1 {no such column: b}}
+ 11 "(notindexed=a, notindexed=b, b)" {1 {no such column: a}}
} {
do_catchsql_test 1.$tn "CREATE VIRTUAL TABLE t1 USING fts4 $arg" $res
if {[lindex $res 0]==0} { execsql "DROP TABLE t1" }
#-------------------------------------------------------------------------
# Test that notindexed columns are not indexed.
#
-do_execsql_test 2.1 {
- CREATE VIRTUAL TABLE t1 USING fts4(a, b, c, notindexed=b);
- INSERT INTO t1 VALUES('one two', 'three four', 'five six');
- INSERT INTO t1 VALUES('three four', 'five six', 'one two');
-}
-do_execsql_test 2.2 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
-do_execsql_test 2.3 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
-do_execsql_test 2.4 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
+foreach {tn schema} {
+ 1 {
+ CREATE VIRTUAL TABLE t1 USING fts4(a, b, c, notindexed=b);
+ }
+ 2 {
+ CREATE TABLE c1(a, b, c);
+ INSERT INTO c1 VALUES('one two', 'three four', 'five six');
+ INSERT INTO c1 VALUES('three four', 'five six', 'one two');
+ CREATE VIRTUAL TABLE t1 USING fts4(content=c1, notindexed=b);
+ }
+ 3 {
+ CREATE VIRTUAL TABLE t1 USING fts4(content="", a, b, c, notindexed=b);
+ }
+} {
+ execsql $schema
-do_execsql_test 2.5 { INSERT INTO t1(t1) VALUES('optimize') }
+ do_execsql_test 2.$tn.1 {
+ INSERT INTO t1(docid,a,b,c) VALUES(1, 'one two', 'three four', 'five six');
+ INSERT INTO t1(docid,a,b,c) VALUES(2, 'three four', 'five six', 'one two');
+ }
-do_execsql_test 2.6 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
-do_execsql_test 2.7 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
-do_execsql_test 2.8 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
+ do_execsql_test 2.$tn.2 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
+ do_execsql_test 2.$tn.3 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
+ do_execsql_test 2.$tn.4 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
-do_execsql_test 2.9 { INSERT INTO t1(t1) VALUES('rebuild') }
+ do_execsql_test 2.$tn.5 { INSERT INTO t1(t1) VALUES('optimize') }
-do_execsql_test 2.10 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
-do_execsql_test 2.11 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
-do_execsql_test 2.12 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
+ do_execsql_test 2.$tn.6 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
+ do_execsql_test 2.$tn.7 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
+ do_execsql_test 2.$tn.8 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
-do_execsql_test 2.13 {
- SELECT * FROM t1 WHERE docid=1
-} {{one two} {three four} {five six}}
-do_execsql_test 2.14 {
- SELECT * FROM t1 WHERE docid=2
-} {{three four} {five six} {one two}}
+ if {$tn!=3} {
+ do_execsql_test 2.$tn.9 { INSERT INTO t1(t1) VALUES('rebuild') }
+
+ do_execsql_test 2.$tn.10 { SELECT docid FROM t1 WHERE t1 MATCH 'one' } {1 2}
+ do_execsql_test 2.$tn.11 { SELECT docid FROM t1 WHERE t1 MATCH 'three' } {2}
+ do_execsql_test 2.$tn.12 { SELECT docid FROM t1 WHERE t1 MATCH 'five' } {1}
+
+ do_execsql_test 2.$tn.13 {
+ SELECT a,b,c FROM t1 WHERE docid=1
+ } {{one two} {three four} {five six}}
+ do_execsql_test 2.$tn.14 {
+ SELECT a,b,c FROM t1 WHERE docid=2
+ } {{three four} {five six} {one two}}
+ }
-do_execsql_test 2.x { DROP TABLE t1 }
+ do_execsql_test 2.x { DROP TABLE t1 }
+}
#-------------------------------------------------------------------------
# Test that notindexed columns are not scanned for deferred tokens.
do_execsql_test 3.4 { SELECT x FROM t2 WHERE t2 MATCH '1' } {2 3 4 5 6}
do_execsql_test 3.5 { SELECT x FROM t2 WHERE t2 MATCH 'x' } {1 2}
do_execsql_test 3.6 { SELECT x FROM t2 WHERE t2 MATCH 'x 1' } {2}
+
+do_execsql_test 3.x { DROP TABLE t2 }
+#-------------------------------------------------------------------------
+# Test that the types of notindexed columns are not modified.
+#
+do_execsql_test 4.1 {
+ CREATE VIRTUAL TABLE t2 USING fts4(poi, addr, notindexed=poi);
+ INSERT INTO t2 VALUES(114, 'x x x');
+ INSERT INTO t2 VALUES(X'1234', 'y y y');
+ INSERT INTO t2 VALUES(NULL, 'z z z');
+ INSERT INTO t2 VALUES(113.2, 'w w w');
+ INSERT INTO t2 VALUES('poi', 'v v v');
+}
+do_execsql_test 4.2 { SELECT typeof(poi) FROM t2 WHERE t2 MATCH 'x' } {integer}
+do_execsql_test 4.3 { SELECT typeof(poi) FROM t2 WHERE t2 MATCH 'y' } {blob}
+do_execsql_test 4.4 { SELECT typeof(poi) FROM t2 WHERE t2 MATCH 'z' } {null}
+do_execsql_test 4.5 { SELECT typeof(poi) FROM t2 WHERE t2 MATCH 'w' } {real}
+do_execsql_test 4.6 { SELECT typeof(poi) FROM t2 WHERE t2 MATCH 'v' } {text}
+do_execsql_test 4.x { DROP TABLE t2 }
+
+#-------------------------------------------------------------------------
+# Test that multiple notindexed options on a single table work as expected.
+#
+do_execsql_test 5.1 {
+ CREATE VIRTUAL TABLE t2 USING fts4(
+ notindexed="three", one, two, three, notindexed="one",
+ );
+ INSERT INTO t2 VALUES('a', 'b', 'c');
+ INSERT INTO t2 VALUES('c', 'a', 'b');
+ INSERT INTO t2 VALUES('b', 'c', 'a');
+}
+do_execsql_test 5.2 { SELECT docid FROM t2 WHERE t2 MATCH 'a' } {2}
+do_execsql_test 5.3 { SELECT docid FROM t2 WHERE t2 MATCH 'b' } {1}
+do_execsql_test 5.4 { SELECT docid FROM t2 WHERE t2 MATCH 'c' } {3}
+
+do_execsql_test 5.x { DROP TABLE t2 }
finish_test
+
+
+