]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add tests for FTS ^ searches and matchinfo().
authordan <dan@noemail.net>
Wed, 19 Oct 2011 10:18:01 +0000 (10:18 +0000)
committerdan <dan@noemail.net>
Wed, 19 Oct 2011 10:18:01 +0000 (10:18 +0000)
FossilOrigin-Name: 92618c1463fb304cf8057d082b2c7096152dff27

manifest
manifest.uuid
test/fts3first.test

index f9ee83d4ef737e59c505a6dd433ae4eff6692bcc..f155d09e14348fa2645c64335a6e5bc665c3b6ed 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\sin\sFTS\sto\sdo\swith\s^\stokens\sand\sthe\ssnippet()\sfunction.
-D 2011-10-19T09:40:49.185
+C Add\stests\sfor\sFTS\s^\ssearches\sand\smatchinfo().
+D 2011-10-19T10:18:01.912
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in a162fe39e249b8ed4a65ee947c30152786cfe897
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -476,7 +476,7 @@ F test/fts3expr.test 5e745b2b6348499d9ef8d59015de3182072c564c
 F test/fts3expr2.test 18da930352e5693eaa163a3eacf96233b7290d1a
 F test/fts3fault.test f83e556465bb69dc8bc676339eca408dce4ca246
 F test/fts3fault2.test b62a2bc843c20414405f80e5eeb78e39bc68fe53
-F test/fts3first.test 8402101caa140802fdea7322652b22caa7662010
+F test/fts3first.test 5aa9e82202461a82066427df4cea9188155a4cd5
 F test/fts3malloc.test b86ea33db9e8c58c0c2f8027a9fcadaf6a1568be
 F test/fts3matchinfo.test 6507fe1c342e542300d65ea637d4110eccf894e6
 F test/fts3near.test 2e318ee434d32babd27c167142e2b94ddbab4844
@@ -967,7 +967,7 @@ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
 F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings.sh b7fdb2cc525f5ef4fa43c80e771636dd3690f9d2
-P 63ac33c860eb32ce96699f06bf83121cec2ffaca
-R 3121ed7658c54e3e7fae4ae1475b5670
+P 2c03b24f4cc6f2c28c9d5b9984320d41b8486c32
+R 402b5e477b47b6aa728a3149c74db091
 U dan
-Z 5ad246c0f30695f9ad4b0b18222b341a
+Z 87cae0b85a25fbf32c49680729e400c4
index 4a839fd314bf713af0a1c5275cf8dcd6e5c6e32b..4e40bb93ac1a1cff96a2f961204d7bfed0fdd0d8 100644 (file)
@@ -1 +1 @@
-2c03b24f4cc6f2c28c9d5b9984320d41b8486c32
\ No newline at end of file
+92618c1463fb304cf8057d082b2c7096152dff27
\ No newline at end of file
index 0c6de520fd6e03678c1a6cafcb9a457686af33cf..e82a23dd0ef342ccb9aad3bd07c68c3f0c241c43 100644 (file)
@@ -26,6 +26,14 @@ proc lreverse {L} {
   set res
 }
 
+proc mit {blob} {
+  set scan(littleEndian) i*
+  set scan(bigEndian) I*
+  binary scan $blob $scan($::tcl_platform(byteOrder)) r
+  return $r
+}
+db func mit mit
+
 do_execsql_test 1.0 {
   CREATE VIRTUAL TABLE x1 USING FTS4(a, b, c);
   INSERT INTO x1(docid,a,b,c) VALUES(0, 'K H D S T', 'V M N Y K', 'S Z N Q S');
@@ -54,6 +62,8 @@ do_execsql_test 1.0 {
 }
 
 
+# Test queries.
+#
 foreach x {1 2} {
   foreach {tn match res} {
     1  "^K"              {0 1 14}
@@ -82,6 +92,8 @@ foreach x {1 2} {
   } {}
 }
 
+# Test the snippet() function.
+#
 foreach {tn match res} {
   1  {^K}    {{[K] H D S T} {[K] N J L W} {[K] H A B L}}
   2  {^X}    {{[X] Y D L S} {[X] J P K R} {[X] S B X Y}}
@@ -92,9 +104,39 @@ foreach {tn match res} {
   do_execsql_test 1.3.$tn.1 {
     SELECT snippet(x1, '[', ']', '...') FROM x1 WHERE x1 MATCH $match
   } $res
+
   do_execsql_test 1.3.$tn.2 {
     SELECT snippet(x2, '[', ']', '...') FROM x2 WHERE x2 MATCH $match
   } $rev
 }
 
+# Test matchinfo().
+#
+foreach {tn match res} {
+  1  {^K}    {
+                {1 3 3 0 0 0 0 0 0}
+                {1 3 3 0 0 0 0 0 0}
+                {1 3 3 0 0 0 0 0 0}
+             }
+  2  {^X}    {
+                {0 1 1 0 1 1 1 2 2}
+                {0 1 1 1 1 1 0 2 2}
+                {1 1 1 0 1 1 1 2 2}
+             }
+  3  {^X Y}  {
+                {0 1 1 0 1 1 1 2 2 0 6 5 0 5 4 1 4 4} 
+                {0 1 1 1 1 1 0 2 2 1 6 5 0 5 4 0 4 4} 
+                {1 1 1 0 1 1 1 2 2 1 6 5 0 5 4 1 4 4}
+             }
+} {
+  set rev [lreverse $res]
+
+  do_execsql_test 1.3.$tn.1 {
+    SELECT mit(matchinfo(x1, 'x')) FROM x1 WHERE x1 MATCH $match
+  } $res
+  do_execsql_test 1.3.$tn.2 {
+    SELECT mit(matchinfo(x2, 'x')) FROM x2 WHERE x2 MATCH $match
+  } $rev
+}
+
 finish_test