]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not invoke btreeComputeFreeSpace() when not necessary.
authordrh <drh@noemail.net>
Mon, 11 Feb 2019 22:50:01 +0000 (22:50 +0000)
committerdrh <drh@noemail.net>
Mon, 11 Feb 2019 22:50:01 +0000 (22:50 +0000)
FossilOrigin-Name: f11b0ed47402034378ded2c60b82841b81cd1319cdb72d1ef052faef29a5294d

manifest
manifest.uuid
src/btree.c

index 1cfcf11052aefa495b9b9819a665bddbd9a5e196..1a0efad9acc9fc52f39e1cb66e9fee781736cd84 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improvements\sto\scomments.\s\sNo\schanges\sto\scode.
-D 2019-02-11T19:27:36.989
+C Do\snot\sinvoke\sbtreeComputeFreeSpace()\swhen\snot\snecessary.
+D 2019-02-11T22:50:01.937
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 178d8eb6840771149cee40b322d1b3be30d330198c522c903c1b66fb5a1bfca4
@@ -455,7 +455,7 @@ F src/auth.c 0fac71038875693a937e506bceb492c5f136dd7b1249fbd4ae70b4e8da14f9df
 F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab
 F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c 47812e0c85425f27c6c51c26a43f04f3adc182ec7ead668329d4f1b1105f43ff
+F src/btree.c 70ac9dc86196416147baa94969c71372d1e3dacaca54602bda9c516b02f6da82
 F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3
 F src/btreeInt.h d7520b98e72f9a7e2a3140cc476df461fa8a34a3d56258184f8c26f70248cef9
 F src/build.c 906ca6663b9dcd413e72ae9c44dd51e596d8336b04d52e678a7501e71c20cab2
@@ -1804,7 +1804,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 480a5090befdc29eaeb6f0b22831c980d6ee92438d9b2e766de68b037ded38b8
-R f2a2d10c39d9bff959dca395bf0124e2
+P 16eb0fc8f8cce51eaa5305ebc9f3bd8c8d935dd3ebebab6820e5629f9292eec2
+R 42eb74538b26ea8a320f8b836f86ea2e
 U drh
-Z eb3347596121c04ba47ec98ac52bc64e
+Z 326f7ed87f29a92b24fc21835b66ed1d
index 5c2ee956720fbfd9abf29dfa9fef4549d4afccf0..3f6605229bc58f359010b719fa4829985886af29 100644 (file)
@@ -1 +1 @@
-16eb0fc8f8cce51eaa5305ebc9f3bd8c8d935dd3ebebab6820e5629f9292eec2
\ No newline at end of file
+f11b0ed47402034378ded2c60b82841b81cd1319cdb72d1ef052faef29a5294d
\ No newline at end of file
index 9d76c21a51ca5a1378b315705839ef53eaa4ef1e..43d6d161a910d8d6a2d784aff1bd04139d19c16a 100644 (file)
@@ -7396,6 +7396,7 @@ static void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC){
     */
     pTo->isInit = 0;
     rc = btreeInitPage(pTo);
+    if( rc==SQLITE_OK ) rc = btreeComputeFreeSpace(pTo);
     if( rc!=SQLITE_OK ){
       *pRC = rc;
       return;
@@ -8294,10 +8295,7 @@ static int balance(BtCursor *pCur){
     int iPage = pCur->iPage;
     MemPage *pPage = pCur->pPage;
 
-    if( pPage->nFree<0 ){
-      rc = btreeComputeFreeSpace(pPage);
-      if( rc ) break;
-    }
+    assert( pPage->nFree>=0 );
     if( iPage==0 ){
       if( pPage->nOverflow ){
         /* The root page of the b-tree is overfull. In this case call the