From: drh Date: Wed, 9 Nov 2011 16:12:24 +0000 (+0000) Subject: Minor changes needed to restore full branch test coverage. X-Git-Tag: mountain-lion~9^2~17^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e73c91496fc921f3f6803a1f1a3ac0e1d6d2043d;p=thirdparty%2Fsqlite.git Minor changes needed to restore full branch test coverage. FossilOrigin-Name: bc10a753579b65ba4604867204b7b3d8383f3ac7 --- diff --git a/manifest b/manifest index 9fb4c8839b..d2fca0f81f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C A\snegative\svalue\sN\sfor\sthe\scache_size\spragma\sadjusts\sthe\snumber\sof\scache\npages\sto\suse\sapproximately\sN\skibibytes\sof\smemory. -D 2011-11-09T14:23:04.394 +C Minor\schanges\sneeded\sto\srestore\sfull\sbranch\stest\scoverage. +D 2011-11-09T16:12:24.434 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -147,7 +147,7 @@ F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416 F src/loadext.c d0d2022a5a07274d408820b978b9e549189d314f -F src/main.c 93d49bc6abf4ccea97721d016b9f45228cff7057 +F src/main.c 8d75abfbb6f9518da984fcb83e7deb986e5fad1a F src/malloc.c 591aedb20ae40813f1045f2ef253438a334775d9 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 7456e2ca0524609ebc06a9befeda5289d4575ad4 @@ -173,16 +173,16 @@ F src/pager.h 9f81b08efb06db4ba8be69446e10b005c351373d F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/pcache.c b9d52e9f844d91c27c161279234f273fc02abc71 F src/pcache.h c770382f9fae4ca5025c5523bd0aa13cd6ddc6f8 -F src/pcache1.c 9a42ace8022b3d38175c3b41802aa9bccd9c6a3a -F src/pragma.c c5ba7627fbdedc02c7b8f52e77a3bceb030cf5ed -F src/prepare.c e64261559a3187698a3e7e6c8b001a4f4f98dab4 +F src/pcache1.c 7a3ce2dca0ef889be94b9cb0a2dfc7917ec83eba +F src/pragma.c 65d1d63d64f8b7350f28d5ee6d40f7985deccdfe +F src/prepare.c ec4989f7f480544bdc4192fe663470d2a2d7d61e F src/printf.c 03104cbff6959ff45df69dc9060ba6212f60a869 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/resolve.c 365ab1c870e38596d6869e76fb544fe6e4ffc809 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/select.c 80f3ac44a8514b1d107b80f5df4a424ae059d2b6 -F src/shell.c 6d2ad7f80adc9c8c3195412879af36eb3196c1b6 -F src/sqlite.h.in 51b40e104b9d11b3d3a72a4d1399cb0b0ef45b19 +F src/shell.c 29812a900a780eb0f835c4bc65e216272689def8 +F src/sqlite.h.in fa162d2a068b6c1c25896e8614be3c4f01897a95 F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477 F src/sqliteInt.h f87f241b9821a9d466c2711b7345d30ef3624249 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d @@ -974,7 +974,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 -P 2e8ab3cedfebc33a831837792b523d1aa7cdc6b7 -R f79cb2e5e3c648503ef136bcf9a7e813 +P b3faa680aedc94ed8aa2819228c0d304b181cc51 +R b23b4af5ccb8f4c997cdcda51776df0c U drh -Z ee913c4e43d90078be9388d453dfd115 +Z d923662f887715e80eb341a5d52f178f diff --git a/manifest.uuid b/manifest.uuid index a97b46c07b..574c5c2aab 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b3faa680aedc94ed8aa2819228c0d304b181cc51 \ No newline at end of file +bc10a753579b65ba4604867204b7b3d8383f3ac7 \ No newline at end of file diff --git a/src/main.c b/src/main.c index 6e6af78c7a..eb40dcd7f1 100644 --- a/src/main.c +++ b/src/main.c @@ -2898,15 +2898,6 @@ int sqlite3_test_control(int op, ...){ } #endif - /* sqlite3_test_control(SQLITE_TESTCTRL_PGHDRSZ) - ** - ** Return the size of a pcache header in bytes. - */ - case SQLITE_TESTCTRL_PGHDRSZ: { - rc = sizeof(PgHdr); - break; - } - /* sqlite3_test_control(SQLITE_TESTCTRL_SCRATCHMALLOC, sz, &pNew, pFree); ** ** Pass pFree into sqlite3ScratchFree(). diff --git a/src/pcache1.c b/src/pcache1.c index c4bebe548d..a026ed2fb5 100644 --- a/src/pcache1.c +++ b/src/pcache1.c @@ -576,6 +576,9 @@ static sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable){ int separateCache = sqlite3GlobalConfig.bCoreMutex>0; #endif + assert( (szPage & (szPage-1))==0 && szPage>=512 && szPage<=65536 ); + assert( szExtra < 300 ); + sz = sizeof(PCache1) + sizeof(PGroup)*separateCache; pCache = (PCache1 *)sqlite3_malloc(sz); if( pCache ){ @@ -748,17 +751,24 @@ static sqlite3_pcache_page *pcache1Fetch( || pGroup->nCurrentPage>=pGroup->nMaxPage || pcache1UnderMemoryPressure(pCache) )){ - PCache1 *pOtherCache; + PCache1 *pOther; pPage = pGroup->pLruTail; pcache1RemoveFromHash(pPage); pcache1PinPage(pPage); - if( (pOtherCache = pPage->pCache)->szPage!=pCache->szPage - || pOtherCache->szExtra!=pCache->szExtra - ){ + pOther = pPage->pCache; + + /* We want to verify that szPage and szExtra are the same for pOther + ** and pCache. Assert that we can verify this by comparing sums. */ + assert( (pCache->szPage & (pCache->szPage-1))==0 && pCache->szPage>=512 ); + assert( pCache->szExtra<512 ); + assert( (pOther->szPage & (pOther->szPage-1))==0 && pOther->szPage>=512 ); + assert( pOther->szExtra<512 ); + + if( pOther->szPage+pOther->szExtra != pCache->szPage+pCache->szExtra ){ pcache1FreePage(pPage); pPage = 0; }else{ - pGroup->nCurrentPage -= (pOtherCache->bPurgeable - pCache->bPurgeable); + pGroup->nCurrentPage -= (pOther->bPurgeable - pCache->bPurgeable); } } diff --git a/src/pragma.c b/src/pragma.c index 5f33ee99d7..538aa61083 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -346,7 +346,7 @@ void sqlite3Pragma( goto pragma_out; } -#ifndef SQLITE_OMIT_PAGER_PRAGMAS +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && !defined(SQLITE_OMIT_DEPRECATED) /* ** PRAGMA [database.]default_cache_size ** PRAGMA [database.]default_cache_size=N @@ -395,7 +395,9 @@ void sqlite3Pragma( sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); } }else +#endif /* !SQLITE_OMIT_PAGER_PRAGMAS && !SQLITE_OMIT_DEPRECATED */ +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) /* ** PRAGMA [database.]page_size ** PRAGMA [database.]page_size=N @@ -416,7 +418,7 @@ void sqlite3Pragma( ** buffer that the pager module resizes using sqlite3_realloc(). */ db->nextPagesize = sqlite3Atoi(zRight); - if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){ + if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,-1,0) ){ db->mallocFailed = 1; } } @@ -456,6 +458,10 @@ void sqlite3Pragma( ** second form attempts to change this setting. Both ** forms return the current setting. ** + ** The absolute value of N is used. This is undocumented and might + ** change. The only purpose is to provide an easy way to test + ** the sqlite3AbsInt32() function. + ** ** PRAGMA [database.]page_count ** ** Return the number of pages in the specified database. @@ -470,7 +476,8 @@ void sqlite3Pragma( if( sqlite3Tolower(zLeft[0])=='p' ){ sqlite3VdbeAddOp2(v, OP_Pagecount, iDb, iReg); }else{ - sqlite3VdbeAddOp3(v, OP_MaxPgcnt, iDb, iReg, sqlite3Atoi(zRight)); + sqlite3VdbeAddOp3(v, OP_MaxPgcnt, iDb, iReg, + sqlite3AbsInt32(sqlite3Atoi(zRight))); } sqlite3VdbeAddOp2(v, OP_ResultRow, iReg, 1); sqlite3VdbeSetNumCols(v, 1); diff --git a/src/prepare.c b/src/prepare.c index fc45b8e6aa..faeefa894f 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -278,9 +278,13 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ pDb->pSchema->enc = ENC(db); if( pDb->pSchema->cache_size==0 ){ +#ifndef SQLITE_OMIT_DEPRECATED size = sqlite3AbsInt32(meta[BTREE_DEFAULT_CACHE_SIZE-1]); if( size==0 ){ size = SQLITE_DEFAULT_CACHE_SIZE; } pDb->pSchema->cache_size = size; +#else + pDb->pSchema->cache_size = SQLITE_DEFAULT_CACHE_SIZE; +#endif sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); } diff --git a/src/shell.c b/src/shell.c index 11da32aa8f..e33a0687b4 100644 --- a/src/shell.c +++ b/src/shell.c @@ -2220,7 +2220,6 @@ static int do_meta_command(char *zLine, struct callback_data *p){ { "reserve", SQLITE_TESTCTRL_RESERVE }, { "optimizations", SQLITE_TESTCTRL_OPTIMIZATIONS }, { "iskeyword", SQLITE_TESTCTRL_ISKEYWORD }, - { "pghdrsz", SQLITE_TESTCTRL_PGHDRSZ }, { "scratchmalloc", SQLITE_TESTCTRL_SCRATCHMALLOC }, }; int testctrl = -1; @@ -2265,7 +2264,6 @@ static int do_meta_command(char *zLine, struct callback_data *p){ case SQLITE_TESTCTRL_PRNG_SAVE: case SQLITE_TESTCTRL_PRNG_RESTORE: case SQLITE_TESTCTRL_PRNG_RESET: - case SQLITE_TESTCTRL_PGHDRSZ: if( nArg==2 ){ rc = sqlite3_test_control(testctrl); printf("%d (0x%08x)\n", rc, rc); diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 316d4231b2..50e95efe2c 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -5630,10 +5630,9 @@ int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_RESERVE 14 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 #define SQLITE_TESTCTRL_ISKEYWORD 16 -#define SQLITE_TESTCTRL_PGHDRSZ 17 -#define SQLITE_TESTCTRL_SCRATCHMALLOC 18 -#define SQLITE_TESTCTRL_LOCALTIME_FAULT 19 -#define SQLITE_TESTCTRL_LAST 19 +#define SQLITE_TESTCTRL_SCRATCHMALLOC 17 +#define SQLITE_TESTCTRL_LOCALTIME_FAULT 18 +#define SQLITE_TESTCTRL_LAST 18 /* ** CAPI3REF: SQLite Runtime Status