From: drh Date: Wed, 18 Aug 2010 21:19:03 +0000 (+0000) Subject: Fix two asserts in the btree logic so that they work correctly even for X-Git-Tag: version-3.7.2~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e22e03e210c5063384984a2e3b2ff41d3c25b984;p=thirdparty%2Fsqlite.git Fix two asserts in the btree logic so that they work correctly even for maximum-size index entries for 32K and 64K pages. FossilOrigin-Name: e127192d106bd7e036caacf01bf7725eeaa85dbe --- diff --git a/manifest b/manifest index 7f78b9c81f..c74c91a2ae 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,8 @@ -C Updated\stests\sfor\sCLI.\s\sAdded\ssome\sbasic\stests\sfor\sthe\s.import\scommand. -D 2010-08-18T17:16:26 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +C Fix\stwo\sasserts\sin\sthe\sbtree\slogic\sso\sthat\sthey\swork\scorrectly\seven\sfor\nmaximum-size\sindex\sentries\sfor\s32K\sand\s64K\spages. +D 2010-08-18T21:19:04 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -113,7 +116,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 F src/backup.c 51d83300fe0baee39405c416ceb19a58ed30a8ed F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff -F src/btree.c b1213572824331457d3fbebf0a06945b4765ad4f +F src/btree.c 3089d018fd27082952d79543e771f6bc8af0b0f7 F src/btree.h b4ba2fdf6b64c7c376bdfffa826af6b786b151d9 F src/btreeInt.h 5b034ff54800046cc5870605d683ac1f9134bd99 F src/build.c 0018d49629fc4807100c988dd191dd95e185bb38 @@ -844,7 +847,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 56cc883d3af5574c9dafecef8aa96d1d05c01b83 -R f8071fb87093491279a52abcb3066064 -U shaneh -Z 27e86cf284ab8d3eda267dae6456bdb0 +P d46567e5d75a2b9fe96d2a7a30708b2827a0d490 +R d8d679ffa4745c8bf93b5e6b5825b960 +U drh +Z 7f378ed449a1354042bf47ceab852b72 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFMbE5MoxKgR168RlERAm3gAJ9j3QLeVFJiXfvfSnsTlMhGqmvBSgCfTW3m +v1U06YCPq+T+CyTYAg08zFE= +=0zqd +-----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index bc4e5a703c..d18da8b5e8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d46567e5d75a2b9fe96d2a7a30708b2827a0d490 \ No newline at end of file +e127192d106bd7e036caacf01bf7725eeaa85dbe \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index e64aaa1490..7a41057120 100644 --- a/src/btree.c +++ b/src/btree.c @@ -2365,7 +2365,7 @@ static int lockBtree(BtShared *pBt){ ** 9-byte nKey value ** 4-byte nData value ** 4-byte overflow page pointer - ** So a cell consists of a 2-byte poiner, a header which is as much as + ** So a cell consists of a 2-byte pointer, a header which is as much as ** 17 bytes long, 0 to N bytes of payload, and an optional 4 byte overflow ** page pointer. */ @@ -5968,7 +5968,7 @@ static int balance_nonroot( szCell[nCell] = sz; pTemp = &aSpace1[iSpace1]; iSpace1 += sz; - assert( sz<=pBt->pageSize/4 ); + assert( sz<=pBt->maxLocal+23 ); assert( iSpace1<=pBt->pageSize ); memcpy(pTemp, apDiv[i], sz); apCell[nCell] = pTemp+leafCorrection; @@ -6214,7 +6214,7 @@ static int balance_nonroot( } } iOvflSpace += sz; - assert( sz<=pBt->pageSize/4 ); + assert( sz<=pBt->maxLocal+23 ); assert( iOvflSpace<=pBt->pageSize ); insertCell(pParent, nxDiv, pCell, sz, pTemp, pNew->pgno, &rc); if( rc!=SQLITE_OK ) goto balance_cleanup;