From: drh Date: Fri, 20 Jul 2018 15:44:09 +0000 (+0000) Subject: New checked in PRAGMA integrity_check to validate the autovacuum settings X-Git-Tag: version-3.25.0~111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=040d77aa715cf24697e48e47a20b2302e3e48d27;p=thirdparty%2Fsqlite.git New checked in PRAGMA integrity_check to validate the autovacuum settings in the header. FossilOrigin-Name: a4663f09c91d1381a831f61a2b8e8a113eb6083932c4aea2ad0c011ece1418c5 --- diff --git a/manifest b/manifest index 0eb200455e..7867f7d9f5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Enhanced\sdetection\sof\sproblems\son\sthe\sfreelist\sand\son\soverflow\slist\sin\nPRAGMA\sintegrity_check. -D 2018-07-20T13:39:28.100 +C New\schecked\sin\sPRAGMA\sintegrity_check\sto\svalidate\sthe\sautovacuum\ssettings\nin\sthe\sheader. +D 2018-07-20T15:44:09.800 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 0a3a6c81e6fcb969ff9106e882f0a08547014ba463cb6beca4c4efaecc924ee6 @@ -438,7 +438,7 @@ F src/auth.c a38f3c63c974787ecf75e3213f8cac6568b9a7af7591fb0372ec0517dd16dca8 F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c 76395ea8cb88e7075af1ba6465b1d2751b92cbaa0bcbc8618b6e1787c61c10d9 +F src/btree.c 3f5e1a03db871e627bf5da21092bf7434ecfc5c5980bbd7d45eba13341340173 F src/btree.h febb2e817be499570b7a2e32a9bbb4b607a9234f6b84bb9ae84916d4806e96f2 F src/btreeInt.h 620ab4c7235f43572cf3ac2ac8723cbdf68073be4d29da24897c7b77dda5fd96 F src/build.c d8f6ac1e9e484eb3f3921a8336d3dc6c87273d9db8729702162ef045997a1463 @@ -1750,7 +1750,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 271b8980c3bcd0403a40aec26681ec111be1d88d2d5d35199a85a10f09ad6920 -R 12f9a839a98e388a878641cfa671f691 +P 11e58f5b37d99848978007d834d187c262d904eb9d58924742e028d7cb324e64 +R c0acde69723fe0b5e3fbc25297e0d544 U drh -Z 9f541998dc72c18645337f8a0e2a985a +Z 0f08918d98de0383295ceae1a107394a diff --git a/manifest.uuid b/manifest.uuid index 6617ca082a..4205d45f50 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -11e58f5b37d99848978007d834d187c262d904eb9d58924742e028d7cb324e64 \ No newline at end of file +a4663f09c91d1381a831f61a2b8e8a113eb6083932c4aea2ad0c011ece1418c5 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 45ff2bfe8f..2fb5285474 100644 --- a/src/btree.c +++ b/src/btree.c @@ -9840,6 +9840,24 @@ char *sqlite3BtreeIntegrityCheck( /* Check all the tables. */ +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + int mx = 0; + int mxInHdr; + for(i=0; (int)ipPage1->aData[52]); + if( mx!=mxInHdr ){ + checkAppendMsg(&sCheck, + "max rootpage (%d) disagrees with header (%d)", + mx, mxInHdr + ); + } + }else if( get4byte(&pBt->pPage1->aData[64])!=0 ){ + checkAppendMsg(&sCheck, + "incremental_vacuum enabled with a max rootpage of zero" + ); + } +#endif testcase( pBt->db->flags & SQLITE_CellSizeCk ); pBt->db->flags &= ~SQLITE_CellSizeCk; for(i=0; (int)i