]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem with using fts3 auxiliary functions with expressions like "E AND ....
authordan <Dan Kennedy>
Tue, 24 Jan 2023 11:24:28 +0000 (11:24 +0000)
committerdan <Dan Kennedy>
Tue, 24 Jan 2023 11:24:28 +0000 (11:24 +0000)
FossilOrigin-Name: 39bfae4c4698a13e07c4a0725f2790955e03b601fe64e17a000c691def1bdcb8

ext/fts3/fts3.c
manifest
manifest.uuid
test/fts3defer2.test

index c43eac4914ce4366d6f19a36430eeac18527081d..a9cc711d0b7fc619b7ddeab15c4dd81fa7bedf46 100644 (file)
@@ -5996,7 +5996,7 @@ int sqlite3Fts3EvalPhrasePoslist(
       }
     }
     if( bTreeEof ){
-      while( rc==SQLITE_OK && !pNear->bEof ){
+      while( rc==SQLITE_OK && !pNear->bEof && !pNear->bDeferred ){
         fts3EvalNextRow(pCsr, pNear, &rc);
       }
     }
index 9d64bd6aa772397a56baa41ad3d364dd636bdb4f..5cdbc6d6b6d3878bf2611c0ab5dd49bd6dc41623 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Suppress\sa\sharmless\scompiler\swarning.\n[forum:forumpost/e3f72e9291189925|Forum\spost\se3f72e9291189925].\s\sThe\scode\nwas\slegal\sand\scorrect.\sThe\srevised\scode\sis\sactually\sless\sclear\sin\sits\sintent.\nBut\sat\sleast\snow\sthere\swill\s(hopefully)\sbe\sno\swarning.
-D 2023-01-23T21:41:41.092
+C Fix\sa\sproblem\swith\susing\sfts3\sauxiliary\sfunctions\swith\sexpressions\slike\s"E\sAND\s...",\swhere\sE\sis\sa\sNEAR\sexpression\sthat\sconsists\sentirely\sof\sdeferred\stokens.
+D 2023-01-24T11:24:28.082
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -58,7 +58,7 @@ F ext/fts3/README.content b9078d0843a094d86af0d48dffbff13c906702b4c3558012e67b9c
 F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
 F ext/fts3/README.tokenizers b92bdeb8b46503f0dd301d364efc5ef59ef9fa8e2758b8e742f39fa93a2e422d
 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
-F ext/fts3/fts3.c 46c116ee0868fc09520d61a1b747c62343c71c399ba67a3d0395b0be29b1a19f
+F ext/fts3/fts3.c 36e4555d96d6d322d46d8bbf5a2fe30422be2071d160ebeb3e2156b0ce085b91
 F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
 F ext/fts3/fts3Int.h ae2a44b04cddb5fb35cac4ea5f7f819b2894fd258186465777a19f7acfdf84ed
 F ext/fts3/fts3_aux.c f0dc9bd98582615b7750218899bd0c729879b6bbf94d1be57ca1833ff49afc6f
@@ -1067,7 +1067,7 @@ F test/fts3corrupt6.test f417c910254f32c0bc9ead7affa991a1d5aec35b3b32a183ffb05ee
 F test/fts3cov.test 7eacdbefd756cfa4dc2241974e3db2834e9b372ca215880e00032222f32194cf
 F test/fts3d.test 2bd8c97bcb9975f2334147173b4872505b6a41359a4f9068960a36afe07a679f
 F test/fts3defer.test f4c20e4c7153d20a98ee49ee5f3faef624fefc9a067f8d8d629db380c4d9f1de
-F test/fts3defer2.test 3da52ca2114e300e9971eee2f0cc1a2e5f27e6a9ee67957d49e63e41fdfcc0e7
+F test/fts3defer2.test 0c0448ec227f470250173dd41b94fa4776d7dcaee07a7b8c0f7e6c1aba97f024
 F test/fts3defer3.test dd53fc13223c6d8264a98244e9b19abd35ed71cd
 F test/fts3drop.test 1b906e293d6773812587b3dc458cb9e8f3f0c297
 F test/fts3dropmod.test 7de242ea1c8a713a8b143ea54468f4b1c4953fa068349e23ac178e2c90c59889
@@ -2043,8 +2043,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 8760566893b64325874c7ec0aff8014026ce525e7fff1489027d2ce698495e76
-R 25886a65c46b6ed0c01a0ee1ef164e0e
-U drh
-Z 45698c64cd604b87ff216ebf0b4c3357
+P 48bb7c88787bf5de1d70cf3cc81ada38c6c02e476dbdff12c8676c6d5ee19aed
+R da240f1feb163c267019691c0e1aa949
+U dan
+Z a4ad18532eeaa7e5926d4df8858c0bf9
 # Remove this line to create a well-formed Fossil manifest.
index 6a028fd8e8f3f500b345eb1d01e554e53036eafe..25705f628d6b13fb57d44cb57152bfe9239d4341 100644 (file)
@@ -1 +1 @@
-48bb7c88787bf5de1d70cf3cc81ada38c6c02e476dbdff12c8676c6d5ee19aed
\ No newline at end of file
+39bfae4c4698a13e07c4a0725f2790955e03b601fe64e17a000c691def1bdcb8
\ No newline at end of file
index 46b62b9017030aeb55c45a9b17567ee9d7522e74..489a9fcd8e224a1c848e6b38b1a7e0c0155af071 100644 (file)
@@ -161,5 +161,18 @@ foreach {tn sql} {
   } {1 {1 1 1 4 4 11 912 6} 3 {1 1 1 4 4 11 912 6}}
 }
 
+do_execsql_test 2.5 {
+  INSERT INTO t3(t3) VALUES('rebuild');
+}
+do_execsql_test 2.5 {
+  SELECT rowid, length(offsets(t3)) FROM t3 WHERE t3 MATCH '(a NEAR a)';
+} {11 228929}
+do_execsql_test 2.6 {
+  SELECT rowid, length(offsets(t3)) FROM t3 WHERE t3 MATCH '(a NEAR b NEAR a)';
+} {1 23 3 23 11 205}
+do_execsql_test 2.7 {
+  SELECT rowid, length(offsets(t3)) FROM t3 WHERE t3 MATCH '(a NEAR b)';
+} {1 15 3 15 11 106}
+
 
 finish_test