mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Fix the ptrmapPageno() routine so that it works correctly for an input of 1.
FossilOrigin-Name: 699a9bf28377f43f58c509878cce60cb906dbf48
This commit is contained in:
@@ -730,11 +730,16 @@ int sqlite3BtreeCursorHasMoved(BtCursor *pCur, int *pHasMoved){
|
||||
** Given a page number of a regular database page, return the page
|
||||
** number for the pointer-map page that contains the entry for the
|
||||
** input page number.
|
||||
**
|
||||
** Return 0 (not a valid page) for pgno==1 since there is
|
||||
** no pointer map associated with page 1. The integrity_check logic
|
||||
** requires that ptrmapPageno(*,1)!=1.
|
||||
*/
|
||||
static Pgno ptrmapPageno(BtShared *pBt, Pgno pgno){
|
||||
int nPagesPerMapPage;
|
||||
Pgno iPtrMap, ret;
|
||||
assert( sqlite3_mutex_held(pBt->mutex) );
|
||||
if( pgno<2 ) return 0;
|
||||
nPagesPerMapPage = (pBt->usableSize/5)+1;
|
||||
iPtrMap = (pgno-2)/nPagesPerMapPage;
|
||||
ret = (iPtrMap*nPagesPerMapPage) + 2;
|
||||
|
Reference in New Issue
Block a user