1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

In the b-tree module use %u instead of %d to print unsigned quantities such

as page numbers and offsets.

FossilOrigin-Name: 33ac62d8eec56eb71f20ccd28a5d6e4e8051522feb2db0199abee9e18ce1f64e
This commit is contained in:
drh
2023-04-01 12:22:57 +00:00
parent 1839b7990d
commit 2e89f1cdeb
3 changed files with 39 additions and 39 deletions

View File

@@ -1,5 +1,5 @@
C Omit\sthe\sthe\scount-of-view\soptimization\sif\sthere\sis\sa\sHAVING\sclause.\ndbsqlfuzz\s6a107e3055bd22afab31cfddabc2d9d54fcbaf69 C In\sthe\sb-tree\smodule\suse\s%u\sinstead\sof\s%d\sto\sprint\sunsigned\squantities\ssuch\nas\spage\snumbers\sand\soffsets.
D 2023-03-31T23:48:59.808 D 2023-04-01T12:22:57.449
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -564,7 +564,7 @@ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7 F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7
F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d
F src/btmutex.c 6ffb0a22c19e2f9110be0964d0731d2ef1c67b5f7fabfbaeb7b9dabc4b7740ca F src/btmutex.c 6ffb0a22c19e2f9110be0964d0731d2ef1c67b5f7fabfbaeb7b9dabc4b7740ca
F src/btree.c 47def1b43b10fcffd927ef6e17c9382a39c898af9eb98318460253ddb5e4a07f F src/btree.c 0fda1fc90c2b240df720c020276e3027e0aa77313dbc667341ba27597557b4d8
F src/btree.h aa354b9bad4120af71e214666b35132712b8f2ec11869cb2315c52c81fad45cc F src/btree.h aa354b9bad4120af71e214666b35132712b8f2ec11869cb2315c52c81fad45cc
F src/btreeInt.h 06bb2c1a07172d5a1cd27a2a5d617b93b1e976c5873709c31964786f86365a6e F src/btreeInt.h 06bb2c1a07172d5a1cd27a2a5d617b93b1e976c5873709c31964786f86365a6e
F src/build.c 8357d6ca9a8c9afc297c431df28bc2af407b47f3ef2311875276c944b30c4d54 F src/build.c 8357d6ca9a8c9afc297c431df28bc2af407b47f3ef2311875276c944b30c4d54
@@ -2052,8 +2052,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 8e841e7f025f7205959453875f2d9db36271642045593970a2b2fc20b2f847c3 P babe2b5e59647ac9db4601e67c25190aac14eb76d5fcb9fa5b3692b955fefd61
R a324206315ce89eead4c9961ac2ace00 R 48deb435a759e04a65c214c6987fb0c1
U drh U drh
Z 53309c46a9911b6ad0f66ef820f68132 Z 5e57bd2f4f9c8a5c6b6db368295f00fa
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
babe2b5e59647ac9db4601e67c25190aac14eb76d5fcb9fa5b3692b955fefd61 33ac62d8eec56eb71f20ccd28a5d6e4e8051522feb2db0199abee9e18ce1f64e

View File

@@ -136,8 +136,8 @@ sqlite3_uint64 sqlite3BtreeSeekCount(Btree *pBt){
int corruptPageError(int lineno, MemPage *p){ int corruptPageError(int lineno, MemPage *p){
char *zMsg; char *zMsg;
sqlite3BeginBenignMalloc(); sqlite3BeginBenignMalloc();
zMsg = sqlite3_mprintf("database corruption page %d of %s", zMsg = sqlite3_mprintf("database corruption page %u of %s",
(int)p->pgno, sqlite3PagerFilename(p->pBt->pPager, 0) p->pgno, sqlite3PagerFilename(p->pBt->pPager, 0)
); );
sqlite3EndBenignMalloc(); sqlite3EndBenignMalloc();
if( zMsg ){ if( zMsg ){
@@ -1032,7 +1032,7 @@ static void ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent, int *pRC){
pPtrmap = (u8 *)sqlite3PagerGetData(pDbPage); pPtrmap = (u8 *)sqlite3PagerGetData(pDbPage);
if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){ if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){
TRACE(("PTRMAP_UPDATE: %d->(%d,%d)\n", key, eType, parent)); TRACE(("PTRMAP_UPDATE: %u->(%u,%u)\n", key, eType, parent));
*pRC= rc = sqlite3PagerWrite(pDbPage); *pRC= rc = sqlite3PagerWrite(pDbPage);
if( rc==SQLITE_OK ){ if( rc==SQLITE_OK ){
pPtrmap[offset] = eType; pPtrmap[offset] = eType;
@@ -3846,7 +3846,7 @@ static int relocatePage(
if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT; if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT;
/* Move page iDbPage from its current location to page number iFreePage */ /* Move page iDbPage from its current location to page number iFreePage */
TRACE(("AUTOVACUUM: Moving %d to free page %d (ptr page %d type %d)\n", TRACE(("AUTOVACUUM: Moving %u to free page %u (ptr page %u type %u)\n",
iDbPage, iFreePage, iPtrPage, eType)); iDbPage, iFreePage, iPtrPage, eType));
rc = sqlite3PagerMovepage(pPager, pDbPage->pDbPage, iFreePage, isCommit); rc = sqlite3PagerMovepage(pPager, pDbPage->pDbPage, iFreePage, isCommit);
if( rc!=SQLITE_OK ){ if( rc!=SQLITE_OK ){
@@ -6396,7 +6396,7 @@ static int allocateBtreePage(
memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4);
*ppPage = pTrunk; *ppPage = pTrunk;
pTrunk = 0; pTrunk = 0;
TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); TRACE(("ALLOCATE: %u trunk - %u free pages left\n", *pPgno, n-1));
}else if( k>(u32)(pBt->usableSize/4 - 2) ){ }else if( k>(u32)(pBt->usableSize/4 - 2) ){
/* Value of k is out of range. Database corruption */ /* Value of k is out of range. Database corruption */
rc = SQLITE_CORRUPT_PGNO(iTrunk); rc = SQLITE_CORRUPT_PGNO(iTrunk);
@@ -6462,7 +6462,7 @@ static int allocateBtreePage(
} }
} }
pTrunk = 0; pTrunk = 0;
TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); TRACE(("ALLOCATE: %u trunk - %u free pages left\n", *pPgno, n-1));
#endif #endif
}else if( k>0 ){ }else if( k>0 ){
/* Extract a leaf from the trunk */ /* Extract a leaf from the trunk */
@@ -6507,8 +6507,8 @@ static int allocateBtreePage(
){ ){
int noContent; int noContent;
*pPgno = iPage; *pPgno = iPage;
TRACE(("ALLOCATE: %d was leaf %d of %d on trunk %d" TRACE(("ALLOCATE: %u was leaf %u of %u on trunk %u"
": %d more free pages\n", ": %u more free pages\n",
*pPgno, closest+1, k, pTrunk->pgno, n-1)); *pPgno, closest+1, k, pTrunk->pgno, n-1));
rc = sqlite3PagerWrite(pTrunk->pDbPage); rc = sqlite3PagerWrite(pTrunk->pDbPage);
if( rc ) goto end_allocate_page; if( rc ) goto end_allocate_page;
@@ -6564,7 +6564,7 @@ static int allocateBtreePage(
** becomes a new pointer-map page, the second is used by the caller. ** becomes a new pointer-map page, the second is used by the caller.
*/ */
MemPage *pPg = 0; MemPage *pPg = 0;
TRACE(("ALLOCATE: %d from end of file (pointer-map page)\n", pBt->nPage)); TRACE(("ALLOCATE: %u from end of file (pointer-map page)\n", pBt->nPage));
assert( pBt->nPage!=PENDING_BYTE_PAGE(pBt) ); assert( pBt->nPage!=PENDING_BYTE_PAGE(pBt) );
rc = btreeGetUnusedPage(pBt, pBt->nPage, &pPg, bNoContent); rc = btreeGetUnusedPage(pBt, pBt->nPage, &pPg, bNoContent);
if( rc==SQLITE_OK ){ if( rc==SQLITE_OK ){
@@ -6587,7 +6587,7 @@ static int allocateBtreePage(
releasePage(*ppPage); releasePage(*ppPage);
*ppPage = 0; *ppPage = 0;
} }
TRACE(("ALLOCATE: %d from end of file\n", *pPgno)); TRACE(("ALLOCATE: %u from end of file\n", *pPgno));
} }
assert( CORRUPT_DB || *pPgno!=PENDING_BYTE_PAGE(pBt) ); assert( CORRUPT_DB || *pPgno!=PENDING_BYTE_PAGE(pBt) );
@@ -6715,7 +6715,7 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){
} }
rc = btreeSetHasContent(pBt, iPage); rc = btreeSetHasContent(pBt, iPage);
} }
TRACE(("FREE-PAGE: %d leaf on trunk page %d\n",pPage->pgno,pTrunk->pgno)); TRACE(("FREE-PAGE: %u leaf on trunk page %u\n",pPage->pgno,pTrunk->pgno));
goto freepage_out; goto freepage_out;
} }
} }
@@ -6736,7 +6736,7 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){
put4byte(pPage->aData, iTrunk); put4byte(pPage->aData, iTrunk);
put4byte(&pPage->aData[4], 0); put4byte(&pPage->aData[4], 0);
put4byte(&pPage1->aData[32], iPage); put4byte(&pPage1->aData[32], iPage);
TRACE(("FREE-PAGE: %d new trunk page replacing %d\n", pPage->pgno, iTrunk)); TRACE(("FREE-PAGE: %u new trunk page replacing %u\n", pPage->pgno, iTrunk));
freepage_out: freepage_out:
if( pPage ){ if( pPage ){
@@ -8322,7 +8322,7 @@ static int balance_nonroot(
** that page. ** that page.
*/ */
assert( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) || CORRUPT_DB); assert( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) || CORRUPT_DB);
TRACE(("BALANCE: old: %d(nc=%d) %d(nc=%d) %d(nc=%d)\n", TRACE(("BALANCE: old: %u(nc=%u) %u(nc=%u) %u(nc=%u)\n",
apOld[0]->pgno, apOld[0]->nCell, apOld[0]->pgno, apOld[0]->nCell,
nOld>=2 ? apOld[1]->pgno : 0, nOld>=2 ? apOld[1]->nCell : 0, nOld>=2 ? apOld[1]->pgno : 0, nOld>=2 ? apOld[1]->nCell : 0,
nOld>=3 ? apOld[2]->pgno : 0, nOld>=3 ? apOld[2]->nCell : 0 nOld>=3 ? apOld[2]->pgno : 0, nOld>=3 ? apOld[2]->nCell : 0
@@ -8406,8 +8406,8 @@ static int balance_nonroot(
} }
} }
TRACE(("BALANCE: new: %d(%d nc=%d) %d(%d nc=%d) %d(%d nc=%d) " TRACE(("BALANCE: new: %u(%u nc=%u) %u(%u nc=%u) %u(%u nc=%u) "
"%d(%d nc=%d) %d(%d nc=%d)\n", "%u(%u nc=%u) %u(%u nc=%u)\n",
apNew[0]->pgno, szNew[0], cntNew[0], apNew[0]->pgno, szNew[0], cntNew[0],
nNew>=2 ? apNew[1]->pgno : 0, nNew>=2 ? szNew[1] : 0, nNew>=2 ? apNew[1]->pgno : 0, nNew>=2 ? szNew[1] : 0,
nNew>=2 ? cntNew[1] - cntNew[0] - !leafData : 0, nNew>=2 ? cntNew[1] - cntNew[0] - !leafData : 0,
@@ -8652,7 +8652,7 @@ static int balance_nonroot(
} }
assert( pParent->isInit ); assert( pParent->isInit );
TRACE(("BALANCE: finished: old=%d new=%d cells=%d\n", TRACE(("BALANCE: finished: old=%u new=%u cells=%u\n",
nOld, nNew, b.nCell)); nOld, nNew, b.nCell));
/* Free any old pages that were not reused as new pages. /* Free any old pages that were not reused as new pages.
@@ -8737,7 +8737,7 @@ static int balance_deeper(MemPage *pRoot, MemPage **ppChild){
assert( sqlite3PagerIswriteable(pRoot->pDbPage) ); assert( sqlite3PagerIswriteable(pRoot->pDbPage) );
assert( pChild->nCell==pRoot->nCell || CORRUPT_DB ); assert( pChild->nCell==pRoot->nCell || CORRUPT_DB );
TRACE(("BALANCE: copy root %d into %d\n", pRoot->pgno, pChild->pgno)); TRACE(("BALANCE: copy root %u into %u\n", pRoot->pgno, pChild->pgno));
/* Copy the overflow cells from pRoot to pChild */ /* Copy the overflow cells from pRoot to pChild */
memcpy(pChild->aiOvfl, pRoot->aiOvfl, memcpy(pChild->aiOvfl, pRoot->aiOvfl,
@@ -9235,7 +9235,7 @@ int sqlite3BtreeInsert(
if( rc ) return rc; if( rc ) return rc;
} }
TRACE(("INSERT: table=%d nkey=%lld ndata=%d page=%d %s\n", TRACE(("INSERT: table=%u nkey=%lld ndata=%u page=%u %s\n",
pCur->pgnoRoot, pX->nKey, pX->nData, pPage->pgno, pCur->pgnoRoot, pX->nKey, pX->nData, pPage->pgno,
loc==0 ? "overwrite" : "new entry")); loc==0 ? "overwrite" : "new entry"));
assert( pPage->isInit || CORRUPT_DB ); assert( pPage->isInit || CORRUPT_DB );
@@ -10323,11 +10323,11 @@ static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){
*/ */
static int checkRef(IntegrityCk *pCheck, Pgno iPage){ static int checkRef(IntegrityCk *pCheck, Pgno iPage){
if( iPage>pCheck->nPage || iPage==0 ){ if( iPage>pCheck->nPage || iPage==0 ){
checkAppendMsg(pCheck, "invalid page number %d", iPage); checkAppendMsg(pCheck, "invalid page number %u", iPage);
return 1; return 1;
} }
if( getPageReferenced(pCheck, iPage) ){ if( getPageReferenced(pCheck, iPage) ){
checkAppendMsg(pCheck, "2nd reference to page %d", iPage); checkAppendMsg(pCheck, "2nd reference to page %u", iPage);
return 1; return 1;
} }
setPageReferenced(pCheck, iPage); setPageReferenced(pCheck, iPage);
@@ -10353,13 +10353,13 @@ static void checkPtrmap(
rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent); rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent);
if( rc!=SQLITE_OK ){ if( rc!=SQLITE_OK ){
if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) checkOom(pCheck); if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) checkOom(pCheck);
checkAppendMsg(pCheck, "Failed to read ptrmap key=%d", iChild); checkAppendMsg(pCheck, "Failed to read ptrmap key=%u", iChild);
return; return;
} }
if( ePtrmapType!=eType || iPtrmapParent!=iParent ){ if( ePtrmapType!=eType || iPtrmapParent!=iParent ){
checkAppendMsg(pCheck, checkAppendMsg(pCheck,
"Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)", "Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)",
iChild, eType, iParent, ePtrmapType, iPtrmapParent); iChild, eType, iParent, ePtrmapType, iPtrmapParent);
} }
} }
@@ -10384,7 +10384,7 @@ static void checkList(
if( checkRef(pCheck, iPage) ) break; if( checkRef(pCheck, iPage) ) break;
N--; N--;
if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){ if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){
checkAppendMsg(pCheck, "failed to get page %d", iPage); checkAppendMsg(pCheck, "failed to get page %u", iPage);
break; break;
} }
pOvflData = (unsigned char *)sqlite3PagerGetData(pOvflPage); pOvflData = (unsigned char *)sqlite3PagerGetData(pOvflPage);
@@ -10397,7 +10397,7 @@ static void checkList(
#endif #endif
if( n>pCheck->pBt->usableSize/4-2 ){ if( n>pCheck->pBt->usableSize/4-2 ){
checkAppendMsg(pCheck, checkAppendMsg(pCheck,
"freelist leaf count too big on page %d", iPage); "freelist leaf count too big on page %u", iPage);
N--; N--;
}else{ }else{
for(i=0; i<(int)n; i++){ for(i=0; i<(int)n; i++){
@@ -10429,7 +10429,7 @@ static void checkList(
} }
if( N && nErrAtStart==pCheck->nErr ){ if( N && nErrAtStart==pCheck->nErr ){
checkAppendMsg(pCheck, checkAppendMsg(pCheck,
"%s is %d but should be %d", "%s is %u but should be %u",
isFreeList ? "size" : "overflow list length", isFreeList ? "size" : "overflow list length",
expected-N, expected); expected-N, expected);
} }
@@ -10571,7 +10571,7 @@ static int checkTreePage(
hdr = pPage->hdrOffset; hdr = pPage->hdrOffset;
/* Set up for cell analysis */ /* Set up for cell analysis */
pCheck->zPfx = "On tree page %u cell %d: "; pCheck->zPfx = "On tree page %u cell %u: ";
contentOffset = get2byteNotZero(&data[hdr+5]); contentOffset = get2byteNotZero(&data[hdr+5]);
assert( contentOffset<=usableSize ); /* Enforced by btreeInitPage() */ assert( contentOffset<=usableSize ); /* Enforced by btreeInitPage() */
@@ -10615,7 +10615,7 @@ static int checkTreePage(
pc = get2byteAligned(pCellIdx); pc = get2byteAligned(pCellIdx);
pCellIdx -= 2; pCellIdx -= 2;
if( pc<contentOffset || pc>usableSize-4 ){ if( pc<contentOffset || pc>usableSize-4 ){
checkAppendMsg(pCheck, "Offset %d out of range %d..%d", checkAppendMsg(pCheck, "Offset %u out of range %u..%u",
pc, contentOffset, usableSize-4); pc, contentOffset, usableSize-4);
doCoverageCheck = 0; doCoverageCheck = 0;
continue; continue;
@@ -10747,7 +10747,7 @@ static int checkTreePage(
*/ */
if( heap[0]==0 && nFrag!=data[hdr+7] ){ if( heap[0]==0 && nFrag!=data[hdr+7] ){
checkAppendMsg(pCheck, checkAppendMsg(pCheck,
"Fragmentation of %d bytes reported as %d on page %u", "Fragmentation of %u bytes reported as %u on page %u",
nFrag, data[hdr+7], iPage); nFrag, data[hdr+7], iPage);
} }
} }
@@ -10861,7 +10861,7 @@ int sqlite3BtreeIntegrityCheck(
mxInHdr = get4byte(&pBt->pPage1->aData[52]); mxInHdr = get4byte(&pBt->pPage1->aData[52]);
if( mx!=mxInHdr ){ if( mx!=mxInHdr ){
checkAppendMsg(&sCheck, checkAppendMsg(&sCheck,
"max rootpage (%d) disagrees with header (%d)", "max rootpage (%u) disagrees with header (%u)",
mx, mxInHdr mx, mxInHdr
); );
} }
@@ -10892,7 +10892,7 @@ int sqlite3BtreeIntegrityCheck(
for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){ for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){
#ifdef SQLITE_OMIT_AUTOVACUUM #ifdef SQLITE_OMIT_AUTOVACUUM
if( getPageReferenced(&sCheck, i)==0 ){ if( getPageReferenced(&sCheck, i)==0 ){
checkAppendMsg(&sCheck, "Page %d is never used", i); checkAppendMsg(&sCheck, "Page %u is never used", i);
} }
#else #else
/* If the database supports auto-vacuum, make sure no tables contain /* If the database supports auto-vacuum, make sure no tables contain
@@ -10900,11 +10900,11 @@ int sqlite3BtreeIntegrityCheck(
*/ */
if( getPageReferenced(&sCheck, i)==0 && if( getPageReferenced(&sCheck, i)==0 &&
(PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){ (PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){
checkAppendMsg(&sCheck, "Page %d is never used", i); checkAppendMsg(&sCheck, "Page %u is never used", i);
} }
if( getPageReferenced(&sCheck, i)!=0 && if( getPageReferenced(&sCheck, i)!=0 &&
(PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){ (PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){
checkAppendMsg(&sCheck, "Pointer map page %d is referenced", i); checkAppendMsg(&sCheck, "Pointer map page %u is referenced", i);
} }
#endif #endif
} }