]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor performance improvement for balance_nonroot().
authordan <dan@noemail.net>
Sat, 24 Aug 2019 21:02:47 +0000 (21:02 +0000)
committerdan <dan@noemail.net>
Sat, 24 Aug 2019 21:02:47 +0000 (21:02 +0000)
FossilOrigin-Name: d7434cae3edc321e2f1f8d340a0e656b1613b736f8400fb271a0e80f59401b9e

manifest
manifest.uuid
src/btree.c

index 8fbc28972efa7bfebf5e91e503625d7388442bae..9c844a6a2bdb1305439f7e9126b70fd254183a79 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\spotential\sbuffer\soverrun\sin\sfts5\scaused\sby\scorrupt\sdatabase\srecords.
-D 2019-08-24T17:11:29.099
+C Minor\sperformance\simprovement\sfor\sbalance_nonroot().
+D 2019-08-24T21:02:47.092
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -464,7 +464,7 @@ F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06
 F src/backup.c f70077d40c08b7787bfe934e4d1da8030cb0cc57d46b345fba2294b7d1be23ab
 F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c 5cf994516c1b74928b9d15971573a8bc8595e1afec129184099976da603402de
+F src/btree.c fdc4389b271bca30138db27dc2dfb9f52c2a7baaa44845aaf31a3c54663d837f
 F src/btree.h c11446f07ec0e9dc85af8041cb0855c52f5359c8b2a43e47e02a685282504d89
 F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f
 F src/build.c 7fb6ad35d162517d6bfa196f4fb2a1d7c3a362531e84c59f3a0479e0de511556
@@ -1836,7 +1836,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 e32490128684cfeeb8213baecc78a7942b8fb63d00e375edd965bf236faeed18
-R 61cea08062816b86beb5c1f5910b0854
+P 156d612800a7282fe0ebb20feb31d3fd577f4ab60fab8c00940c87143997aefb
+R 4b6697f6c6d10128787e7bec7d1f64d6
 U dan
-Z 0284ef6b0b4932b74129e7c6ac32b7ce
+Z 7ec145bc88468367dffb3891d93405d5
index 5f960bb4c8c9c5e31e59b3feb38d3697eaf76812..31e578823c779da33fbddfcd0403f4a585ac03c5 100644 (file)
@@ -1 +1 @@
-156d612800a7282fe0ebb20feb31d3fd577f4ab60fab8c00940c87143997aefb
\ No newline at end of file
+d7434cae3edc321e2f1f8d340a0e656b1613b736f8400fb271a0e80f59401b9e
\ No newline at end of file
index 6e6a9b279702856eb5f233cdcbce8580a886a4ff..7ff91e667b6baa90d48c7709a299b9c4801a92c0 100644 (file)
@@ -6992,7 +6992,8 @@ static int pageInsertArray(
   while( 1 /*Exit by break*/ ){
     int sz, rc;
     u8 *pSlot;
-    sz = cachedCellSize(pCArray, i);
+    assert( pCArray->szCell[i]!=0 );
+    sz = pCArray->szCell[i];
     if( (aData[1]==0 && aData[2]==0) || (pSlot = pageFindSlot(pPg,sz,&rc))==0 ){
       if( (pData - pBegin)<sz ) return 1;
       pData -= sz;
@@ -7153,6 +7154,7 @@ static int editPage(
         memmove(&pCellptr[2], pCellptr, (nCell - iCell) * 2);
       }
       nCell++;
+      cachedCellSize(pCArray, iCell+iNew);
       if( pageInsertArray(
             pPg, pBegin, &pData, pCellptr,
             iCell+iNew, 1, pCArray