Pgno
pCur->pgnoRoot = (Pgno)iTable;
Pgno nextPage;
Pgno nextPage;
Pgno oldPgno;
Pgno pgno;
Pgno freeList; /* First free page in a list of all free pages */
Pgno pgno;
Pgno chldPg;
Pgno pgno;
Pgno rightChild; /* Child page that comes after all cells on this page */
static int allocatePage(Btree *pBt, MemPage **ppPage, Pgno *pPgno, Pgno nearby){
static int freePage(Btree *pBt, void *pPage, Pgno pgno){
Pgno ovfl, nextOvfl;
Pgno leftChild; /* Child page that comes before this cell */
Pgno *pNext;
Pgno nearby = 0;
static void reparentPage(Pager *pPager, Pgno pgno, MemPage *pNewParent,int idx){
Pgno pgnoOld[NB]; /* Page numbers for each page in apOld[] */
Pgno pgnoNew[NB+1]; /* Page numbers for each page in apNew[] */
Pgno pgnoChild;
Pgno pgno, swabPgno;
#define MX_LOCAL_PAYLOAD ((USABLE_SPACE/4-(sizeof(CellHdr)+sizeof(Pgno)))&~3)
Pgno ovfl; /* The first overflow page */
#define OVERFLOW_SIZE (SQLITE_USABLE_SIZE-sizeof(Pgno))
Pgno pgnoChild;
Pgno pgnoRoot;
static int clearDatabasePage(Btree *pBt, Pgno pgno, int freePageFlag){
Pgno iNext;
if( pCur->pgnoRoot==(Pgno)iTable ){
rc = clearDatabasePage(pBt, (Pgno)iTable, 0);
if( pCur->pgnoRoot==(Pgno)iTable ){
rc = sqlitepager_get(pBt->pPager, (Pgno)iTable, (void**)&pPage);
Pgno ovfl, nextOvfl;
Pgno *pPrev;
Pgno new;
Pgno pgnoFrom,
Pgno *pTo
Pgno to;
Pgno aFree[(OVERFLOW_SIZE-sizeof(int))/sizeof(Pgno)];
Pgno newChld;
Pgno newChld;
rc = sqlitepager_get(pBt->pPager, (Pgno)pgno, (void**)&pPage);
if( sqlitepager_get(pCheck->pPager, (Pgno)iPage, (void**)&pOvfl) ){
if( (rc = sqlitepager_get(pCheck->pPager, (Pgno)iPage, (void**)&pPage))!=0 ){
if( (rc = initPage(pBt, pPage, (Pgno)iPage, pParent))!=0 ){
Pgno i, nPage, nToPage;
Pgno pgnoRoot; /* The root page of this tree */
n = MX_LOCAL_PAYLOAD + sizeof(Pgno);
static int initPage(Bt *pBt, MemPage *pPage, Pgno pgnoThis, MemPage *pParent){
assert( sizeof(Pgno)==4 );
int sqlitepager_truncate(Pager *pPager, Pgno nPage){
Pgno pgno; /* The page number for this page */
Pgno sqlitepager_pagenumber(void *pData){
int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage){
void *sqlitepager_lookup(Pager *pPager, Pgno pgno){
void (*xCodec)(void*,void*,Pgno,int); /* Routine for en/decoding data */
int sqlitepager_overwrite(Pager *pPager, Pgno pgno, void *pData){
void sqlitepager_dont_write(Pager *pPager, Pgno pgno){
void (*xCodec)(void*,void*,Pgno,int),
Pgno pgno; /* The page number */
(sizeof(aJournalMagic1) + sizeof(Pgno) + ((X)>=3)*2*sizeof(u32))
(SQLITE_PAGE_SIZE + sizeof(Pgno) + ((X)>=3)*sizeof(u32))
static PgHdr *pager_lookup(Pager *pPager, Pgno pgno){
static u32 pager_cksum(Pager *pPager, Pgno pgno, const char *aData){
Pgno mxPg = 0; /* Size of the original file in pages */
if( szJ < sizeof(aMagic)+sizeof(Pgno) ){
void sqlitepager_set_codec(Pager*,void(*)(void*,void*,Pgno,int),void*);
int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage);
void *sqlitepager_lookup(Pager *pPager, Pgno pgno);
Pgno sqlitepager_pagenumber(void*);
int sqlitepager_overwrite(Pager *pPager, Pgno pgno, void*);
int sqlitepager_truncate(Pager*,Pgno);
void sqlitepager_dont_write(Pager*, Pgno);