]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix two more cases in fts5 where sqlite3_value_bytes() was being called before sqlite...
authordan <dan@noemail.net>
Fri, 20 Dec 2019 19:41:01 +0000 (19:41 +0000)
committerdan <dan@noemail.net>
Fri, 20 Dec 2019 19:41:01 +0000 (19:41 +0000)
FossilOrigin-Name: a1ba9a37d7a68a6d31f8197c6350589ebe6a12f4e3c193a178dd7ead8bcd565a

ext/fts5/fts5_storage.c
ext/fts5/test/fts5integrity.test
manifest
manifest.uuid

index 397d419ed90a05255f35ca65beb2e4bafe06b67a..22f90c0ef86049819ab929114722e0c2f6cfe0f7 100644 (file)
@@ -613,10 +613,11 @@ int sqlite3Fts5StorageRebuild(Fts5Storage *p){
     for(ctx.iCol=0; rc==SQLITE_OK && ctx.iCol<pConfig->nCol; ctx.iCol++){
       ctx.szCol = 0;
       if( pConfig->abUnindexed[ctx.iCol]==0 ){
+        const char *zText = (const char*)sqlite3_column_text(pScan, ctx.iCol+1);
+        int nText = sqlite3_column_bytes(pScan, ctx.iCol+1);
         rc = sqlite3Fts5Tokenize(pConfig, 
             FTS5_TOKENIZE_DOCUMENT,
-            (const char*)sqlite3_column_text(pScan, ctx.iCol+1),
-            sqlite3_column_bytes(pScan, ctx.iCol+1),
+            zText, nText,
             (void*)&ctx,
             fts5StorageInsertCallback
         );
@@ -911,10 +912,11 @@ int sqlite3Fts5StorageIntegrity(Fts5Storage *p){
           rc = sqlite3Fts5TermsetNew(&ctx.pTermset);
         }
         if( rc==SQLITE_OK ){
+          const char *zText = (const char*)sqlite3_column_text(pScan, i+1);
+          int nText = sqlite3_column_bytes(pScan, i+1);
           rc = sqlite3Fts5Tokenize(pConfig, 
               FTS5_TOKENIZE_DOCUMENT,
-              (const char*)sqlite3_column_text(pScan, i+1),
-              sqlite3_column_bytes(pScan, i+1),
+              zText, nText,
               (void*)&ctx,
               fts5StorageIntegrityCallback
           );
index e8135b078f795c8e9db2b470288ff6b28796f57d..5b0cc9586685c1a3a45b82d3cf3d09ef1cd604ad 100644 (file)
@@ -218,12 +218,19 @@ do_execsql_test 7.0 {
   INSERT INTO vt0 VALUES (x'46f0');
   SELECT quote(c0) FROM vt0;
 } {X'46F0'}
-
 do_execsql_test 7.1 {
-  UPDATE vt0 SET c0='';
+  INSERT INTO vt0(vt0) VALUES('integrity-check');
 }
-
 do_execsql_test 7.2 {
+  INSERT INTO vt0(vt0) VALUES('rebuild');
+}
+do_execsql_test 7.3 {
+  INSERT INTO vt0(vt0) VALUES('integrity-check');
+}
+do_execsql_test 7.4 {
+  UPDATE vt0 SET c0='';
+}
+do_execsql_test 7.5 {
   INSERT INTO vt0(vt0) VALUES('integrity-check');
 }
 
index f072e0a0e736a59198f52fc3663438918f691b3b..0a2cc8d36fd1e10c0648fbd8590d1ae7fe655321 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Export\sthe\spublic\sRBU\sentry\spoints\sfrom\sthe\sWin32\sDLL.
-D 2019-12-20T17:41:15.560
+C Fix\stwo\smore\scases\sin\sfts5\swhere\ssqlite3_value_bytes()\swas\sbeing\scalled\sbefore\ssqlite3_value_text().\sFix\sfor\se431c355.
+D 2019-12-20T19:41:01.504
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -118,7 +118,7 @@ F ext/fts5/fts5_expr.c 2be456484786333d559dc2987a00f2750981fab91d52db8452a804627
 F ext/fts5/fts5_hash.c 1cc0095646f5f3b46721aa112fb4f9bf29ae175cb5338f89dcec66ed97acfe75
 F ext/fts5/fts5_index.c 99b77ae1f503978ca76985bcfff7345c822aed8bbaa8edb3747f804f614685b5
 F ext/fts5/fts5_main.c 9db1f173d299466aeff89bd949fb1eb0a181265726fb56f11e07ea292dcc9a73
-F ext/fts5/fts5_storage.c 517aae1a606c33a5197dfda53bf9eef194e3636818a4cf52324bf91bf70dcd47
+F ext/fts5/fts5_storage.c 3ecda8edadc1f62a355d6789776be0da609f8658c50d72e422674093ab7e1528
 F ext/fts5/fts5_tcl.c 39bcbae507f594aad778172fa914cad0f585bf92fd3b078c686e249282db0d95
 F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee
 F ext/fts5/fts5_test_tok.c f96c6e193c466711d6d7828d5f190407fe7ab897062d371426dd3036f01258e7
@@ -182,7 +182,7 @@ F ext/fts5/test/fts5first.test 3fcf2365c00a15fc9704233674789a3b95131d12de18a9b99
 F ext/fts5/test/fts5full.test e1701a112354e0ff9a1fdffb0c940c576530c33732ee20ac5e8361777070d717
 F ext/fts5/test/fts5fuzz1.test 238d8c45f3b81342aa384de3e581ff2fa330bf922a7b69e484bbc06051a1080e
 F ext/fts5/test/fts5hash.test a4cf51acad99bfc43c16fb74f9d22495dc221ae0701fc5e908ca963a9b26a02b
-F ext/fts5/test/fts5integrity.test dea2ea1977a67256aa8346514dccd8f477863edaebf305486ab45dd004b646fd
+F ext/fts5/test/fts5integrity.test 1bcd3c04c5ad6bc0370278281682be5d51a0f4522ef5b60b005fa1c0c7b1b433
 F ext/fts5/test/fts5interrupt.test 09613247b273a99889808ef852898177e671406fe71fdde7ea00e78ea283d227
 F ext/fts5/test/fts5lastrowid.test be98fe3e03235296585b72daad7aed5717ba0062bae5e5c18dd6e04e194c6b28
 F ext/fts5/test/fts5leftjoin.test c0b4cafb9661379e576dc4405c0891d8fcc2782680740513c4d1fc114b43d4ad
@@ -1852,7 +1852,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P dc5f1d282d1e75f8a3791b0c95cb8f143b2a956323cb6c889d76d20db7f89257
-R 8d20ce65ce8b3a258ac21b4b684c5925
-U mistachkin
-Z a0bcb3089620c4d448f1bba178e307bd
+P e62d1791f428b7a9bb14a59483f12d8ee08afbf4061a5e3be8f64787444301e7
+R 83476bba8ae2cf801d14b711beef14b7
+U dan
+Z cc23e8046b671a0f1fdecd77a8b35986
index 54eb94f691899d955e53d054e7cd5b491ecd8197..22681e8a2130fcb1a378c2bef96fda4f9e575f7a 100644 (file)
@@ -1 +1 @@
-e62d1791f428b7a9bb14a59483f12d8ee08afbf4061a5e3be8f64787444301e7
\ No newline at end of file
+a1ba9a37d7a68a6d31f8197c6350589ebe6a12f4e3c193a178dd7ead8bcd565a
\ No newline at end of file