aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-07-20 15:44:09 +0000
committerdrh <drh@noemail.net>2018-07-20 15:44:09 +0000
commit040d77aa715cf24697e48e47a20b2302e3e48d27 (patch)
treea08cc8e0481831ab150fa485d37de27dee092ee5
parent91d5866eb6fad7341805ec1004b7b842c505a330 (diff)
downloadsqlite-040d77aa715cf24697e48e47a20b2302e3e48d27.tar.gz
sqlite-040d77aa715cf24697e48e47a20b2302e3e48d27.zip
New checked in PRAGMA integrity_check to validate the autovacuum settings
in the header. FossilOrigin-Name: a4663f09c91d1381a831f61a2b8e8a113eb6083932c4aea2ad0c011ece1418c5
-rw-r--r--manifest12
-rw-r--r--manifest.uuid2
-rw-r--r--src/btree.c18
3 files changed, 25 insertions, 7 deletions
diff --git a/manifest b/manifest
index 0eb200455..7867f7d9f 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 6617ca082..4205d45f5 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 45ff2bfe8..2fb528547 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)i<nRoot; i++) if( mx<aRoot[i] ) mx = aRoot[i];
+ mxInHdr = get4byte(&pBt->pPage1->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<nRoot && sCheck.mxErr; i++){