mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Remove dead code from btree.c. Ticket #2050. (CVS 3500)
FossilOrigin-Name: dbd0125c62457681689db48e1f0a752767855773
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Change\sthe\sdefault\stemp\sfile\sprefix\sto\sbe\s"sqlite"\sspelled\sbackwards.\nTickets\s#2049\set\sal.\s(CVS\s3499)
|
C Remove\sdead\scode\sfrom\sbtree.c.\s\sTicket\s#2050.\s(CVS\s3500)
|
||||||
D 2006-10-31T21:27:33
|
D 2006-11-01T12:08:41
|
||||||
F Makefile.in 4379c909d46b38b8c5db3533084601621d4f14b2
|
F Makefile.in 4379c909d46b38b8c5db3533084601621d4f14b2
|
||||||
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
|
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
|
||||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
||||||
@@ -57,7 +57,7 @@ F src/alter.c 2c79ec40f65e33deaf90ca493422c74586e481a3
|
|||||||
F src/analyze.c 7d2b7ab9a9c2fd6e55700f69064dfdd3e36d7a8a
|
F src/analyze.c 7d2b7ab9a9c2fd6e55700f69064dfdd3e36d7a8a
|
||||||
F src/attach.c b11eb4d5d3fb99a10a626956bccc7215f6b68b16
|
F src/attach.c b11eb4d5d3fb99a10a626956bccc7215f6b68b16
|
||||||
F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
|
F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
|
||||||
F src/btree.c 8f18bb08f84d6a12104fd0f01255febe6289a186
|
F src/btree.c 6c6a106d47e9c18047ab8740d3c9712b20ecd754
|
||||||
F src/btree.h 061c50e37de7f50b58528e352d400cf33ead7418
|
F src/btree.h 061c50e37de7f50b58528e352d400cf33ead7418
|
||||||
F src/build.c 7199949a6a3449e9ec69408cc79a48ed04fd0b85
|
F src/build.c 7199949a6a3449e9ec69408cc79a48ed04fd0b85
|
||||||
F src/callback.c fd9bb39f7ff6b52bad8365617abc61c720640429
|
F src/callback.c fd9bb39f7ff6b52bad8365617abc61c720640429
|
||||||
@@ -419,7 +419,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
|
|||||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
||||||
P 7ce48000bb0dafda8a171bfc040dfe2300f84ed2
|
P a19ce5c1c4e86d141f7e04af6babeb2ecb75b523
|
||||||
R b5f51730eea9e8a049400d6243353814
|
R 73238275922b5fad9333a4846621a7e2
|
||||||
U drh
|
U drh
|
||||||
Z 17ffcdf12d5669a938d6a3b8728ee88d
|
Z 72b5a278ab323c8b0c34502e22c57218
|
||||||
|
@@ -1 +1 @@
|
|||||||
a19ce5c1c4e86d141f7e04af6babeb2ecb75b523
|
dbd0125c62457681689db48e1f0a752767855773
|
101
src/btree.c
101
src/btree.c
@@ -9,7 +9,7 @@
|
|||||||
** May you share freely, never taking more than you give.
|
** May you share freely, never taking more than you give.
|
||||||
**
|
**
|
||||||
*************************************************************************
|
*************************************************************************
|
||||||
** $Id: btree.c,v 1.328 2006/08/16 16:42:48 drh Exp $
|
** $Id: btree.c,v 1.329 2006/11/01 12:08:41 drh Exp $
|
||||||
**
|
**
|
||||||
** This file implements a external (disk-based) database using BTrees.
|
** This file implements a external (disk-based) database using BTrees.
|
||||||
** For a detailed discussion of BTrees, refer to
|
** For a detailed discussion of BTrees, refer to
|
||||||
@@ -1039,91 +1039,6 @@ static int ptrmapPutOvfl(MemPage *pPage, int iCell){
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Do sanity checking on a page. Throw an exception if anything is
|
|
||||||
** not right.
|
|
||||||
**
|
|
||||||
** This routine is used for internal error checking only. It is omitted
|
|
||||||
** from most builds.
|
|
||||||
*/
|
|
||||||
#if defined(BTREE_DEBUG) && !defined(NDEBUG) && 0
|
|
||||||
static void _pageIntegrity(MemPage *pPage){
|
|
||||||
int usableSize;
|
|
||||||
u8 *data;
|
|
||||||
int i, j, idx, c, pc, hdr, nFree;
|
|
||||||
int cellOffset;
|
|
||||||
int nCell, cellLimit;
|
|
||||||
u8 *used;
|
|
||||||
|
|
||||||
used = sqliteMallocRaw( pPage->pBt->pageSize );
|
|
||||||
if( used==0 ) return;
|
|
||||||
usableSize = pPage->pBt->usableSize;
|
|
||||||
assert( pPage->aData==&((unsigned char*)pPage)[-pPage->pBt->pageSize] );
|
|
||||||
hdr = pPage->hdrOffset;
|
|
||||||
assert( hdr==(pPage->pgno==1 ? 100 : 0) );
|
|
||||||
assert( pPage->pgno==sqlite3pager_pagenumber(pPage->aData) );
|
|
||||||
c = pPage->aData[hdr];
|
|
||||||
if( pPage->isInit ){
|
|
||||||
assert( pPage->leaf == ((c & PTF_LEAF)!=0) );
|
|
||||||
assert( pPage->zeroData == ((c & PTF_ZERODATA)!=0) );
|
|
||||||
assert( pPage->leafData == ((c & PTF_LEAFDATA)!=0) );
|
|
||||||
assert( pPage->intKey == ((c & (PTF_INTKEY|PTF_LEAFDATA))!=0) );
|
|
||||||
assert( pPage->hasData ==
|
|
||||||
!(pPage->zeroData || (!pPage->leaf && pPage->leafData)) );
|
|
||||||
assert( pPage->cellOffset==pPage->hdrOffset+12-4*pPage->leaf );
|
|
||||||
assert( pPage->nCell = get2byte(&pPage->aData[hdr+3]) );
|
|
||||||
}
|
|
||||||
data = pPage->aData;
|
|
||||||
memset(used, 0, usableSize);
|
|
||||||
for(i=0; i<hdr+10-pPage->leaf*4; i++) used[i] = 1;
|
|
||||||
nFree = 0;
|
|
||||||
pc = get2byte(&data[hdr+1]);
|
|
||||||
while( pc ){
|
|
||||||
int size;
|
|
||||||
assert( pc>0 && pc<usableSize-4 );
|
|
||||||
size = get2byte(&data[pc+2]);
|
|
||||||
assert( pc+size<=usableSize );
|
|
||||||
nFree += size;
|
|
||||||
for(i=pc; i<pc+size; i++){
|
|
||||||
assert( used[i]==0 );
|
|
||||||
used[i] = 1;
|
|
||||||
}
|
|
||||||
pc = get2byte(&data[pc]);
|
|
||||||
}
|
|
||||||
idx = 0;
|
|
||||||
nCell = get2byte(&data[hdr+3]);
|
|
||||||
cellLimit = get2byte(&data[hdr+5]);
|
|
||||||
assert( pPage->isInit==0
|
|
||||||
|| pPage->nFree==nFree+data[hdr+7]+cellLimit-(cellOffset+2*nCell) );
|
|
||||||
cellOffset = pPage->cellOffset;
|
|
||||||
for(i=0; i<nCell; i++){
|
|
||||||
int size;
|
|
||||||
pc = get2byte(&data[cellOffset+2*i]);
|
|
||||||
assert( pc>0 && pc<usableSize-4 );
|
|
||||||
size = cellSize(pPage, &data[pc]);
|
|
||||||
assert( pc+size<=usableSize );
|
|
||||||
for(j=pc; j<pc+size; j++){
|
|
||||||
assert( used[j]==0 );
|
|
||||||
used[j] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(i=cellOffset+2*nCell; i<cellimit; i++){
|
|
||||||
assert( used[i]==0 );
|
|
||||||
used[i] = 1;
|
|
||||||
}
|
|
||||||
nFree = 0;
|
|
||||||
for(i=0; i<usableSize; i++){
|
|
||||||
assert( used[i]<=1 );
|
|
||||||
if( used[i]==0 ) nFree++;
|
|
||||||
}
|
|
||||||
assert( nFree==data[hdr+7] );
|
|
||||||
sqliteFree(used);
|
|
||||||
}
|
|
||||||
#define pageIntegrity(X) _pageIntegrity(X)
|
|
||||||
#else
|
|
||||||
# define pageIntegrity(X)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* A bunch of assert() statements to check the transaction state variables
|
/* A bunch of assert() statements to check the transaction state variables
|
||||||
** of handle p (type Btree*) are internally consistent.
|
** of handle p (type Btree*) are internally consistent.
|
||||||
*/
|
*/
|
||||||
@@ -1430,7 +1345,6 @@ static int initPage(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pPage->isInit = 1;
|
pPage->isInit = 1;
|
||||||
pageIntegrity(pPage);
|
|
||||||
return SQLITE_OK;
|
return SQLITE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1461,7 +1375,6 @@ static void zeroPage(MemPage *pPage, int flags){
|
|||||||
pPage->idxShift = 0;
|
pPage->idxShift = 0;
|
||||||
pPage->nCell = 0;
|
pPage->nCell = 0;
|
||||||
pPage->isInit = 1;
|
pPage->isInit = 1;
|
||||||
pageIntegrity(pPage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2971,7 +2884,6 @@ static int getPayload(
|
|||||||
assert( pCur->eState==CURSOR_VALID );
|
assert( pCur->eState==CURSOR_VALID );
|
||||||
pBt = pCur->pBtree->pBt;
|
pBt = pCur->pBtree->pBt;
|
||||||
pPage = pCur->pPage;
|
pPage = pCur->pPage;
|
||||||
pageIntegrity(pPage);
|
|
||||||
assert( pCur->idx>=0 && pCur->idx<pPage->nCell );
|
assert( pCur->idx>=0 && pCur->idx<pPage->nCell );
|
||||||
getCellInfo(pCur);
|
getCellInfo(pCur);
|
||||||
aPayload = pCur->info.pCell + pCur->info.nHeader;
|
aPayload = pCur->info.pCell + pCur->info.nHeader;
|
||||||
@@ -3109,7 +3021,6 @@ static const unsigned char *fetchPayload(
|
|||||||
assert( pCur!=0 && pCur->pPage!=0 );
|
assert( pCur!=0 && pCur->pPage!=0 );
|
||||||
assert( pCur->eState==CURSOR_VALID );
|
assert( pCur->eState==CURSOR_VALID );
|
||||||
pPage = pCur->pPage;
|
pPage = pCur->pPage;
|
||||||
pageIntegrity(pPage);
|
|
||||||
assert( pCur->idx>=0 && pCur->idx<pPage->nCell );
|
assert( pCur->idx>=0 && pCur->idx<pPage->nCell );
|
||||||
getCellInfo(pCur);
|
getCellInfo(pCur);
|
||||||
aPayload = pCur->info.pCell;
|
aPayload = pCur->info.pCell;
|
||||||
@@ -3171,7 +3082,6 @@ static int moveToChild(BtCursor *pCur, u32 newPgno){
|
|||||||
assert( pCur->eState==CURSOR_VALID );
|
assert( pCur->eState==CURSOR_VALID );
|
||||||
rc = getAndInitPage(pBt, newPgno, &pNewPage, pCur->pPage);
|
rc = getAndInitPage(pBt, newPgno, &pNewPage, pCur->pPage);
|
||||||
if( rc ) return rc;
|
if( rc ) return rc;
|
||||||
pageIntegrity(pNewPage);
|
|
||||||
pNewPage->idxParent = pCur->idx;
|
pNewPage->idxParent = pCur->idx;
|
||||||
pOldPage = pCur->pPage;
|
pOldPage = pCur->pPage;
|
||||||
pOldPage->idxShift = 0;
|
pOldPage->idxShift = 0;
|
||||||
@@ -3219,10 +3129,8 @@ static void moveToParent(BtCursor *pCur){
|
|||||||
pPage = pCur->pPage;
|
pPage = pCur->pPage;
|
||||||
assert( pPage!=0 );
|
assert( pPage!=0 );
|
||||||
assert( !isRootPage(pPage) );
|
assert( !isRootPage(pPage) );
|
||||||
pageIntegrity(pPage);
|
|
||||||
pParent = pPage->pParent;
|
pParent = pPage->pParent;
|
||||||
assert( pParent!=0 );
|
assert( pParent!=0 );
|
||||||
pageIntegrity(pParent);
|
|
||||||
idxParent = pPage->idxParent;
|
idxParent = pPage->idxParent;
|
||||||
sqlite3pager_ref(pParent->aData);
|
sqlite3pager_ref(pParent->aData);
|
||||||
releasePage(pPage);
|
releasePage(pPage);
|
||||||
@@ -3252,7 +3160,6 @@ static int moveToRoot(BtCursor *pCur){
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
releasePage(pCur->pPage);
|
releasePage(pCur->pPage);
|
||||||
pageIntegrity(pRoot);
|
|
||||||
pCur->pPage = pRoot;
|
pCur->pPage = pRoot;
|
||||||
}
|
}
|
||||||
pCur->idx = 0;
|
pCur->idx = 0;
|
||||||
@@ -3406,7 +3313,6 @@ int sqlite3BtreeMoveto(BtCursor *pCur, const void *pKey, i64 nKey, int *pRes){
|
|||||||
if( !pPage->intKey && pKey==0 ){
|
if( !pPage->intKey && pKey==0 ){
|
||||||
return SQLITE_CORRUPT_BKPT;
|
return SQLITE_CORRUPT_BKPT;
|
||||||
}
|
}
|
||||||
pageIntegrity(pPage);
|
|
||||||
while( lwr<=upr ){
|
while( lwr<=upr ){
|
||||||
void *pCellKey;
|
void *pCellKey;
|
||||||
i64 nCellKey;
|
i64 nCellKey;
|
||||||
@@ -4258,7 +4164,6 @@ static int insertCell(
|
|||||||
put2byte(&data[ins], idx);
|
put2byte(&data[ins], idx);
|
||||||
put2byte(&data[hdr+3], pPage->nCell);
|
put2byte(&data[hdr+3], pPage->nCell);
|
||||||
pPage->idxShift = 1;
|
pPage->idxShift = 1;
|
||||||
pageIntegrity(pPage);
|
|
||||||
#ifndef SQLITE_OMIT_AUTOVACUUM
|
#ifndef SQLITE_OMIT_AUTOVACUUM
|
||||||
if( pPage->pBt->autoVacuum ){
|
if( pPage->pBt->autoVacuum ){
|
||||||
/* The cell may contain a pointer to an overflow page. If so, write
|
/* The cell may contain a pointer to an overflow page. If so, write
|
||||||
@@ -4998,8 +4903,6 @@ static int balance_nonroot(MemPage *pPage){
|
|||||||
** But the parent page will always be initialized.
|
** But the parent page will always be initialized.
|
||||||
*/
|
*/
|
||||||
assert( pParent->isInit );
|
assert( pParent->isInit );
|
||||||
/* assert( pPage->isInit ); // No! pPage might have been added to freelist */
|
|
||||||
/* pageIntegrity(pPage); // No! pPage might have been added to freelist */
|
|
||||||
rc = balance(pParent, 0);
|
rc = balance(pParent, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -5984,14 +5887,12 @@ int sqlite3BtreeCursorInfo(BtCursor *pCur, int *aResult, int upCnt){
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
pageIntegrity(pPage);
|
|
||||||
assert( pPage->isInit );
|
assert( pPage->isInit );
|
||||||
getTempCursor(pCur, &tmpCur);
|
getTempCursor(pCur, &tmpCur);
|
||||||
while( upCnt-- ){
|
while( upCnt-- ){
|
||||||
moveToParent(&tmpCur);
|
moveToParent(&tmpCur);
|
||||||
}
|
}
|
||||||
pPage = tmpCur.pPage;
|
pPage = tmpCur.pPage;
|
||||||
pageIntegrity(pPage);
|
|
||||||
aResult[0] = sqlite3pager_pagenumber(pPage->aData);
|
aResult[0] = sqlite3pager_pagenumber(pPage->aData);
|
||||||
assert( aResult[0]==pPage->pgno );
|
assert( aResult[0]==pPage->pgno );
|
||||||
aResult[1] = tmpCur.idx;
|
aResult[1] = tmpCur.idx;
|
||||||
|
Reference in New Issue
Block a user