pPager 10229 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager); pPager 10248 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerAcquire(Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag); pPager 10250 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno); pPager 10268 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager, const char *zMaster); pPager 10271 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int n); pPager 10272 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint); pPager 10273 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSharedLock(Pager *pPager); pPager 10276 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerCheckpoint(Pager *pPager, int, int*, int*); pPager 10277 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalSupported(Pager *pPager); pPager 10278 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalCallback(Pager *pPager); pPager 10279 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); pPager 10280 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerCloseWal(Pager *pPager); pPager 10284 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalFramesize(Pager *pPager); pPager 10362 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; /* The pager this page is part of */ pPager 15205 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pBt); pPager 15206 ext/sqlite3/libsqlite/sqlite3.c totalUsed += sqlite3PagerMemUsed(pPager); pPager 15295 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(db->aDb[i].pBt); pPager 15296 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerCacheStat(pPager, op, resetFlag, &nRet); pPager 42394 ext/sqlite3/libsqlite/sqlite3.c #define JOURNAL_PG_SZ(pPager) ((pPager->pageSize) + 8) pPager 42400 ext/sqlite3/libsqlite/sqlite3.c #define JOURNAL_HDR_SZ(pPager) (pPager->sectorSize) pPager 42411 ext/sqlite3/libsqlite/sqlite3.c # define MEMDB pPager->memDb pPager 42448 ext/sqlite3/libsqlite/sqlite3.c static int pagerUseWal(Pager *pPager){ pPager 42449 ext/sqlite3/libsqlite/sqlite3.c return (pPager->pWal!=0); pPager 42469 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = p; pPager 42486 ext/sqlite3/libsqlite/sqlite3.c assert( p->tempFile==0 || pPager->changeCountDone ); pPager 42514 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->changeCountDone==0 || pPager->eLock>=RESERVED_LOCK ); pPager 42520 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42521 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3PcacheRefCount(pPager->pPCache)==0 || pPager->tempFile ); pPager 42525 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42532 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42533 ext/sqlite3/libsqlite/sqlite3.c if( !pagerUseWal(pPager) ){ pPager 42536 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbSize==pPager->dbOrigSize ); pPager 42537 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbOrigSize==pPager->dbFileSize ); pPager 42538 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbOrigSize==pPager->dbHintSize ); pPager 42539 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->setMaster==0 ); pPager 42544 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42545 ext/sqlite3/libsqlite/sqlite3.c if( !pagerUseWal(pPager) ){ pPager 42557 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbOrigSize==pPager->dbFileSize ); pPager 42558 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbOrigSize==pPager->dbHintSize ); pPager 42563 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42564 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 42570 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbOrigSize<=pPager->dbHintSize ); pPager 42575 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==SQLITE_OK ); pPager 42576 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 42588 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode!=SQLITE_OK ); pPager 42589 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3PcacheRefCount(pPager->pPCache)>0 ); pPager 42658 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 42662 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pPager->nSavepoint; i++){ pPager 42663 ext/sqlite3/libsqlite/sqlite3.c p = &pPager->aSavepoint[i]; pPager 42674 ext/sqlite3/libsqlite/sqlite3.c static int pageInJournal(Pager *pPager, PgHdr *pPg){ pPager 42675 ext/sqlite3/libsqlite/sqlite3.c return sqlite3BitvecTest(pPager->pInJournal, pPg->pgno); pPager 42719 ext/sqlite3/libsqlite/sqlite3.c static int pagerUnlockDb(Pager *pPager, int eLock){ pPager 42722 ext/sqlite3/libsqlite/sqlite3.c assert( !pPager->exclusiveMode || pPager->eLock==eLock ); pPager 42724 ext/sqlite3/libsqlite/sqlite3.c assert( eLock!=NO_LOCK || pagerUseWal(pPager)==0 ); pPager 42725 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) ){ pPager 42726 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock>=eLock ); pPager 42727 ext/sqlite3/libsqlite/sqlite3.c rc = pPager->noLock ? SQLITE_OK : sqlite3OsUnlock(pPager->fd, eLock); pPager 42728 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eLock!=UNKNOWN_LOCK ){ pPager 42729 ext/sqlite3/libsqlite/sqlite3.c pPager->eLock = (u8)eLock; pPager 42731 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("UNLOCK %p %d\n", pPager, eLock)) pPager 42746 ext/sqlite3/libsqlite/sqlite3.c static int pagerLockDb(Pager *pPager, int eLock){ pPager 42750 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eLock<eLock || pPager->eLock==UNKNOWN_LOCK ){ pPager 42751 ext/sqlite3/libsqlite/sqlite3.c rc = pPager->noLock ? SQLITE_OK : sqlite3OsLock(pPager->fd, eLock); pPager 42752 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){ pPager 42753 ext/sqlite3/libsqlite/sqlite3.c pPager->eLock = (u8)eLock; pPager 42754 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("LOCK %p %d\n", pPager, eLock)) pPager 42778 ext/sqlite3/libsqlite/sqlite3.c static int jrnlBufferSize(Pager *pPager){ pPager 42780 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->tempFile ){ pPager 42785 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) ); pPager 42786 ext/sqlite3/libsqlite/sqlite3.c dc = sqlite3OsDeviceCharacteristics(pPager->fd); pPager 42787 ext/sqlite3/libsqlite/sqlite3.c nSector = pPager->sectorSize; pPager 42788 ext/sqlite3/libsqlite/sqlite3.c szPage = pPager->pageSize; pPager 42797 ext/sqlite3/libsqlite/sqlite3.c return JOURNAL_HDR_SZ(pPager) + JOURNAL_PG_SZ(pPager); pPager 42819 ext/sqlite3/libsqlite/sqlite3.c return pager_datahash(pPage->pPager->pageSize, (unsigned char *)pPage->pData); pPager 42832 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 42833 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_ERROR ); pPager 42923 ext/sqlite3/libsqlite/sqlite3.c static i64 journalHdrOffset(Pager *pPager){ pPager 42925 ext/sqlite3/libsqlite/sqlite3.c i64 c = pPager->journalOff; pPager 42927 ext/sqlite3/libsqlite/sqlite3.c offset = ((c-1)/JOURNAL_HDR_SZ(pPager) + 1) * JOURNAL_HDR_SZ(pPager); pPager 42929 ext/sqlite3/libsqlite/sqlite3.c assert( offset%JOURNAL_HDR_SZ(pPager)==0 ); pPager 42931 ext/sqlite3/libsqlite/sqlite3.c assert( (offset-c)<JOURNAL_HDR_SZ(pPager) ); pPager 42956 ext/sqlite3/libsqlite/sqlite3.c static int zeroJournalHdr(Pager *pPager, int doTruncate){ pPager 42958 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) ); pPager 42959 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalOff ){ pPager 42960 ext/sqlite3/libsqlite/sqlite3.c const i64 iLimit = pPager->journalSizeLimit; /* Local cache of jsl */ pPager 42962 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JZEROHDR %p\n", pPager)) pPager 42964 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->jfd, 0); pPager 42967 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->jfd, zeroHdr, sizeof(zeroHdr), 0); pPager 42969 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && !pPager->noSync ){ pPager 42970 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->jfd, SQLITE_SYNC_DATAONLY|pPager->syncFlags); pPager 42981 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileSize(pPager->jfd, &sz); pPager 42983 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->jfd, iLimit); pPager 43005 ext/sqlite3/libsqlite/sqlite3.c static int writeJournalHdr(Pager *pPager){ pPager 43007 ext/sqlite3/libsqlite/sqlite3.c char *zHeader = pPager->pTmpSpace; /* Temporary space used to build header */ pPager 43008 ext/sqlite3/libsqlite/sqlite3.c u32 nHeader = (u32)pPager->pageSize;/* Size of buffer pointed to by zHeader */ pPager 43012 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) ); /* Journal file must be open. */ pPager 43014 ext/sqlite3/libsqlite/sqlite3.c if( nHeader>JOURNAL_HDR_SZ(pPager) ){ pPager 43015 ext/sqlite3/libsqlite/sqlite3.c nHeader = JOURNAL_HDR_SZ(pPager); pPager 43022 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; ii<pPager->nSavepoint; ii++){ pPager 43023 ext/sqlite3/libsqlite/sqlite3.c if( pPager->aSavepoint[ii].iHdrOffset==0 ){ pPager 43024 ext/sqlite3/libsqlite/sqlite3.c pPager->aSavepoint[ii].iHdrOffset = pPager->journalOff; pPager 43028 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr = pPager->journalOff = journalHdrOffset(pPager); pPager 43050 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || pPager->noSync ); pPager 43051 ext/sqlite3/libsqlite/sqlite3.c if( pPager->noSync || (pPager->journalMode==PAGER_JOURNALMODE_MEMORY) pPager 43052 ext/sqlite3/libsqlite/sqlite3.c || (sqlite3OsDeviceCharacteristics(pPager->fd)&SQLITE_IOCAP_SAFE_APPEND) pPager 43061 ext/sqlite3/libsqlite/sqlite3.c sqlite3_randomness(sizeof(pPager->cksumInit), &pPager->cksumInit); pPager 43062 ext/sqlite3/libsqlite/sqlite3.c put32bits(&zHeader[sizeof(aJournalMagic)+4], pPager->cksumInit); pPager 43064 ext/sqlite3/libsqlite/sqlite3.c put32bits(&zHeader[sizeof(aJournalMagic)+8], pPager->dbOrigSize); pPager 43066 ext/sqlite3/libsqlite/sqlite3.c put32bits(&zHeader[sizeof(aJournalMagic)+12], pPager->sectorSize); pPager 43069 ext/sqlite3/libsqlite/sqlite3.c put32bits(&zHeader[sizeof(aJournalMagic)+16], pPager->pageSize); pPager 43096 ext/sqlite3/libsqlite/sqlite3.c for(nWrite=0; rc==SQLITE_OK&&nWrite<JOURNAL_HDR_SZ(pPager); nWrite+=nHeader){ pPager 43097 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JHDR %p %lld %d\n", pPager, pPager->journalHdr, nHeader)) pPager 43098 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->jfd, zHeader, nHeader, pPager->journalOff); pPager 43099 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalHdr <= pPager->journalOff ); pPager 43100 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff += nHeader; pPager 43124 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 43134 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) ); /* Journal file must be open. */ pPager 43140 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = journalHdrOffset(pPager); pPager 43141 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalOff+JOURNAL_HDR_SZ(pPager) > journalSize ){ pPager 43144 ext/sqlite3/libsqlite/sqlite3.c iHdrOff = pPager->journalOff; pPager 43151 ext/sqlite3/libsqlite/sqlite3.c if( isHot || iHdrOff!=pPager->journalHdr ){ pPager 43152 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->jfd, aMagic, sizeof(aMagic), iHdrOff); pPager 43165 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+8, pNRec)) pPager 43166 ext/sqlite3/libsqlite/sqlite3.c || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+12, &pPager->cksumInit)) pPager 43167 ext/sqlite3/libsqlite/sqlite3.c || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+16, pDbSize)) pPager 43172 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalOff==0 ){ pPager 43177 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+20, &iSectorSize)) pPager 43178 ext/sqlite3/libsqlite/sqlite3.c || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+24, &iPageSize)) pPager 43188 ext/sqlite3/libsqlite/sqlite3.c iPageSize = pPager->pageSize; pPager 43212 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSetPagesize(pPager, &iPageSize, -1); pPager 43221 ext/sqlite3/libsqlite/sqlite3.c pPager->sectorSize = iSectorSize; pPager 43224 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff += JOURNAL_HDR_SZ(pPager); pPager 43248 ext/sqlite3/libsqlite/sqlite3.c static int writeMasterJournal(Pager *pPager, const char *zMaster){ pPager 43255 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->setMaster==0 ); pPager 43256 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 43259 ext/sqlite3/libsqlite/sqlite3.c || pPager->journalMode==PAGER_JOURNALMODE_MEMORY pPager 43260 ext/sqlite3/libsqlite/sqlite3.c || !isOpen(pPager->jfd) pPager 43264 ext/sqlite3/libsqlite/sqlite3.c pPager->setMaster = 1; pPager 43265 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalHdr <= pPager->journalOff ); pPager 43276 ext/sqlite3/libsqlite/sqlite3.c if( pPager->fullSync ){ pPager 43277 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = journalHdrOffset(pPager); pPager 43279 ext/sqlite3/libsqlite/sqlite3.c iHdrOff = pPager->journalOff; pPager 43284 ext/sqlite3/libsqlite/sqlite3.c if( (0 != (rc = write32bits(pPager->jfd, iHdrOff, PAGER_MJ_PGNO(pPager)))) pPager 43285 ext/sqlite3/libsqlite/sqlite3.c || (0 != (rc = sqlite3OsWrite(pPager->jfd, zMaster, nMaster, iHdrOff+4))) pPager 43286 ext/sqlite3/libsqlite/sqlite3.c || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nMaster, nMaster))) pPager 43287 ext/sqlite3/libsqlite/sqlite3.c || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nMaster+4, cksum))) pPager 43288 ext/sqlite3/libsqlite/sqlite3.c || (0 != (rc = sqlite3OsWrite(pPager->jfd, aJournalMagic, 8, iHdrOff+4+nMaster+8))) pPager 43292 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff += (nMaster+20); pPager 43304 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK==(rc = sqlite3OsFileSize(pPager->jfd, &jrnlSize)) pPager 43305 ext/sqlite3/libsqlite/sqlite3.c && jrnlSize>pPager->journalOff pPager 43307 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->jfd, pPager->journalOff); pPager 43315 ext/sqlite3/libsqlite/sqlite3.c static void pager_reset(Pager *pPager){ pPager 43316 ext/sqlite3/libsqlite/sqlite3.c pPager->iDataVersion++; pPager 43317 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupRestart(pPager->pBackup); pPager 43318 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheClear(pPager->pPCache); pPager 43324 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE u32 sqlite3PagerDataVersion(Pager *pPager){ pPager 43325 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>PAGER_OPEN ); pPager 43326 ext/sqlite3/libsqlite/sqlite3.c return pPager->iDataVersion; pPager 43334 ext/sqlite3/libsqlite/sqlite3.c static void releaseAllSavepoints(Pager *pPager){ pPager 43336 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; ii<pPager->nSavepoint; ii++){ pPager 43337 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecDestroy(pPager->aSavepoint[ii].pInSavepoint); pPager 43339 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->exclusiveMode || sqlite3IsMemJournal(pPager->sjfd) ){ pPager 43340 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->sjfd); pPager 43342 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pPager->aSavepoint); pPager 43343 ext/sqlite3/libsqlite/sqlite3.c pPager->aSavepoint = 0; pPager 43344 ext/sqlite3/libsqlite/sqlite3.c pPager->nSavepoint = 0; pPager 43345 ext/sqlite3/libsqlite/sqlite3.c pPager->nSubRec = 0; pPager 43353 ext/sqlite3/libsqlite/sqlite3.c static int addToSavepointBitvecs(Pager *pPager, Pgno pgno){ pPager 43357 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; ii<pPager->nSavepoint; ii++){ pPager 43358 ext/sqlite3/libsqlite/sqlite3.c PagerSavepoint *p = &pPager->aSavepoint[ii]; pPager 43385 ext/sqlite3/libsqlite/sqlite3.c static void pager_unlock(Pager *pPager){ pPager 43387 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_READER pPager 43388 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_OPEN pPager 43389 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_ERROR pPager 43392 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecDestroy(pPager->pInJournal); pPager 43393 ext/sqlite3/libsqlite/sqlite3.c pPager->pInJournal = 0; pPager 43394 ext/sqlite3/libsqlite/sqlite3.c releaseAllSavepoints(pPager); pPager 43396 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 43397 ext/sqlite3/libsqlite/sqlite3.c assert( !isOpen(pPager->jfd) ); pPager 43398 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalEndReadTransaction(pPager->pWal); pPager 43399 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_OPEN; pPager 43400 ext/sqlite3/libsqlite/sqlite3.c }else if( !pPager->exclusiveMode ){ pPager 43402 ext/sqlite3/libsqlite/sqlite3.c int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0; pPager 43416 ext/sqlite3/libsqlite/sqlite3.c || 1!=(pPager->journalMode & 5) pPager 43418 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 43426 ext/sqlite3/libsqlite/sqlite3.c rc = pagerUnlockDb(pPager, NO_LOCK); pPager 43427 ext/sqlite3/libsqlite/sqlite3.c if( rc!=SQLITE_OK && pPager->eState==PAGER_ERROR ){ pPager 43428 ext/sqlite3/libsqlite/sqlite3.c pPager->eLock = UNKNOWN_LOCK; pPager 43435 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode || pPager->eState!=PAGER_ERROR ); pPager 43436 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = 0; pPager 43437 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_OPEN; pPager 43445 ext/sqlite3/libsqlite/sqlite3.c if( pPager->errCode ){ pPager 43447 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 43448 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = pPager->tempFile; pPager 43449 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_OPEN; pPager 43450 ext/sqlite3/libsqlite/sqlite3.c pPager->errCode = SQLITE_OK; pPager 43451 ext/sqlite3/libsqlite/sqlite3.c if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0); pPager 43454 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 43455 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr = 0; pPager 43456 ext/sqlite3/libsqlite/sqlite3.c pPager->setMaster = 0; pPager 43478 ext/sqlite3/libsqlite/sqlite3.c static int pager_error(Pager *pPager, int rc){ pPager 43482 ext/sqlite3/libsqlite/sqlite3.c pPager->errCode==SQLITE_FULL || pPager 43483 ext/sqlite3/libsqlite/sqlite3.c pPager->errCode==SQLITE_OK || pPager 43484 ext/sqlite3/libsqlite/sqlite3.c (pPager->errCode & 0xff)==SQLITE_IOERR pPager 43487 ext/sqlite3/libsqlite/sqlite3.c pPager->errCode = rc; pPager 43488 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_ERROR; pPager 43493 ext/sqlite3/libsqlite/sqlite3.c static int pager_truncate(Pager *pPager, Pgno nPage); pPager 43548 ext/sqlite3/libsqlite/sqlite3.c static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){ pPager 43565 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 43566 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_ERROR ); pPager 43567 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState<PAGER_WRITER_LOCKED && pPager->eLock<RESERVED_LOCK ){ pPager 43571 ext/sqlite3/libsqlite/sqlite3.c releaseAllSavepoints(pPager); pPager 43572 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) || pPager->pInJournal==0 ); pPager 43573 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->jfd) ){ pPager 43574 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 43577 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3IsMemJournal(pPager->jfd) ){ pPager 43578 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalMode==PAGER_JOURNALMODE_MEMORY ); pPager 43579 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 43580 ext/sqlite3/libsqlite/sqlite3.c }else if( pPager->journalMode==PAGER_JOURNALMODE_TRUNCATE ){ pPager 43581 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalOff==0 ){ pPager 43584 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->jfd, 0); pPager 43585 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && pPager->fullSync ){ pPager 43591 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->jfd, pPager->syncFlags); pPager 43594 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 43595 ext/sqlite3/libsqlite/sqlite3.c }else if( pPager->journalMode==PAGER_JOURNALMODE_PERSIST pPager 43596 ext/sqlite3/libsqlite/sqlite3.c || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL) pPager 43598 ext/sqlite3/libsqlite/sqlite3.c rc = zeroJournalHdr(pPager, hasMaster); pPager 43599 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 43606 ext/sqlite3/libsqlite/sqlite3.c int bDelete = (!pPager->tempFile && sqlite3JournalExists(pPager->jfd)); pPager 43607 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalMode==PAGER_JOURNALMODE_DELETE pPager 43608 ext/sqlite3/libsqlite/sqlite3.c || pPager->journalMode==PAGER_JOURNALMODE_MEMORY pPager 43609 ext/sqlite3/libsqlite/sqlite3.c || pPager->journalMode==PAGER_JOURNALMODE_WAL pPager 43611 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 43613 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsDelete(pPager->pVfs, pPager->zJournal, 0); pPager 43619 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheIterateDirty(pPager->pPCache, pager_set_pagehash); pPager 43620 ext/sqlite3/libsqlite/sqlite3.c if( pPager->dbSize==0 && sqlite3PcacheRefCount(pPager->pPCache)>0 ){ pPager 43621 ext/sqlite3/libsqlite/sqlite3.c PgHdr *p = sqlite3PagerLookup(pPager, 1); pPager 43629 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecDestroy(pPager->pInJournal); pPager 43630 ext/sqlite3/libsqlite/sqlite3.c pPager->pInJournal = 0; pPager 43631 ext/sqlite3/libsqlite/sqlite3.c pPager->nRec = 0; pPager 43632 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheCleanAll(pPager->pPCache); pPager 43633 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheTruncate(pPager->pPCache, pPager->dbSize); pPager 43635 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 43640 ext/sqlite3/libsqlite/sqlite3.c rc2 = sqlite3WalEndWriteTransaction(pPager->pWal); pPager 43642 ext/sqlite3/libsqlite/sqlite3.c }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){ pPager 43649 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==EXCLUSIVE_LOCK ); pPager 43650 ext/sqlite3/libsqlite/sqlite3.c rc = pager_truncate(pPager, pPager->dbSize); pPager 43653 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && bCommit && isOpen(pPager->fd) ){ pPager 43654 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_COMMIT_PHASETWO, 0); pPager 43658 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->exclusiveMode pPager 43659 ext/sqlite3/libsqlite/sqlite3.c && (!pagerUseWal(pPager) || sqlite3WalExclusiveMode(pPager->pWal, 0)) pPager 43661 ext/sqlite3/libsqlite/sqlite3.c rc2 = pagerUnlockDb(pPager, SHARED_LOCK); pPager 43662 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = 0; pPager 43664 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_READER; pPager 43665 ext/sqlite3/libsqlite/sqlite3.c pPager->setMaster = 0; pPager 43687 ext/sqlite3/libsqlite/sqlite3.c static void pagerUnlockAndRollback(Pager *pPager){ pPager 43688 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState!=PAGER_ERROR && pPager->eState!=PAGER_OPEN ){ pPager 43689 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 43690 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState>=PAGER_WRITER_LOCKED ){ pPager 43692 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerRollback(pPager); pPager 43694 ext/sqlite3/libsqlite/sqlite3.c }else if( !pPager->exclusiveMode ){ pPager 43695 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_READER ); pPager 43696 ext/sqlite3/libsqlite/sqlite3.c pager_end_transaction(pPager, 0, 0); pPager 43699 ext/sqlite3/libsqlite/sqlite3.c pager_unlock(pPager); pPager 43721 ext/sqlite3/libsqlite/sqlite3.c static u32 pager_cksum(Pager *pPager, const u8 *aData){ pPager 43722 ext/sqlite3/libsqlite/sqlite3.c u32 cksum = pPager->cksumInit; /* Checksum value to return */ pPager 43723 ext/sqlite3/libsqlite/sqlite3.c int i = pPager->pageSize-200; /* Loop counter */ pPager 43736 ext/sqlite3/libsqlite/sqlite3.c static void pagerReportSize(Pager *pPager){ pPager 43737 ext/sqlite3/libsqlite/sqlite3.c if( pPager->xCodecSizeChng ){ pPager 43738 ext/sqlite3/libsqlite/sqlite3.c pPager->xCodecSizeChng(pPager->pCodec, pPager->pageSize, pPager 43739 ext/sqlite3/libsqlite/sqlite3.c (int)pPager->nReserve); pPager 43784 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* The pager being played back */ pPager 43803 ext/sqlite3/libsqlite/sqlite3.c aData = pPager->pTmpSpace; pPager 43805 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager)==0 || (!isMainJrnl && isSavepnt) ); pPager 43813 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_CACHEMOD pPager 43814 ext/sqlite3/libsqlite/sqlite3.c || (pPager->eState==PAGER_OPEN && pPager->eLock==EXCLUSIVE_LOCK) pPager 43816 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_CACHEMOD || isMainJrnl ); pPager 43821 ext/sqlite3/libsqlite/sqlite3.c jfd = isMainJrnl ? pPager->jfd : pPager->sjfd; pPager 43824 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(jfd, (u8*)aData, pPager->pageSize, (*pOffset)+4); pPager 43826 ext/sqlite3/libsqlite/sqlite3.c *pOffset += pPager->pageSize + 4 + isMainJrnl*4; pPager 43833 ext/sqlite3/libsqlite/sqlite3.c if( pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){ pPager 43837 ext/sqlite3/libsqlite/sqlite3.c if( pgno>(Pgno)pPager->dbSize || sqlite3BitvecTest(pDone, pgno) ){ pPager 43843 ext/sqlite3/libsqlite/sqlite3.c if( !isSavepnt && pager_cksum(pPager, (u8*)aData)!=cksum ){ pPager 43857 ext/sqlite3/libsqlite/sqlite3.c if( pgno==1 && pPager->nReserve!=((u8*)aData)[20] ){ pPager 43858 ext/sqlite3/libsqlite/sqlite3.c pPager->nReserve = ((u8*)aData)[20]; pPager 43859 ext/sqlite3/libsqlite/sqlite3.c pagerReportSize(pPager); pPager 43897 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 43900 ext/sqlite3/libsqlite/sqlite3.c pPg = sqlite3PagerLookup(pPager, pgno); pPager 43903 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_OPEN || pPg==0 ); pPager 43905 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pgno, pager_datahash(pPager->pageSize, (u8*)aData), pPager 43909 ext/sqlite3/libsqlite/sqlite3.c isSynced = pPager->noSync || (*pOffset <= pPager->journalHdr); pPager 43913 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) pPager 43914 ext/sqlite3/libsqlite/sqlite3.c && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN) pPager 43917 ext/sqlite3/libsqlite/sqlite3.c i64 ofst = (pgno-1)*(i64)pPager->pageSize; pPager 43919 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 43920 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->fd, (u8 *)aData, pPager->pageSize, ofst); pPager 43921 ext/sqlite3/libsqlite/sqlite3.c if( pgno>pPager->dbFileSize ){ pPager 43922 ext/sqlite3/libsqlite/sqlite3.c pPager->dbFileSize = pgno; pPager 43924 ext/sqlite3/libsqlite/sqlite3.c if( pPager->pBackup ){ pPager 43925 ext/sqlite3/libsqlite/sqlite3.c CODEC1(pPager, aData, pgno, 3, rc=SQLITE_NOMEM); pPager 43926 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupUpdate(pPager->pBackup, pgno, (u8*)aData); pPager 43927 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPager, aData, pgno, 7, rc=SQLITE_NOMEM, aData); pPager 43947 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)==0 ); pPager 43948 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill |= SPILLFLAG_ROLLBACK; pPager 43949 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerAcquire(pPager, pgno, &pPg, 1); pPager 43950 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)!=0 ); pPager 43951 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill &= ~SPILLFLAG_ROLLBACK; pPager 43965 ext/sqlite3/libsqlite/sqlite3.c memcpy(pData, (u8*)aData, pPager->pageSize); pPager 43966 ext/sqlite3/libsqlite/sqlite3.c pPager->xReiniter(pPg); pPager 43967 ext/sqlite3/libsqlite/sqlite3.c if( isMainJrnl && (!isSavepnt || *pOffset<=pPager->journalHdr) ){ pPager 43987 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 43995 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->dbFileVers, &((u8*)pData)[24],sizeof(pPager->dbFileVers)); pPager 43999 ext/sqlite3/libsqlite/sqlite3.c CODEC1(pPager, pData, pPg->pgno, 3, rc=SQLITE_NOMEM); pPager 44048 ext/sqlite3/libsqlite/sqlite3.c static int pager_delmaster(Pager *pPager, const char *zMaster){ pPager 44049 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vfs *pVfs = pPager->pVfs; pPager 44158 ext/sqlite3/libsqlite/sqlite3.c static int pager_truncate(Pager *pPager, Pgno nPage){ pPager 44160 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_ERROR ); pPager 44161 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_READER ); pPager 44163 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) pPager 44164 ext/sqlite3/libsqlite/sqlite3.c && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN) pPager 44167 ext/sqlite3/libsqlite/sqlite3.c int szPage = pPager->pageSize; pPager 44168 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==EXCLUSIVE_LOCK ); pPager 44170 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileSize(pPager->fd, ¤tSize); pPager 44174 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->fd, newSize); pPager 44176 ext/sqlite3/libsqlite/sqlite3.c char *pTmp = pPager->pTmpSpace; pPager 44180 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->fd, pTmp, szPage, newSize-szPage); pPager 44183 ext/sqlite3/libsqlite/sqlite3.c pPager->dbFileSize = nPage; pPager 44228 ext/sqlite3/libsqlite/sqlite3.c static void setSectorSize(Pager *pPager){ pPager 44229 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || pPager->tempFile ); pPager 44231 ext/sqlite3/libsqlite/sqlite3.c if( pPager->tempFile pPager 44232 ext/sqlite3/libsqlite/sqlite3.c || (sqlite3OsDeviceCharacteristics(pPager->fd) & pPager 44238 ext/sqlite3/libsqlite/sqlite3.c pPager->sectorSize = 512; pPager 44240 ext/sqlite3/libsqlite/sqlite3.c pPager->sectorSize = sqlite3SectorSize(pPager->fd); pPager 44301 ext/sqlite3/libsqlite/sqlite3.c static int pager_playback(Pager *pPager, int isHot){ pPager 44302 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vfs *pVfs = pPager->pVfs; pPager 44316 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) ); pPager 44317 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileSize(pPager->jfd, &szJ); pPager 44333 ext/sqlite3/libsqlite/sqlite3.c zMaster = pPager->pTmpSpace; pPager 44334 ext/sqlite3/libsqlite/sqlite3.c rc = readMasterJournal(pPager->jfd, zMaster, pPager->pVfs->mxPathname+1); pPager 44342 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 44355 ext/sqlite3/libsqlite/sqlite3.c rc = readJournalHdr(pPager, isHot, szJ, &nRec, &mxPg); pPager 44369 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalOff==JOURNAL_HDR_SZ(pPager) ); pPager 44370 ext/sqlite3/libsqlite/sqlite3.c nRec = (int)((szJ - JOURNAL_HDR_SZ(pPager))/JOURNAL_PG_SZ(pPager)); pPager 44388 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr+JOURNAL_HDR_SZ(pPager)==pPager->journalOff ){ pPager 44389 ext/sqlite3/libsqlite/sqlite3.c nRec = (int)((szJ - pPager->journalOff) / JOURNAL_PG_SZ(pPager)); pPager 44395 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalOff==JOURNAL_HDR_SZ(pPager) ){ pPager 44396 ext/sqlite3/libsqlite/sqlite3.c rc = pager_truncate(pPager, mxPg); pPager 44400 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = mxPg; pPager 44408 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 44411 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback_one_page(pPager,&pPager->journalOff,0,1,0); pPager 44416 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = szJ; pPager 44447 ext/sqlite3/libsqlite/sqlite3.c if( pPager->fd->pMethods ){ pPager 44448 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsFileControlHint(pPager->fd,SQLITE_FCNTL_DB_UNCHANGED,0); pPager 44461 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = pPager->tempFile; pPager 44464 ext/sqlite3/libsqlite/sqlite3.c zMaster = pPager->pTmpSpace; pPager 44465 ext/sqlite3/libsqlite/sqlite3.c rc = readMasterJournal(pPager->jfd, zMaster, pPager->pVfs->mxPathname+1); pPager 44469 ext/sqlite3/libsqlite/sqlite3.c && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN) pPager 44471 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSync(pPager, 0); pPager 44474 ext/sqlite3/libsqlite/sqlite3.c rc = pager_end_transaction(pPager, zMaster[0]!='\0', 0); pPager 44481 ext/sqlite3/libsqlite/sqlite3.c rc = pager_delmaster(pPager, zMaster); pPager 44486 ext/sqlite3/libsqlite/sqlite3.c nPlayback, pPager->zJournal); pPager 44493 ext/sqlite3/libsqlite/sqlite3.c setSectorSize(pPager); pPager 44510 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; /* Pager object associated with page pPg */ pPager 44513 ext/sqlite3/libsqlite/sqlite3.c int pgsz = pPager->pageSize; /* Number of bytes to read */ pPager 44515 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_READER && !MEMDB ); pPager 44516 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) ); pPager 44521 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalReadFrame(pPager->pWal, iFrame, pgsz, pPg->pData); pPager 44525 ext/sqlite3/libsqlite/sqlite3.c i64 iOffset = (pgno-1)*(i64)pPager->pageSize; pPager 44526 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->fd, pPg->pData, pgsz, iOffset); pPager 44546 ext/sqlite3/libsqlite/sqlite3.c memset(pPager->dbFileVers, 0xff, sizeof(pPager->dbFileVers)); pPager 44549 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->dbFileVers, dbFileVers, sizeof(pPager->dbFileVers)); pPager 44552 ext/sqlite3/libsqlite/sqlite3.c CODEC1(pPager, pPg->pData, pgno, 3, rc = SQLITE_NOMEM); pPager 44555 ext/sqlite3/libsqlite/sqlite3.c PAGER_INCR(pPager->nRead); pPager 44556 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("PGIN %p %d\n", pPager, pgno)); pPager 44558 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pgno, pager_pagehash(pPg))); pPager 44575 ext/sqlite3/libsqlite/sqlite3.c change_counter = sqlite3Get4byte((u8*)pPg->pPager->dbFileVers)+1; pPager 44600 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = (Pager *)pCtx; pPager 44603 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager) ); pPager 44604 ext/sqlite3/libsqlite/sqlite3.c pPg = sqlite3PagerLookup(pPager, iPg); pPager 44610 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalFindFrame(pPager->pWal, pPg->pgno, &iFrame); pPager 44615 ext/sqlite3/libsqlite/sqlite3.c pPager->xReiniter(pPg); pPager 44629 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupRestart(pPager->pBackup); pPager 44637 ext/sqlite3/libsqlite/sqlite3.c static int pagerRollbackWal(Pager *pPager){ pPager 44648 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = pPager->dbOrigSize; pPager 44649 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalUndo(pPager->pWal, pagerUndoCallback, (void *)pPager); pPager 44650 ext/sqlite3/libsqlite/sqlite3.c pList = sqlite3PcacheDirtyList(pPager->pPCache); pPager 44653 ext/sqlite3/libsqlite/sqlite3.c rc = pagerUndoCallback((void *)pPager, pList->pgno); pPager 44670 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 44679 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pWal ); pPager 44706 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[PAGER_STAT_WRITE] += nList; pPager 44709 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalFrames(pPager->pWal, pPager 44710 ext/sqlite3/libsqlite/sqlite3.c pPager->pageSize, pList, nTruncate, isCommit, pPager->walSyncFlags pPager 44712 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && pPager->pBackup ){ pPager 44714 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupUpdate(pPager->pBackup, p->pgno, (u8 *)p->pData); pPager 44719 ext/sqlite3/libsqlite/sqlite3.c pList = sqlite3PcacheDirtyList(pPager->pPCache); pPager 44736 ext/sqlite3/libsqlite/sqlite3.c static int pagerBeginReadTransaction(Pager *pPager){ pPager 44740 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager) ); pPager 44741 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER ); pPager 44748 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalEndReadTransaction(pPager->pWal); pPager 44750 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalBeginReadTransaction(pPager->pWal, &changed); pPager 44752 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 44753 ext/sqlite3/libsqlite/sqlite3.c if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0); pPager 44769 ext/sqlite3/libsqlite/sqlite3.c static int pagerPagecount(Pager *pPager, Pgno *pnPage){ pPager 44778 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN ); pPager 44779 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock>=SHARED_LOCK ); pPager 44780 ext/sqlite3/libsqlite/sqlite3.c nPage = sqlite3WalDbsize(pPager->pWal); pPager 44790 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || pPager->tempFile ); pPager 44791 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) ){ pPager 44792 ext/sqlite3/libsqlite/sqlite3.c int rc = sqlite3OsFileSize(pPager->fd, &n); pPager 44797 ext/sqlite3/libsqlite/sqlite3.c nPage = (Pgno)((n+pPager->pageSize-1) / pPager->pageSize); pPager 44804 ext/sqlite3/libsqlite/sqlite3.c if( nPage>pPager->mxPgno ){ pPager 44805 ext/sqlite3/libsqlite/sqlite3.c pPager->mxPgno = (Pgno)nPage; pPager 44831 ext/sqlite3/libsqlite/sqlite3.c static int pagerOpenWalIfPresent(Pager *pPager){ pPager 44833 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN ); pPager 44834 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock>=SHARED_LOCK ); pPager 44836 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->tempFile ){ pPager 44840 ext/sqlite3/libsqlite/sqlite3.c rc = pagerPagecount(pPager, &nPage); pPager 44843 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsDelete(pPager->pVfs, pPager->zWal, 0); pPager 44848 ext/sqlite3/libsqlite/sqlite3.c pPager->pVfs, pPager->zWal, SQLITE_ACCESS_EXISTS, &isWal pPager 44853 ext/sqlite3/libsqlite/sqlite3.c testcase( sqlite3PcachePagecount(pPager->pPCache)==0 ); pPager 44854 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerOpenWal(pPager, 0); pPager 44855 ext/sqlite3/libsqlite/sqlite3.c }else if( pPager->journalMode==PAGER_JOURNALMODE_WAL ){ pPager 44856 ext/sqlite3/libsqlite/sqlite3.c pPager->journalMode = PAGER_JOURNALMODE_DELETE; pPager 44900 ext/sqlite3/libsqlite/sqlite3.c static int pagerPlaybackSavepoint(Pager *pPager, PagerSavepoint *pSavepoint){ pPager 44906 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_ERROR ); pPager 44907 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_LOCKED ); pPager 44920 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = pSavepoint ? pSavepoint->nOrig : pPager->dbOrigSize; pPager 44921 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = pPager->tempFile; pPager 44923 ext/sqlite3/libsqlite/sqlite3.c if( !pSavepoint && pagerUseWal(pPager) ){ pPager 44924 ext/sqlite3/libsqlite/sqlite3.c return pagerRollbackWal(pPager); pPager 44932 ext/sqlite3/libsqlite/sqlite3.c szJ = pPager->journalOff; pPager 44933 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager)==0 || szJ==0 ); pPager 44942 ext/sqlite3/libsqlite/sqlite3.c if( pSavepoint && !pagerUseWal(pPager) ){ pPager 44944 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = pSavepoint->iOffset; pPager 44945 ext/sqlite3/libsqlite/sqlite3.c while( rc==SQLITE_OK && pPager->journalOff<iHdrOff ){ pPager 44946 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback_one_page(pPager, &pPager->journalOff, pDone, 1, 1); pPager 44950 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 44958 ext/sqlite3/libsqlite/sqlite3.c while( rc==SQLITE_OK && pPager->journalOff<szJ ){ pPager 44962 ext/sqlite3/libsqlite/sqlite3.c rc = readJournalHdr(pPager, 0, szJ, &nJRec, &dummy); pPager 44971 ext/sqlite3/libsqlite/sqlite3.c && pPager->journalHdr+JOURNAL_HDR_SZ(pPager)==pPager->journalOff pPager 44973 ext/sqlite3/libsqlite/sqlite3.c nJRec = (u32)((szJ - pPager->journalOff)/JOURNAL_PG_SZ(pPager)); pPager 44975 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; rc==SQLITE_OK && ii<nJRec && pPager->journalOff<szJ; ii++){ pPager 44976 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback_one_page(pPager, &pPager->journalOff, pDone, 1, 1); pPager 44980 ext/sqlite3/libsqlite/sqlite3.c assert( rc!=SQLITE_OK || pPager->journalOff>=szJ ); pPager 44988 ext/sqlite3/libsqlite/sqlite3.c i64 offset = (i64)pSavepoint->iSubRec*(4+pPager->pageSize); pPager 44990 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 44991 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalSavepointUndo(pPager->pWal, pSavepoint->aWalData); pPager 44993 ext/sqlite3/libsqlite/sqlite3.c for(ii=pSavepoint->iSubRec; rc==SQLITE_OK && ii<pPager->nSubRec; ii++){ pPager 44994 ext/sqlite3/libsqlite/sqlite3.c assert( offset==(i64)ii*(4+pPager->pageSize) ); pPager 44995 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback_one_page(pPager, &offset, pDone, 0, 1); pPager 45002 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = szJ; pPager 45011 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerSetCachesize(Pager *pPager, int mxPage){ pPager 45012 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheSetCachesize(pPager->pPCache, mxPage); pPager 45018 ext/sqlite3/libsqlite/sqlite3.c static void pagerFixMaplimit(Pager *pPager){ pPager 45020 ext/sqlite3/libsqlite/sqlite3.c sqlite3_file *fd = pPager->fd; pPager 45023 ext/sqlite3/libsqlite/sqlite3.c sz = pPager->szMmap; pPager 45024 ext/sqlite3/libsqlite/sqlite3.c pPager->bUseFetch = (sz>0); pPager 45025 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_MMAP_SIZE, &sz); pPager 45033 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerSetMmapLimit(Pager *pPager, sqlite3_int64 szMmap){ pPager 45034 ext/sqlite3/libsqlite/sqlite3.c pPager->szMmap = szMmap; pPager 45035 ext/sqlite3/libsqlite/sqlite3.c pagerFixMaplimit(pPager); pPager 45041 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerShrink(Pager *pPager){ pPager 45042 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheShrink(pPager->pPCache); pPager 45093 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* The pager to set safety level for */ pPager 45098 ext/sqlite3/libsqlite/sqlite3.c pPager->noSync = (level==1 || pPager->tempFile) ?1:0; pPager 45099 ext/sqlite3/libsqlite/sqlite3.c pPager->fullSync = (level==3 && !pPager->tempFile) ?1:0; pPager 45100 ext/sqlite3/libsqlite/sqlite3.c if( pPager->noSync ){ pPager 45101 ext/sqlite3/libsqlite/sqlite3.c pPager->syncFlags = 0; pPager 45102 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags = 0; pPager 45104 ext/sqlite3/libsqlite/sqlite3.c pPager->syncFlags = SQLITE_SYNC_FULL; pPager 45105 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags = SQLITE_SYNC_FULL; pPager 45107 ext/sqlite3/libsqlite/sqlite3.c pPager->syncFlags = SQLITE_SYNC_NORMAL; pPager 45108 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags = SQLITE_SYNC_FULL; pPager 45110 ext/sqlite3/libsqlite/sqlite3.c pPager->syncFlags = SQLITE_SYNC_NORMAL; pPager 45111 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags = SQLITE_SYNC_NORMAL; pPager 45113 ext/sqlite3/libsqlite/sqlite3.c pPager->walSyncFlags = pPager->syncFlags; pPager 45114 ext/sqlite3/libsqlite/sqlite3.c if( pPager->fullSync ){ pPager 45115 ext/sqlite3/libsqlite/sqlite3.c pPager->walSyncFlags |= WAL_SYNC_TRANSACTIONS; pPager 45118 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill &= ~SPILLFLAG_OFF; pPager 45120 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill |= SPILLFLAG_OFF; pPager 45150 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* The pager object */ pPager 45162 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsOpen(pPager->pVfs, 0, pFile, vfsFlags, 0); pPager 45189 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 45193 ext/sqlite3/libsqlite/sqlite3.c pPager->xBusyHandler = xBusyHandler; pPager 45194 ext/sqlite3/libsqlite/sqlite3.c pPager->pBusyHandlerArg = pBusyHandlerArg; pPager 45196 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) ){ pPager 45197 ext/sqlite3/libsqlite/sqlite3.c void **ap = (void **)&pPager->xBusyHandler; pPager 45200 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_BUSYHANDLER, (void *)ap); pPager 45234 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSetPagesize(Pager *pPager, u32 *pPageSize, int nReserve){ pPager 45249 ext/sqlite3/libsqlite/sqlite3.c if( (pPager->memDb==0 || pPager->dbSize==0) pPager 45250 ext/sqlite3/libsqlite/sqlite3.c && sqlite3PcacheRefCount(pPager->pPCache)==0 pPager 45251 ext/sqlite3/libsqlite/sqlite3.c && pageSize && pageSize!=(u32)pPager->pageSize pPager 45256 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState>PAGER_OPEN && isOpen(pPager->fd) ){ pPager 45257 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileSize(pPager->fd, &nByte); pPager 45265 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 45266 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PcacheSetPageSize(pPager->pPCache, pageSize); pPager 45269 ext/sqlite3/libsqlite/sqlite3.c sqlite3PageFree(pPager->pTmpSpace); pPager 45270 ext/sqlite3/libsqlite/sqlite3.c pPager->pTmpSpace = pNew; pPager 45271 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = (Pgno)((nByte+pageSize-1)/pageSize); pPager 45272 ext/sqlite3/libsqlite/sqlite3.c pPager->pageSize = pageSize; pPager 45278 ext/sqlite3/libsqlite/sqlite3.c *pPageSize = pPager->pageSize; pPager 45280 ext/sqlite3/libsqlite/sqlite3.c if( nReserve<0 ) nReserve = pPager->nReserve; pPager 45282 ext/sqlite3/libsqlite/sqlite3.c pPager->nReserve = (i16)nReserve; pPager 45283 ext/sqlite3/libsqlite/sqlite3.c pagerReportSize(pPager); pPager 45284 ext/sqlite3/libsqlite/sqlite3.c pagerFixMaplimit(pPager); pPager 45297 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void *sqlite3PagerTempSpace(Pager *pPager){ pPager 45298 ext/sqlite3/libsqlite/sqlite3.c return pPager->pTmpSpace; pPager 45308 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerMaxPageCount(Pager *pPager, int mxPage){ pPager 45310 ext/sqlite3/libsqlite/sqlite3.c pPager->mxPgno = mxPage; pPager 45312 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_OPEN ); /* Called only by OP_MaxPgcnt */ pPager 45313 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->mxPgno>=pPager->dbSize ); /* OP_MaxPgcnt enforces this */ pPager 45314 ext/sqlite3/libsqlite/sqlite3.c return pPager->mxPgno; pPager 45355 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerReadFileheader(Pager *pPager, int N, unsigned char *pDest){ pPager 45358 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || pPager->tempFile ); pPager 45364 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 45366 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) ){ pPager 45367 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("DBHDR %p 0 %d\n", pPager, N)) pPager 45368 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->fd, pDest, N, 0); pPager 45383 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerPagecount(Pager *pPager, int *pnPage){ pPager 45384 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_READER ); pPager 45385 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_WRITER_FINISHED ); pPager 45386 ext/sqlite3/libsqlite/sqlite3.c *pnPage = (int)pPager->dbSize; pPager 45404 ext/sqlite3/libsqlite/sqlite3.c static int pager_wait_on_lock(Pager *pPager, int locktype){ pPager 45412 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->eLock>=locktype) pPager 45413 ext/sqlite3/libsqlite/sqlite3.c || (pPager->eLock==NO_LOCK && locktype==SHARED_LOCK) pPager 45414 ext/sqlite3/libsqlite/sqlite3.c || (pPager->eLock==RESERVED_LOCK && locktype==EXCLUSIVE_LOCK) pPager 45418 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, locktype); pPager 45419 ext/sqlite3/libsqlite/sqlite3.c }while( rc==SQLITE_BUSY && pPager->xBusyHandler(pPager->pBusyHandlerArg) ); pPager 45448 ext/sqlite3/libsqlite/sqlite3.c assert( !subjRequiresPage(pPg) || pPg->pgno<=pPg->pPager->dbSize ); pPager 45450 ext/sqlite3/libsqlite/sqlite3.c static void assertTruncateConstraint(Pager *pPager){ pPager 45451 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheIterateDirty(pPager->pPCache, assertTruncateConstraintCb); pPager 45454 ext/sqlite3/libsqlite/sqlite3.c # define assertTruncateConstraint(pPager) pPager 45468 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerTruncateImage(Pager *pPager, Pgno nPage){ pPager 45469 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbSize>=nPage ); pPager 45470 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_CACHEMOD ); pPager 45471 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = nPage; pPager 45499 ext/sqlite3/libsqlite/sqlite3.c static int pagerSyncHotJournal(Pager *pPager){ pPager 45501 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->noSync ){ pPager 45502 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->jfd, SQLITE_SYNC_NORMAL); pPager 45505 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileSize(pPager->jfd, &pPager->journalHdr); pPager 45521 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 45528 ext/sqlite3/libsqlite/sqlite3.c if( pPager->pMmapFreelist ){ pPager 45529 ext/sqlite3/libsqlite/sqlite3.c *ppPage = p = pPager->pMmapFreelist; pPager 45530 ext/sqlite3/libsqlite/sqlite3.c pPager->pMmapFreelist = p->pDirty; pPager 45532 ext/sqlite3/libsqlite/sqlite3.c memset(p->pExtra, 0, pPager->nExtra); pPager 45534 ext/sqlite3/libsqlite/sqlite3.c *ppPage = p = (PgHdr *)sqlite3MallocZero(sizeof(PgHdr) + pPager->nExtra); pPager 45536 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsUnfetch(pPager->fd, (i64)(pgno-1) * pPager->pageSize, pData); pPager 45542 ext/sqlite3/libsqlite/sqlite3.c p->pPager = pPager; pPager 45548 ext/sqlite3/libsqlite/sqlite3.c assert( p->pPager==pPager ); pPager 45553 ext/sqlite3/libsqlite/sqlite3.c pPager->nMmapOut++; pPager 45563 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 45564 ext/sqlite3/libsqlite/sqlite3.c pPager->nMmapOut--; pPager 45565 ext/sqlite3/libsqlite/sqlite3.c pPg->pDirty = pPager->pMmapFreelist; pPager 45566 ext/sqlite3/libsqlite/sqlite3.c pPager->pMmapFreelist = pPg; pPager 45568 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->fd->pMethods->iVersion>=3 ); pPager 45569 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsUnfetch(pPager->fd, (i64)(pPg->pgno-1)*pPager->pageSize, pPg->pData); pPager 45575 ext/sqlite3/libsqlite/sqlite3.c static void pagerFreeMapHdrs(Pager *pPager){ pPager 45578 ext/sqlite3/libsqlite/sqlite3.c for(p=pPager->pMmapFreelist; p; p=pNext){ pPager 45599 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager){ pPager 45600 ext/sqlite3/libsqlite/sqlite3.c u8 *pTmp = (u8 *)pPager->pTmpSpace; pPager 45602 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 45605 ext/sqlite3/libsqlite/sqlite3.c pagerFreeMapHdrs(pPager); pPager 45607 ext/sqlite3/libsqlite/sqlite3.c pPager->exclusiveMode = 0; pPager 45609 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalClose(pPager->pWal, pPager->ckptSyncFlags, pPager->pageSize, pTmp); pPager 45610 ext/sqlite3/libsqlite/sqlite3.c pPager->pWal = 0; pPager 45612 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 45614 ext/sqlite3/libsqlite/sqlite3.c pager_unlock(pPager); pPager 45627 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->jfd) ){ pPager 45628 ext/sqlite3/libsqlite/sqlite3.c pager_error(pPager, pagerSyncHotJournal(pPager)); pPager 45630 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockAndRollback(pPager); pPager 45634 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("CLOSE %d\n", PAGERID(pPager))); pPager 45635 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("CLOSE %p\n", pPager)) pPager 45636 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 45637 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->fd); pPager 45639 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheClose(pPager->pPCache); pPager 45642 ext/sqlite3/libsqlite/sqlite3.c if( pPager->xCodecFree ) pPager->xCodecFree(pPager->pCodec); pPager 45645 ext/sqlite3/libsqlite/sqlite3.c assert( !pPager->aSavepoint && !pPager->pInJournal ); pPager 45646 ext/sqlite3/libsqlite/sqlite3.c assert( !isOpen(pPager->jfd) && !isOpen(pPager->sjfd) ); pPager 45648 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pPager); pPager 45703 ext/sqlite3/libsqlite/sqlite3.c static int syncJournal(Pager *pPager, int newHdr){ pPager 45706 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_CACHEMOD pPager 45707 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 45709 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 45710 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 45712 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerExclusiveLock(pPager); pPager 45715 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->noSync ){ pPager 45716 ext/sqlite3/libsqlite/sqlite3.c assert( !pPager->tempFile ); pPager 45717 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){ pPager 45718 ext/sqlite3/libsqlite/sqlite3.c const int iDc = sqlite3OsDeviceCharacteristics(pPager->fd); pPager 45719 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) ); pPager 45749 ext/sqlite3/libsqlite/sqlite3.c put32bits(&zHeader[sizeof(aJournalMagic)], pPager->nRec); pPager 45751 ext/sqlite3/libsqlite/sqlite3.c iNextHdrOffset = journalHdrOffset(pPager); pPager 45752 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->jfd, aMagic, 8, iNextHdrOffset); pPager 45755 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->jfd, &zerobyte, 1, iNextHdrOffset); pPager 45772 ext/sqlite3/libsqlite/sqlite3.c if( pPager->fullSync && 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){ pPager 45773 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("SYNC journal of %d\n", PAGERID(pPager))); pPager 45774 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JSYNC %p\n", pPager)) pPager 45775 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->jfd, pPager->syncFlags); pPager 45778 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JHDR %p %lld\n", pPager, pPager->journalHdr)); pPager 45780 ext/sqlite3/libsqlite/sqlite3.c pPager->jfd, zHeader, sizeof(zHeader), pPager->journalHdr pPager 45785 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("SYNC journal of %d\n", PAGERID(pPager))); pPager 45786 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JSYNC %p\n", pPager)) pPager 45787 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->jfd, pPager->syncFlags| pPager 45788 ext/sqlite3/libsqlite/sqlite3.c (pPager->syncFlags==SQLITE_SYNC_FULL?SQLITE_SYNC_DATAONLY:0) pPager 45793 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr = pPager->journalOff; pPager 45795 ext/sqlite3/libsqlite/sqlite3.c pPager->nRec = 0; pPager 45796 ext/sqlite3/libsqlite/sqlite3.c rc = writeJournalHdr(pPager); pPager 45800 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr = pPager->journalOff; pPager 45808 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheClearSyncFlags(pPager->pPCache); pPager 45809 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_WRITER_DBMOD; pPager 45810 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 45846 ext/sqlite3/libsqlite/sqlite3.c static int pager_write_pagelist(Pager *pPager, PgHdr *pList){ pPager 45850 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 45851 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_DBMOD ); pPager 45852 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==EXCLUSIVE_LOCK ); pPager 45858 ext/sqlite3/libsqlite/sqlite3.c if( !isOpen(pPager->fd) ){ pPager 45859 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->tempFile && rc==SQLITE_OK ); pPager 45860 ext/sqlite3/libsqlite/sqlite3.c rc = pagerOpentemp(pPager, pPager->fd, pPager->vfsFlags); pPager 45866 ext/sqlite3/libsqlite/sqlite3.c assert( rc!=SQLITE_OK || isOpen(pPager->fd) ); pPager 45868 ext/sqlite3/libsqlite/sqlite3.c && pPager->dbHintSize<pPager->dbSize pPager 45869 ext/sqlite3/libsqlite/sqlite3.c && (pList->pDirty || pList->pgno>pPager->dbHintSize) pPager 45871 ext/sqlite3/libsqlite/sqlite3.c sqlite3_int64 szFile = pPager->pageSize * (sqlite3_int64)pPager->dbSize; pPager 45872 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_SIZE_HINT, &szFile); pPager 45873 ext/sqlite3/libsqlite/sqlite3.c pPager->dbHintSize = pPager->dbSize; pPager 45887 ext/sqlite3/libsqlite/sqlite3.c if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){ pPager 45888 ext/sqlite3/libsqlite/sqlite3.c i64 offset = (pgno-1)*(i64)pPager->pageSize; /* Offset to write */ pPager 45895 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPager, pList->pData, pgno, 6, return SQLITE_NOMEM, pData); pPager 45898 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->fd, pData, pPager->pageSize, offset); pPager 45905 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->dbFileVers, &pData[24], sizeof(pPager->dbFileVers)); pPager 45907 ext/sqlite3/libsqlite/sqlite3.c if( pgno>pPager->dbFileSize ){ pPager 45908 ext/sqlite3/libsqlite/sqlite3.c pPager->dbFileSize = pgno; pPager 45910 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[PAGER_STAT_WRITE]++; pPager 45913 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupUpdate(pPager->pBackup, pgno, (u8*)pList->pData); pPager 45916 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pgno, pager_pagehash(pList))); pPager 45917 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("PGOUT %p %d\n", pPager, pgno)); pPager 45920 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("NOSTORE %d page %d\n", PAGERID(pPager), pgno)); pPager 45937 ext/sqlite3/libsqlite/sqlite3.c static int openSubJournal(Pager *pPager){ pPager 45939 ext/sqlite3/libsqlite/sqlite3.c if( !isOpen(pPager->sjfd) ){ pPager 45940 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY || pPager->subjInMemory ){ pPager 45941 ext/sqlite3/libsqlite/sqlite3.c sqlite3MemJournalOpen(pPager->sjfd); pPager 45943 ext/sqlite3/libsqlite/sqlite3.c rc = pagerOpentemp(pPager, pPager->sjfd, SQLITE_OPEN_SUBJOURNAL); pPager 45964 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 45965 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalMode!=PAGER_JOURNALMODE_OFF ){ pPager 45968 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->useJournal ); pPager 45969 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) || pagerUseWal(pPager) ); pPager 45970 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->sjfd) || pPager->nSubRec==0 ); pPager 45971 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager) pPager 45972 ext/sqlite3/libsqlite/sqlite3.c || pageInJournal(pPager, pPg) pPager 45973 ext/sqlite3/libsqlite/sqlite3.c || pPg->pgno>pPager->dbOrigSize pPager 45975 ext/sqlite3/libsqlite/sqlite3.c rc = openSubJournal(pPager); pPager 45981 ext/sqlite3/libsqlite/sqlite3.c i64 offset = (i64)pPager->nSubRec*(4+pPager->pageSize); pPager 45984 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPager, pData, pPg->pgno, 7, return SQLITE_NOMEM, pData2); pPager 45985 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("STMT-JOURNAL %d page %d\n", PAGERID(pPager), pPg->pgno)); pPager 45986 ext/sqlite3/libsqlite/sqlite3.c rc = write32bits(pPager->sjfd, offset, pPg->pgno); pPager 45988 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->sjfd, pData2, pPager->pageSize, offset+4); pPager 45993 ext/sqlite3/libsqlite/sqlite3.c pPager->nSubRec++; pPager 45994 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->nSavepoint>0 ); pPager 45995 ext/sqlite3/libsqlite/sqlite3.c rc = addToSavepointBitvecs(pPager, pPg->pgno); pPager 46020 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = (Pager *)p; pPager 46023 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->pPager==pPager ); pPager 46042 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(pPager->errCode) ) return SQLITE_OK; pPager 46043 ext/sqlite3/libsqlite/sqlite3.c testcase( pPager->doNotSpill & SPILLFLAG_ROLLBACK ); pPager 46044 ext/sqlite3/libsqlite/sqlite3.c testcase( pPager->doNotSpill & SPILLFLAG_OFF ); pPager 46045 ext/sqlite3/libsqlite/sqlite3.c testcase( pPager->doNotSpill & SPILLFLAG_NOSYNC ); pPager 46046 ext/sqlite3/libsqlite/sqlite3.c if( pPager->doNotSpill pPager 46047 ext/sqlite3/libsqlite/sqlite3.c && ((pPager->doNotSpill & (SPILLFLAG_ROLLBACK|SPILLFLAG_OFF))!=0 pPager 46054 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 46060 ext/sqlite3/libsqlite/sqlite3.c rc = pagerWalFrames(pPager, pPg, 0, 0); pPager 46066 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_CACHEMOD pPager 46068 ext/sqlite3/libsqlite/sqlite3.c rc = syncJournal(pPager, 1); pPager 46099 ext/sqlite3/libsqlite/sqlite3.c rc==SQLITE_OK && pPg->pgno>pPager->dbSize && subjRequiresPage(pPg) pPager 46107 ext/sqlite3/libsqlite/sqlite3.c rc = pager_write_pagelist(pPager, pPg); pPager 46113 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("STRESS %d page %d\n", PAGERID(pPager), pPg->pgno)); pPager 46117 ext/sqlite3/libsqlite/sqlite3.c return pager_error(pPager, rc); pPager 46161 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = 0; /* Pager object to allocate and return */ pPager 46253 ext/sqlite3/libsqlite/sqlite3.c ROUND8(sizeof(*pPager)) + /* Pager structure */ pPager 46268 ext/sqlite3/libsqlite/sqlite3.c pPager = (Pager*)(pPtr); pPager 46269 ext/sqlite3/libsqlite/sqlite3.c pPager->pPCache = (PCache*)(pPtr += ROUND8(sizeof(*pPager))); pPager 46270 ext/sqlite3/libsqlite/sqlite3.c pPager->fd = (sqlite3_file*)(pPtr += ROUND8(pcacheSize)); pPager 46271 ext/sqlite3/libsqlite/sqlite3.c pPager->sjfd = (sqlite3_file*)(pPtr += ROUND8(pVfs->szOsFile)); pPager 46272 ext/sqlite3/libsqlite/sqlite3.c pPager->jfd = (sqlite3_file*)(pPtr += journalFileSize); pPager 46273 ext/sqlite3/libsqlite/sqlite3.c pPager->zFilename = (char*)(pPtr += journalFileSize); pPager 46274 ext/sqlite3/libsqlite/sqlite3.c assert( EIGHT_BYTE_ALIGNMENT(pPager->jfd) ); pPager 46279 ext/sqlite3/libsqlite/sqlite3.c pPager->zJournal = (char*)(pPtr += nPathname + 1 + nUri); pPager 46280 ext/sqlite3/libsqlite/sqlite3.c memcpy(pPager->zFilename, zPathname, nPathname); pPager 46281 ext/sqlite3/libsqlite/sqlite3.c if( nUri ) memcpy(&pPager->zFilename[nPathname+1], zUri, nUri); pPager 46282 ext/sqlite3/libsqlite/sqlite3.c memcpy(pPager->zJournal, zPathname, nPathname); pPager 46283 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->zJournal[nPathname], "-journal\000", 8+2); pPager 46284 ext/sqlite3/libsqlite/sqlite3.c sqlite3FileSuffix3(pPager->zFilename, pPager->zJournal); pPager 46286 ext/sqlite3/libsqlite/sqlite3.c pPager->zWal = &pPager->zJournal[nPathname+8+1]; pPager 46287 ext/sqlite3/libsqlite/sqlite3.c memcpy(pPager->zWal, zPathname, nPathname); pPager 46288 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->zWal[nPathname], "-wal\000", 4+1); pPager 46289 ext/sqlite3/libsqlite/sqlite3.c sqlite3FileSuffix3(pPager->zFilename, pPager->zWal); pPager 46293 ext/sqlite3/libsqlite/sqlite3.c pPager->pVfs = pVfs; pPager 46294 ext/sqlite3/libsqlite/sqlite3.c pPager->vfsFlags = vfsFlags; pPager 46300 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsOpen(pVfs, pPager->zFilename, pPager->fd, vfsFlags, &fout); pPager 46313 ext/sqlite3/libsqlite/sqlite3.c int iDc = sqlite3OsDeviceCharacteristics(pPager->fd); pPager 46315 ext/sqlite3/libsqlite/sqlite3.c setSectorSize(pPager); pPager 46317 ext/sqlite3/libsqlite/sqlite3.c if( szPageDflt<pPager->sectorSize ){ pPager 46318 ext/sqlite3/libsqlite/sqlite3.c if( pPager->sectorSize>SQLITE_MAX_DEFAULT_PAGE_SIZE ){ pPager 46321 ext/sqlite3/libsqlite/sqlite3.c szPageDflt = (u32)pPager->sectorSize; pPager 46338 ext/sqlite3/libsqlite/sqlite3.c pPager->noLock = sqlite3_uri_boolean(zFilename, "nolock", 0); pPager 46358 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_READER; /* Pretend we already have a lock */ pPager 46359 ext/sqlite3/libsqlite/sqlite3.c pPager->eLock = EXCLUSIVE_LOCK; /* Pretend we are in EXCLUSIVE locking mode */ pPager 46360 ext/sqlite3/libsqlite/sqlite3.c pPager->noLock = 1; /* Do no locking */ pPager 46368 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->memDb==0 ); pPager 46369 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSetPagesize(pPager, &szPageDflt, -1); pPager 46378 ext/sqlite3/libsqlite/sqlite3.c !memDb?pagerStress:0, (void *)pPager, pPager->pPCache); pPager 46384 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->fd); pPager 46385 ext/sqlite3/libsqlite/sqlite3.c sqlite3PageFree(pPager->pTmpSpace); pPager 46386 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pPager); pPager 46390 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("OPEN %d %s\n", FILEHANDLEID(pPager->fd), pPager->zFilename)); pPager 46391 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("OPEN %p %s\n", pPager, pPager->zFilename)) pPager 46393 ext/sqlite3/libsqlite/sqlite3.c pPager->useJournal = (u8)useJournal; pPager 46400 ext/sqlite3/libsqlite/sqlite3.c pPager->mxPgno = SQLITE_MAX_PAGE_COUNT; pPager 46403 ext/sqlite3/libsqlite/sqlite3.c pPager->tempFile = (u8)tempFile; pPager 46407 ext/sqlite3/libsqlite/sqlite3.c pPager->exclusiveMode = (u8)tempFile; pPager 46408 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = pPager->tempFile; pPager 46409 ext/sqlite3/libsqlite/sqlite3.c pPager->memDb = (u8)memDb; pPager 46410 ext/sqlite3/libsqlite/sqlite3.c pPager->readOnly = (u8)readOnly; pPager 46411 ext/sqlite3/libsqlite/sqlite3.c assert( useJournal || pPager->tempFile ); pPager 46412 ext/sqlite3/libsqlite/sqlite3.c pPager->noSync = pPager->tempFile; pPager 46413 ext/sqlite3/libsqlite/sqlite3.c if( pPager->noSync ){ pPager 46414 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->fullSync==0 ); pPager 46415 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->syncFlags==0 ); pPager 46416 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->walSyncFlags==0 ); pPager 46417 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->ckptSyncFlags==0 ); pPager 46419 ext/sqlite3/libsqlite/sqlite3.c pPager->fullSync = 1; pPager 46420 ext/sqlite3/libsqlite/sqlite3.c pPager->syncFlags = SQLITE_SYNC_NORMAL; pPager 46421 ext/sqlite3/libsqlite/sqlite3.c pPager->walSyncFlags = SQLITE_SYNC_NORMAL | WAL_SYNC_TRANSACTIONS; pPager 46422 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags = SQLITE_SYNC_NORMAL; pPager 46427 ext/sqlite3/libsqlite/sqlite3.c pPager->nExtra = (u16)nExtra; pPager 46428 ext/sqlite3/libsqlite/sqlite3.c pPager->journalSizeLimit = SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT; pPager 46429 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || tempFile ); pPager 46430 ext/sqlite3/libsqlite/sqlite3.c setSectorSize(pPager); pPager 46432 ext/sqlite3/libsqlite/sqlite3.c pPager->journalMode = PAGER_JOURNALMODE_OFF; pPager 46434 ext/sqlite3/libsqlite/sqlite3.c pPager->journalMode = PAGER_JOURNALMODE_MEMORY; pPager 46438 ext/sqlite3/libsqlite/sqlite3.c pPager->xReiniter = xReinit; pPager 46442 ext/sqlite3/libsqlite/sqlite3.c *ppPager = pPager; pPager 46452 ext/sqlite3/libsqlite/sqlite3.c static int databaseIsUnmoved(Pager *pPager){ pPager 46456 ext/sqlite3/libsqlite/sqlite3.c if( pPager->tempFile ) return SQLITE_OK; pPager 46457 ext/sqlite3/libsqlite/sqlite3.c if( pPager->dbSize==0 ) return SQLITE_OK; pPager 46458 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->zFilename && pPager->zFilename[0] ); pPager 46459 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_HAS_MOVED, &bHasMoved); pPager 46503 ext/sqlite3/libsqlite/sqlite3.c static int hasHotJournal(Pager *pPager, int *pExists){ pPager 46504 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vfs * const pVfs = pPager->pVfs; pPager 46507 ext/sqlite3/libsqlite/sqlite3.c int jrnlOpen = !!isOpen(pPager->jfd); pPager 46509 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->useJournal ); pPager 46510 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) ); pPager 46511 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN ); pPager 46513 ext/sqlite3/libsqlite/sqlite3.c assert( jrnlOpen==0 || ( sqlite3OsDeviceCharacteristics(pPager->jfd) & pPager 46519 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsAccess(pVfs, pPager->zJournal, SQLITE_ACCESS_EXISTS, &exists); pPager 46532 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsCheckReservedLock(pPager->fd, &locked); pPager 46536 ext/sqlite3/libsqlite/sqlite3.c rc = pagerPagecount(pPager, &nPage); pPager 46548 ext/sqlite3/libsqlite/sqlite3.c if( pagerLockDb(pPager, RESERVED_LOCK)==SQLITE_OK ){ pPager 46549 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsDelete(pVfs, pPager->zJournal, 0); pPager 46550 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK); pPager 46562 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, f, &f); pPager 46566 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->jfd, (void *)&first, 1, 0); pPager 46571 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 46622 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSharedLock(Pager *pPager){ pPager 46630 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3PcacheRefCount(pPager->pPCache)==0 ); pPager 46631 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 46632 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER ); pPager 46633 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(MEMDB && pPager->errCode) ){ return pPager->errCode; } pPager 46635 ext/sqlite3/libsqlite/sqlite3.c if( !pagerUseWal(pPager) && pPager->eState==PAGER_OPEN ){ pPager 46640 ext/sqlite3/libsqlite/sqlite3.c rc = pager_wait_on_lock(pPager, SHARED_LOCK); pPager 46642 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==NO_LOCK || pPager->eLock==UNKNOWN_LOCK ); pPager 46649 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eLock<=SHARED_LOCK ){ pPager 46650 ext/sqlite3/libsqlite/sqlite3.c rc = hasHotJournal(pPager, &bHotJournal); pPager 46656 ext/sqlite3/libsqlite/sqlite3.c if( pPager->readOnly ){ pPager 46676 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, EXCLUSIVE_LOCK); pPager 46694 ext/sqlite3/libsqlite/sqlite3.c if( !isOpen(pPager->jfd) ){ pPager 46695 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vfs * const pVfs = pPager->pVfs; pPager 46698 ext/sqlite3/libsqlite/sqlite3.c pVfs, pPager->zJournal, SQLITE_ACCESS_EXISTS, &bExists); pPager 46702 ext/sqlite3/libsqlite/sqlite3.c assert( !pPager->tempFile ); pPager 46703 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, f, &fout); pPager 46704 ext/sqlite3/libsqlite/sqlite3.c assert( rc!=SQLITE_OK || isOpen(pPager->jfd) ); pPager 46707 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 46720 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->jfd) ){ pPager 46722 ext/sqlite3/libsqlite/sqlite3.c rc = pagerSyncHotJournal(pPager); pPager 46724 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback(pPager, 1); pPager 46725 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_OPEN; pPager 46727 ext/sqlite3/libsqlite/sqlite3.c }else if( !pPager->exclusiveMode ){ pPager 46728 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockDb(pPager, SHARED_LOCK); pPager 46748 ext/sqlite3/libsqlite/sqlite3.c pager_error(pPager, rc); pPager 46752 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN ); pPager 46753 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->eLock==SHARED_LOCK) pPager 46754 ext/sqlite3/libsqlite/sqlite3.c || (pPager->exclusiveMode && pPager->eLock>SHARED_LOCK) pPager 46758 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->tempFile && pPager->hasBeenUsed ){ pPager 46776 ext/sqlite3/libsqlite/sqlite3.c char dbFileVers[sizeof(pPager->dbFileVers)]; pPager 46778 ext/sqlite3/libsqlite/sqlite3.c rc = pagerPagecount(pPager, &nPage); pPager 46782 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("CKVERS %p %d\n", pPager, sizeof(dbFileVers))); pPager 46783 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsRead(pPager->fd, &dbFileVers, sizeof(dbFileVers), 24); pPager 46791 ext/sqlite3/libsqlite/sqlite3.c if( memcmp(pPager->dbFileVers, dbFileVers, sizeof(dbFileVers))!=0 ){ pPager 46792 ext/sqlite3/libsqlite/sqlite3.c pager_reset(pPager); pPager 46800 ext/sqlite3/libsqlite/sqlite3.c if( USEFETCH(pPager) ){ pPager 46801 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsUnfetch(pPager->fd, 0, 0); pPager 46809 ext/sqlite3/libsqlite/sqlite3.c rc = pagerOpenWalIfPresent(pPager); pPager 46811 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pWal==0 || rc==SQLITE_OK ); pPager 46815 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 46817 ext/sqlite3/libsqlite/sqlite3.c rc = pagerBeginReadTransaction(pPager); pPager 46820 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){ pPager 46821 ext/sqlite3/libsqlite/sqlite3.c rc = pagerPagecount(pPager, &pPager->dbSize); pPager 46827 ext/sqlite3/libsqlite/sqlite3.c pager_unlock(pPager); pPager 46828 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN ); pPager 46830 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_READER; pPager 46843 ext/sqlite3/libsqlite/sqlite3.c static void pagerUnlockIfUnused(Pager *pPager){ pPager 46844 ext/sqlite3/libsqlite/sqlite3.c if( pPager->nMmapOut==0 && (sqlite3PcacheRefCount(pPager->pPCache)==0) ){ pPager 46845 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockAndRollback(pPager); pPager 46900 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* The pager open on the database file */ pPager 46914 ext/sqlite3/libsqlite/sqlite3.c const int bMmapOk = (pgno!=1 && USEFETCH(pPager) pPager 46915 ext/sqlite3/libsqlite/sqlite3.c && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY)) pPager 46917 ext/sqlite3/libsqlite/sqlite3.c && pPager->xCodec==0 pPager 46921 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_READER ); pPager 46922 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 46928 ext/sqlite3/libsqlite/sqlite3.c pPager->hasBeenUsed = 1; pPager 46932 ext/sqlite3/libsqlite/sqlite3.c if( pPager->errCode!=SQLITE_OK ){ pPager 46933 ext/sqlite3/libsqlite/sqlite3.c rc = pPager->errCode; pPager 46935 ext/sqlite3/libsqlite/sqlite3.c if( bMmapOk && pagerUseWal(pPager) ){ pPager 46936 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame); pPager 46943 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFetch(pPager->fd, pPager 46944 ext/sqlite3/libsqlite/sqlite3.c (i64)(pgno-1) * pPager->pageSize, pPager->pageSize, &pData pPager 46948 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState>PAGER_READER ){ pPager 46949 ext/sqlite3/libsqlite/sqlite3.c pPg = sqlite3PagerLookup(pPager, pgno); pPager 46952 ext/sqlite3/libsqlite/sqlite3.c rc = pagerAcquireMapPage(pPager, pgno, pData, &pPg); pPager 46954 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsUnfetch(pPager->fd, (i64)(pgno-1)*pPager->pageSize, pData); pPager 46969 ext/sqlite3/libsqlite/sqlite3.c pBase = sqlite3PcacheFetch(pPager->pPCache, pgno, 3); pPager 46971 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PcacheFetchStress(pPager->pPCache, pgno, &pBase); pPager 46974 ext/sqlite3/libsqlite/sqlite3.c pPg = *ppPage = sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pBase); pPager 46987 ext/sqlite3/libsqlite/sqlite3.c assert( (*ppPage)->pPager==pPager || (*ppPage)->pPager==0 ); pPager 46989 ext/sqlite3/libsqlite/sqlite3.c if( (*ppPage)->pPager && !noContent ){ pPager 46992 ext/sqlite3/libsqlite/sqlite3.c assert( pgno<=PAGER_MAX_PGNO && pgno!=PAGER_MJ_PGNO(pPager) ); pPager 46993 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[PAGER_STAT_HIT]++; pPager 47001 ext/sqlite3/libsqlite/sqlite3.c pPg->pPager = pPager; pPager 47005 ext/sqlite3/libsqlite/sqlite3.c if( pgno>PAGER_MAX_PGNO || pgno==PAGER_MJ_PGNO(pPager) ){ pPager 47010 ext/sqlite3/libsqlite/sqlite3.c if( MEMDB || pPager->dbSize<pgno || noContent || !isOpen(pPager->fd) ){ pPager 47011 ext/sqlite3/libsqlite/sqlite3.c if( pgno>pPager->mxPgno ){ pPager 47023 ext/sqlite3/libsqlite/sqlite3.c if( pgno<=pPager->dbOrigSize ){ pPager 47024 ext/sqlite3/libsqlite/sqlite3.c TESTONLY( rc = ) sqlite3BitvecSet(pPager->pInJournal, pgno); pPager 47027 ext/sqlite3/libsqlite/sqlite3.c TESTONLY( rc = ) addToSavepointBitvecs(pPager, pgno); pPager 47031 ext/sqlite3/libsqlite/sqlite3.c memset(pPg->pData, 0, pPager->pageSize); pPager 47032 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("ZERO %p %d\n", pPager, pgno)); pPager 47034 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) && bMmapOk==0 ){ pPager 47035 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame); pPager 47038 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->pPager==pPager ); pPager 47039 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[PAGER_STAT_MISS]++; pPager 47055 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockIfUnused(pPager); pPager 47072 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno){ pPager 47074 ext/sqlite3/libsqlite/sqlite3.c assert( pPager!=0 ); pPager 47076 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pPCache!=0 ); pPager 47077 ext/sqlite3/libsqlite/sqlite3.c pPage = sqlite3PcacheFetch(pPager->pPCache, pgno, 0); pPager 47078 ext/sqlite3/libsqlite/sqlite3.c assert( pPage==0 || pPager->hasBeenUsed ); pPager 47079 ext/sqlite3/libsqlite/sqlite3.c return sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pPage); pPager 47091 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; pPager 47093 ext/sqlite3/libsqlite/sqlite3.c pPager = pPg->pPager; pPager 47099 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockIfUnused(pPager); pPager 47127 ext/sqlite3/libsqlite/sqlite3.c static int pager_open_journal(Pager *pPager){ pPager 47129 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vfs * const pVfs = pPager->pVfs; /* Local cache of vfs pointer */ pPager 47131 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_LOCKED ); pPager 47132 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47133 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pInJournal==0 ); pPager 47138 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(pPager->errCode) ) return pPager->errCode; pPager 47140 ext/sqlite3/libsqlite/sqlite3.c if( !pagerUseWal(pPager) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){ pPager 47141 ext/sqlite3/libsqlite/sqlite3.c pPager->pInJournal = sqlite3BitvecCreate(pPager->dbSize); pPager 47142 ext/sqlite3/libsqlite/sqlite3.c if( pPager->pInJournal==0 ){ pPager 47147 ext/sqlite3/libsqlite/sqlite3.c if( !isOpen(pPager->jfd) ){ pPager 47148 ext/sqlite3/libsqlite/sqlite3.c if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY ){ pPager 47149 ext/sqlite3/libsqlite/sqlite3.c sqlite3MemJournalOpen(pPager->jfd); pPager 47153 ext/sqlite3/libsqlite/sqlite3.c (pPager->tempFile ? pPager 47160 ext/sqlite3/libsqlite/sqlite3.c rc = databaseIsUnmoved(pPager); pPager 47164 ext/sqlite3/libsqlite/sqlite3.c pVfs, pPager->zJournal, pPager->jfd, flags, jrnlBufferSize(pPager) pPager 47167 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0); pPager 47171 ext/sqlite3/libsqlite/sqlite3.c assert( rc!=SQLITE_OK || isOpen(pPager->jfd) ); pPager 47180 ext/sqlite3/libsqlite/sqlite3.c pPager->nRec = 0; pPager 47181 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 47182 ext/sqlite3/libsqlite/sqlite3.c pPager->setMaster = 0; pPager 47183 ext/sqlite3/libsqlite/sqlite3.c pPager->journalHdr = 0; pPager 47184 ext/sqlite3/libsqlite/sqlite3.c rc = writeJournalHdr(pPager); pPager 47189 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecDestroy(pPager->pInJournal); pPager 47190 ext/sqlite3/libsqlite/sqlite3.c pPager->pInJournal = 0; pPager 47192 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_LOCKED ); pPager 47193 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_WRITER_CACHEMOD; pPager 47216 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerBegin(Pager *pPager, int exFlag, int subjInMemory){ pPager 47219 ext/sqlite3/libsqlite/sqlite3.c if( pPager->errCode ) return pPager->errCode; pPager 47220 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_READER && pPager->eState<PAGER_ERROR ); pPager 47221 ext/sqlite3/libsqlite/sqlite3.c pPager->subjInMemory = (u8)subjInMemory; pPager 47223 ext/sqlite3/libsqlite/sqlite3.c if( ALWAYS(pPager->eState==PAGER_READER) ){ pPager 47224 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pInJournal==0 ); pPager 47226 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 47230 ext/sqlite3/libsqlite/sqlite3.c if( pPager->exclusiveMode && sqlite3WalExclusiveMode(pPager->pWal, -1) ){ pPager 47231 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, EXCLUSIVE_LOCK); pPager 47235 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalExclusiveMode(pPager->pWal, 1); pPager 47243 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalBeginWriteTransaction(pPager->pWal); pPager 47250 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, RESERVED_LOCK); pPager 47252 ext/sqlite3/libsqlite/sqlite3.c rc = pager_wait_on_lock(pPager, EXCLUSIVE_LOCK); pPager 47266 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_WRITER_LOCKED; pPager 47267 ext/sqlite3/libsqlite/sqlite3.c pPager->dbHintSize = pPager->dbSize; pPager 47268 ext/sqlite3/libsqlite/sqlite3.c pPager->dbFileSize = pPager->dbSize; pPager 47269 ext/sqlite3/libsqlite/sqlite3.c pPager->dbOrigSize = pPager->dbSize; pPager 47270 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff = 0; pPager 47273 ext/sqlite3/libsqlite/sqlite3.c assert( rc==SQLITE_OK || pPager->eState==PAGER_READER ); pPager 47274 ext/sqlite3/libsqlite/sqlite3.c assert( rc!=SQLITE_OK || pPager->eState==PAGER_WRITER_LOCKED ); pPager 47275 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47278 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("TRANSACTION %d\n", PAGERID(pPager))); pPager 47290 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 47298 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_LOCKED pPager 47299 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_CACHEMOD pPager 47300 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 47302 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47303 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->errCode==0 ); pPager 47304 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->readOnly==0 ); pPager 47317 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState==PAGER_WRITER_LOCKED ){ pPager 47318 ext/sqlite3/libsqlite/sqlite3.c rc = pager_open_journal(pPager); pPager 47321 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_CACHEMOD ); pPager 47322 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47328 ext/sqlite3/libsqlite/sqlite3.c inJournal = pageInJournal(pPager, pPg); pPager 47329 ext/sqlite3/libsqlite/sqlite3.c if( inJournal && (pPager->nSavepoint==0 || !subjRequiresPage(pPg)) ){ pPager 47330 ext/sqlite3/libsqlite/sqlite3.c assert( !pagerUseWal(pPager) ); pPager 47337 ext/sqlite3/libsqlite/sqlite3.c if( !inJournal && !pagerUseWal(pPager) ){ pPager 47338 ext/sqlite3/libsqlite/sqlite3.c assert( pagerUseWal(pPager)==0 ); pPager 47339 ext/sqlite3/libsqlite/sqlite3.c if( pPg->pgno<=pPager->dbOrigSize && isOpen(pPager->jfd) ){ pPager 47342 ext/sqlite3/libsqlite/sqlite3.c i64 iOff = pPager->journalOff; pPager 47347 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->pgno!=PAGER_MJ_PGNO(pPager) ); pPager 47349 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalHdr<=pPager->journalOff ); pPager 47350 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPager, pPg->pData, pPg->pgno, 7, return SQLITE_NOMEM, pData2); pPager 47351 ext/sqlite3/libsqlite/sqlite3.c cksum = pager_cksum(pPager, (u8*)pData2); pPager 47362 ext/sqlite3/libsqlite/sqlite3.c rc = write32bits(pPager->jfd, iOff, pPg->pgno); pPager 47364 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->jfd, pData2, pPager->pageSize, iOff+4); pPager 47366 ext/sqlite3/libsqlite/sqlite3.c rc = write32bits(pPager->jfd, iOff+pPager->pageSize+4, cksum); pPager 47369 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("JOUT %p %d %lld %d\n", pPager, pPg->pgno, pPager 47370 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff, pPager->pageSize)); pPager 47373 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pPg->pgno, pPager 47376 ext/sqlite3/libsqlite/sqlite3.c pPager->journalOff += 8 + pPager->pageSize; pPager 47377 ext/sqlite3/libsqlite/sqlite3.c pPager->nRec++; pPager 47378 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pInJournal!=0 ); pPager 47379 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3BitvecSet(pPager->pInJournal, pPg->pgno); pPager 47382 ext/sqlite3/libsqlite/sqlite3.c rc |= addToSavepointBitvecs(pPager, pPg->pgno); pPager 47388 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState!=PAGER_WRITER_DBMOD ){ pPager 47392 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pPg->pgno, pPager 47402 ext/sqlite3/libsqlite/sqlite3.c if( pPager->nSavepoint>0 && subjRequiresPage(pPg) ){ pPager 47409 ext/sqlite3/libsqlite/sqlite3.c if( pPager->dbSize<pPg->pgno ){ pPager 47410 ext/sqlite3/libsqlite/sqlite3.c pPager->dbSize = pPg->pgno; pPager 47433 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; /* The pager that owns pPg */ pPager 47434 ext/sqlite3/libsqlite/sqlite3.c Pgno nPagePerSector = (pPager->sectorSize/pPager->pageSize); pPager 47441 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->doNotSpill & SPILLFLAG_NOSYNC)==0 ); pPager 47442 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill |= SPILLFLAG_NOSYNC; pPager 47450 ext/sqlite3/libsqlite/sqlite3.c nPageCount = pPager->dbSize; pPager 47465 ext/sqlite3/libsqlite/sqlite3.c if( pg==pPg->pgno || !sqlite3BitvecTest(pPager->pInJournal, pg) ){ pPager 47466 ext/sqlite3/libsqlite/sqlite3.c if( pg!=PAGER_MJ_PGNO(pPager) ){ pPager 47467 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, pg, &pPage); pPager 47476 ext/sqlite3/libsqlite/sqlite3.c }else if( (pPage = sqlite3PagerLookup(pPager, pg))!=0 ){ pPager 47493 ext/sqlite3/libsqlite/sqlite3.c PgHdr *pPage = sqlite3PagerLookup(pPager, pg1+ii); pPager 47501 ext/sqlite3/libsqlite/sqlite3.c assert( (pPager->doNotSpill & SPILLFLAG_NOSYNC)!=0 ); pPager 47502 ext/sqlite3/libsqlite/sqlite3.c pPager->doNotSpill &= ~SPILLFLAG_NOSYNC; pPager 47522 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->pPager->eState>=PAGER_WRITER_LOCKED ); pPager 47523 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->pPager->eState!=PAGER_ERROR ); pPager 47524 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPg->pPager) ); pPager 47525 ext/sqlite3/libsqlite/sqlite3.c if( pPg->pPager->sectorSize > (u32)pPg->pPager->pageSize ){ pPager 47558 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pPg->pPager; pPager 47559 ext/sqlite3/libsqlite/sqlite3.c if( (pPg->flags&PGHDR_DIRTY) && pPager->nSavepoint==0 ){ pPager 47560 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("DONT_WRITE page %d of %d\n", pPg->pgno, PAGERID(pPager))); pPager 47561 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("CLEAN %p %d\n", pPager, pPg->pgno)) pPager 47589 ext/sqlite3/libsqlite/sqlite3.c static int pager_incr_changecounter(Pager *pPager, int isDirectMode){ pPager 47592 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_CACHEMOD pPager 47593 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 47595 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47615 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){ pPager 47618 ext/sqlite3/libsqlite/sqlite3.c assert( !pPager->tempFile && isOpen(pPager->fd) ); pPager 47621 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, 1, &pPgHdr); pPager 47640 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->dbFileSize>0 ); pPager 47641 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPager, pPgHdr->pData, 1, 6, rc=SQLITE_NOMEM, zBuf); pPager 47643 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsWrite(pPager->fd, zBuf, pPager->pageSize, 0); pPager 47644 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[PAGER_STAT_WRITE]++; pPager 47651 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pPager->dbFileVers, pCopy, sizeof(pPager->dbFileVers)); pPager 47652 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = 1; pPager 47655 ext/sqlite3/libsqlite/sqlite3.c pPager->changeCountDone = 1; pPager 47672 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager, const char *zMaster){ pPager 47675 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->fd) ){ pPager 47677 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SYNC, pArg); pPager 47680 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && !pPager->noSync ){ pPager 47682 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsSync(pPager->fd, pPager->syncFlags); pPager 47698 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerExclusiveLock(Pager *pPager){ pPager 47700 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_CACHEMOD pPager 47701 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 47702 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_LOCKED pPager 47704 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47705 ext/sqlite3/libsqlite/sqlite3.c if( 0==pagerUseWal(pPager) ){ pPager 47706 ext/sqlite3/libsqlite/sqlite3.c rc = pager_wait_on_lock(pPager, EXCLUSIVE_LOCK); pPager 47738 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 47744 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_LOCKED pPager 47745 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_CACHEMOD pPager 47746 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 47747 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_ERROR pPager 47749 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47752 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(pPager->errCode) ) return pPager->errCode; pPager 47755 ext/sqlite3/libsqlite/sqlite3.c pPager->zFilename, zMaster, pPager->dbSize)); pPager 47758 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState<PAGER_WRITER_CACHEMOD ) return SQLITE_OK; pPager 47765 ext/sqlite3/libsqlite/sqlite3.c sqlite3BackupRestart(pPager->pBackup); pPager 47767 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 47768 ext/sqlite3/libsqlite/sqlite3.c PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache); pPager 47773 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, 1, &pPageOne); pPager 47779 ext/sqlite3/libsqlite/sqlite3.c rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1); pPager 47783 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheCleanAll(pPager->pPCache); pPager 47811 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->jfd) pPager 47812 ext/sqlite3/libsqlite/sqlite3.c || pPager->journalMode==PAGER_JOURNALMODE_OFF pPager 47813 ext/sqlite3/libsqlite/sqlite3.c || pPager->journalMode==PAGER_JOURNALMODE_WAL pPager 47815 ext/sqlite3/libsqlite/sqlite3.c if( !zMaster && isOpen(pPager->jfd) pPager 47816 ext/sqlite3/libsqlite/sqlite3.c && pPager->journalOff==jrnlBufferSize(pPager) pPager 47817 ext/sqlite3/libsqlite/sqlite3.c && pPager->dbSize>=pPager->dbOrigSize pPager 47818 ext/sqlite3/libsqlite/sqlite3.c && (0==(pPg = sqlite3PcacheDirtyList(pPager->pPCache)) || 0==pPg->pDirty) pPager 47826 ext/sqlite3/libsqlite/sqlite3.c rc = pager_incr_changecounter(pPager, 1); pPager 47828 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3JournalCreate(pPager->jfd); pPager 47830 ext/sqlite3/libsqlite/sqlite3.c rc = pager_incr_changecounter(pPager, 0); pPager 47834 ext/sqlite3/libsqlite/sqlite3.c rc = pager_incr_changecounter(pPager, 0); pPager 47842 ext/sqlite3/libsqlite/sqlite3.c rc = writeMasterJournal(pPager, zMaster); pPager 47856 ext/sqlite3/libsqlite/sqlite3.c rc = syncJournal(pPager, 0); pPager 47859 ext/sqlite3/libsqlite/sqlite3.c rc = pager_write_pagelist(pPager,sqlite3PcacheDirtyList(pPager->pPCache)); pPager 47864 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheCleanAll(pPager->pPCache); pPager 47872 ext/sqlite3/libsqlite/sqlite3.c if( pPager->dbSize>pPager->dbFileSize ){ pPager 47873 ext/sqlite3/libsqlite/sqlite3.c Pgno nNew = pPager->dbSize - (pPager->dbSize==PAGER_MJ_PGNO(pPager)); pPager 47874 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_DBMOD ); pPager 47875 ext/sqlite3/libsqlite/sqlite3.c rc = pager_truncate(pPager, nNew); pPager 47881 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSync(pPager, zMaster); pPager 47883 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("DBSYNC %p\n", pPager)) pPager 47888 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && !pagerUseWal(pPager) ){ pPager 47889 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_WRITER_FINISHED; pPager 47910 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo(Pager *pPager){ pPager 47916 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(pPager->errCode) ) return pPager->errCode; pPager 47918 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_LOCKED pPager 47919 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_FINISHED pPager 47920 ext/sqlite3/libsqlite/sqlite3.c || (pagerUseWal(pPager) && pPager->eState==PAGER_WRITER_CACHEMOD) pPager 47922 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47935 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState==PAGER_WRITER_LOCKED pPager 47936 ext/sqlite3/libsqlite/sqlite3.c && pPager->exclusiveMode pPager 47937 ext/sqlite3/libsqlite/sqlite3.c && pPager->journalMode==PAGER_JOURNALMODE_PERSIST pPager 47939 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalOff==JOURNAL_HDR_SZ(pPager) || !pPager->journalOff ); pPager 47940 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_READER; pPager 47944 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("COMMIT %d\n", PAGERID(pPager))); pPager 47945 ext/sqlite3/libsqlite/sqlite3.c pPager->iDataVersion++; pPager 47946 ext/sqlite3/libsqlite/sqlite3.c rc = pager_end_transaction(pPager, pPager->setMaster, 1); pPager 47947 ext/sqlite3/libsqlite/sqlite3.c return pager_error(pPager, rc); pPager 47976 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerRollback(Pager *pPager){ pPager 47978 ext/sqlite3/libsqlite/sqlite3.c PAGERTRACE(("ROLLBACK %d\n", PAGERID(pPager))); pPager 47984 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 47985 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState==PAGER_ERROR ) return pPager->errCode; pPager 47986 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState<=PAGER_READER ) return SQLITE_OK; pPager 47988 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 47990 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSavepoint(pPager, SAVEPOINT_ROLLBACK, -1); pPager 47991 ext/sqlite3/libsqlite/sqlite3.c rc2 = pager_end_transaction(pPager, pPager->setMaster, 0); pPager 47993 ext/sqlite3/libsqlite/sqlite3.c }else if( !isOpen(pPager->jfd) || pPager->eState==PAGER_WRITER_LOCKED ){ pPager 47994 ext/sqlite3/libsqlite/sqlite3.c int eState = pPager->eState; pPager 47995 ext/sqlite3/libsqlite/sqlite3.c rc = pager_end_transaction(pPager, 0, 0); pPager 48001 ext/sqlite3/libsqlite/sqlite3.c pPager->errCode = SQLITE_ABORT; pPager 48002 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_ERROR; pPager 48006 ext/sqlite3/libsqlite/sqlite3.c rc = pager_playback(pPager, 0); pPager 48009 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_READER || rc!=SQLITE_OK ); pPager 48018 ext/sqlite3/libsqlite/sqlite3.c return pager_error(pPager, rc); pPager 48025 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE u8 sqlite3PagerIsreadonly(Pager *pPager){ pPager 48026 ext/sqlite3/libsqlite/sqlite3.c return pPager->readOnly; pPager 48032 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerRefcount(Pager *pPager){ pPager 48033 ext/sqlite3/libsqlite/sqlite3.c return sqlite3PcacheRefCount(pPager->pPCache); pPager 48040 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerMemUsed(Pager *pPager){ pPager 48041 ext/sqlite3/libsqlite/sqlite3.c int perPageSize = pPager->pageSize + pPager->nExtra + sizeof(PgHdr) pPager 48043 ext/sqlite3/libsqlite/sqlite3.c return perPageSize*sqlite3PcachePagecount(pPager->pPCache) pPager 48044 ext/sqlite3/libsqlite/sqlite3.c + sqlite3MallocSize(pPager) pPager 48045 ext/sqlite3/libsqlite/sqlite3.c + pPager->pageSize; pPager 48059 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int *sqlite3PagerStats(Pager *pPager){ pPager 48061 ext/sqlite3/libsqlite/sqlite3.c a[0] = sqlite3PcacheRefCount(pPager->pPCache); pPager 48062 ext/sqlite3/libsqlite/sqlite3.c a[1] = sqlite3PcachePagecount(pPager->pPCache); pPager 48063 ext/sqlite3/libsqlite/sqlite3.c a[2] = sqlite3PcacheGetCachesize(pPager->pPCache); pPager 48064 ext/sqlite3/libsqlite/sqlite3.c a[3] = pPager->eState==PAGER_OPEN ? -1 : (int) pPager->dbSize; pPager 48065 ext/sqlite3/libsqlite/sqlite3.c a[4] = pPager->eState; pPager 48066 ext/sqlite3/libsqlite/sqlite3.c a[5] = pPager->errCode; pPager 48067 ext/sqlite3/libsqlite/sqlite3.c a[6] = pPager->aStat[PAGER_STAT_HIT]; pPager 48068 ext/sqlite3/libsqlite/sqlite3.c a[7] = pPager->aStat[PAGER_STAT_MISS]; pPager 48070 ext/sqlite3/libsqlite/sqlite3.c a[9] = pPager->nRead; pPager 48071 ext/sqlite3/libsqlite/sqlite3.c a[10] = pPager->aStat[PAGER_STAT_WRITE]; pPager 48083 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *pPager, int eStat, int reset, int *pnVal){ pPager 48094 ext/sqlite3/libsqlite/sqlite3.c *pnVal += pPager->aStat[eStat - SQLITE_DBSTATUS_CACHE_HIT]; pPager 48096 ext/sqlite3/libsqlite/sqlite3.c pPager->aStat[eStat - SQLITE_DBSTATUS_CACHE_HIT] = 0; pPager 48103 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerIsMemdb(Pager *pPager){ pPager 48117 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){ pPager 48119 ext/sqlite3/libsqlite/sqlite3.c int nCurrent = pPager->nSavepoint; /* Current number of savepoints */ pPager 48121 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_WRITER_LOCKED ); pPager 48122 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 48124 ext/sqlite3/libsqlite/sqlite3.c if( nSavepoint>nCurrent && pPager->useJournal ){ pPager 48133 ext/sqlite3/libsqlite/sqlite3.c pPager->aSavepoint, sizeof(PagerSavepoint)*nSavepoint pPager 48139 ext/sqlite3/libsqlite/sqlite3.c pPager->aSavepoint = aNew; pPager 48143 ext/sqlite3/libsqlite/sqlite3.c aNew[ii].nOrig = pPager->dbSize; pPager 48144 ext/sqlite3/libsqlite/sqlite3.c if( isOpen(pPager->jfd) && pPager->journalOff>0 ){ pPager 48145 ext/sqlite3/libsqlite/sqlite3.c aNew[ii].iOffset = pPager->journalOff; pPager 48147 ext/sqlite3/libsqlite/sqlite3.c aNew[ii].iOffset = JOURNAL_HDR_SZ(pPager); pPager 48149 ext/sqlite3/libsqlite/sqlite3.c aNew[ii].iSubRec = pPager->nSubRec; pPager 48150 ext/sqlite3/libsqlite/sqlite3.c aNew[ii].pInSavepoint = sqlite3BitvecCreate(pPager->dbSize); pPager 48154 ext/sqlite3/libsqlite/sqlite3.c if( pagerUseWal(pPager) ){ pPager 48155 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalSavepoint(pPager->pWal, aNew[ii].aWalData); pPager 48157 ext/sqlite3/libsqlite/sqlite3.c pPager->nSavepoint = ii+1; pPager 48159 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->nSavepoint==nSavepoint ); pPager 48160 ext/sqlite3/libsqlite/sqlite3.c assertTruncateConstraint(pPager); pPager 48196 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint){ pPager 48197 ext/sqlite3/libsqlite/sqlite3.c int rc = pPager->errCode; /* Return code */ pPager 48202 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && iSavepoint<pPager->nSavepoint ){ pPager 48211 ext/sqlite3/libsqlite/sqlite3.c for(ii=nNew; ii<pPager->nSavepoint; ii++){ pPager 48212 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecDestroy(pPager->aSavepoint[ii].pInSavepoint); pPager 48214 ext/sqlite3/libsqlite/sqlite3.c pPager->nSavepoint = nNew; pPager 48219 ext/sqlite3/libsqlite/sqlite3.c if( nNew==0 && isOpen(pPager->sjfd) ){ pPager 48221 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3IsMemJournal(pPager->sjfd) ){ pPager 48222 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3OsTruncate(pPager->sjfd, 0); pPager 48225 ext/sqlite3/libsqlite/sqlite3.c pPager->nSubRec = 0; pPager 48233 ext/sqlite3/libsqlite/sqlite3.c else if( pagerUseWal(pPager) || isOpen(pPager->jfd) ){ pPager 48234 ext/sqlite3/libsqlite/sqlite3.c PagerSavepoint *pSavepoint = (nNew==0)?0:&pPager->aSavepoint[nNew-1]; pPager 48235 ext/sqlite3/libsqlite/sqlite3.c rc = pagerPlaybackSavepoint(pPager, pSavepoint); pPager 48253 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE const char *sqlite3PagerFilename(Pager *pPager, int nullIfMemDb){ pPager 48254 ext/sqlite3/libsqlite/sqlite3.c return (nullIfMemDb && pPager->memDb) ? "" : pPager->zFilename; pPager 48260 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE const sqlite3_vfs *sqlite3PagerVfs(Pager *pPager){ pPager 48261 ext/sqlite3/libsqlite/sqlite3.c return pPager->pVfs; pPager 48269 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager *pPager){ pPager 48270 ext/sqlite3/libsqlite/sqlite3.c return pPager->fd; pPager 48276 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE const char *sqlite3PagerJournalname(Pager *pPager){ pPager 48277 ext/sqlite3/libsqlite/sqlite3.c return pPager->zJournal; pPager 48284 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerNosync(Pager *pPager){ pPager 48285 ext/sqlite3/libsqlite/sqlite3.c return pPager->noSync; pPager 48293 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, pPager 48299 ext/sqlite3/libsqlite/sqlite3.c if( pPager->xCodecFree ) pPager->xCodecFree(pPager->pCodec); pPager 48300 ext/sqlite3/libsqlite/sqlite3.c pPager->xCodec = pPager->memDb ? 0 : xCodec; pPager 48301 ext/sqlite3/libsqlite/sqlite3.c pPager->xCodecSizeChng = xCodecSizeChng; pPager 48302 ext/sqlite3/libsqlite/sqlite3.c pPager->xCodecFree = xCodecFree; pPager 48303 ext/sqlite3/libsqlite/sqlite3.c pPager->pCodec = pCodec; pPager 48304 ext/sqlite3/libsqlite/sqlite3.c pagerReportSize(pPager); pPager 48306 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void *sqlite3PagerGetCodec(Pager *pPager){ pPager 48307 ext/sqlite3/libsqlite/sqlite3.c return pPager->pCodec; pPager 48319 ext/sqlite3/libsqlite/sqlite3.c CODEC2(pPg->pPager, pPg->pData, pPg->pgno, 6, return 0, aData); pPager 48326 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerState(Pager *pPager){ pPager 48327 ext/sqlite3/libsqlite/sqlite3.c return pPager->eState; pPager 48357 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){ pPager 48364 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_WRITER_CACHEMOD pPager 48365 ext/sqlite3/libsqlite/sqlite3.c || pPager->eState==PAGER_WRITER_DBMOD pPager 48367 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 48403 ext/sqlite3/libsqlite/sqlite3.c PAGERID(pPager), pPg->pgno, (pPg->flags&PGHDR_NEED_SYNC)?1:0, pgno)); pPager 48404 ext/sqlite3/libsqlite/sqlite3.c IOTRACE(("MOVE %p %d %d\n", pPager, pPg->pgno, pgno)) pPager 48415 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalMode==PAGER_JOURNALMODE_OFF || pPager 48416 ext/sqlite3/libsqlite/sqlite3.c pageInJournal(pPager, pPg) || pPg->pgno>pPager->dbOrigSize ); pPager 48426 ext/sqlite3/libsqlite/sqlite3.c pPgOld = sqlite3PagerLookup(pPager, pgno); pPager 48433 ext/sqlite3/libsqlite/sqlite3.c sqlite3PcacheMove(pPgOld, pPager->dbSize+1); pPager 48469 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, needSyncPgno, &pPgHdr); pPager 48471 ext/sqlite3/libsqlite/sqlite3.c if( needSyncPgno<=pPager->dbOrigSize ){ pPager 48472 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pTmpSpace!=0 ); pPager 48473 ext/sqlite3/libsqlite/sqlite3.c sqlite3BitvecClear(pPager->pInJournal, needSyncPgno, pPager->pTmpSpace); pPager 48502 ext/sqlite3/libsqlite/sqlite3.c assert( pPg->nRef>0 || pPg->pPager->memDb ); pPager 48524 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerLockingMode(Pager *pPager, int eMode){ pPager 48530 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->exclusiveMode || 0==sqlite3WalHeapMemory(pPager->pWal) ); pPager 48531 ext/sqlite3/libsqlite/sqlite3.c if( eMode>=0 && !pPager->tempFile && !sqlite3WalHeapMemory(pPager->pWal) ){ pPager 48532 ext/sqlite3/libsqlite/sqlite3.c pPager->exclusiveMode = (u8)eMode; pPager 48534 ext/sqlite3/libsqlite/sqlite3.c return (int)pPager->exclusiveMode; pPager 48557 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){ pPager 48558 ext/sqlite3/libsqlite/sqlite3.c u8 eOld = pPager->journalMode; /* Prior journalmode */ pPager 48563 ext/sqlite3/libsqlite/sqlite3.c print_pager_state(pPager); pPager 48579 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->tempFile==0 || eMode!=PAGER_JOURNALMODE_WAL ); pPager 48594 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState!=PAGER_ERROR ); pPager 48595 ext/sqlite3/libsqlite/sqlite3.c pPager->journalMode = (u8)eMode; pPager 48608 ext/sqlite3/libsqlite/sqlite3.c assert( isOpen(pPager->fd) || pPager->exclusiveMode ); pPager 48609 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->exclusiveMode && (eOld & 5)==1 && (eMode & 1)==0 ){ pPager 48619 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 48620 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eLock>=RESERVED_LOCK ){ pPager 48621 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsDelete(pPager->pVfs, pPager->zJournal, 0); pPager 48624 ext/sqlite3/libsqlite/sqlite3.c int state = pPager->eState; pPager 48627 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSharedLock(pPager); pPager 48629 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState==PAGER_READER ){ pPager 48631 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, RESERVED_LOCK); pPager 48634 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsDelete(pPager->pVfs, pPager->zJournal, 0); pPager 48637 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockDb(pPager, SHARED_LOCK); pPager 48639 ext/sqlite3/libsqlite/sqlite3.c pager_unlock(pPager); pPager 48641 ext/sqlite3/libsqlite/sqlite3.c assert( state==pPager->eState ); pPager 48644 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 48649 ext/sqlite3/libsqlite/sqlite3.c return (int)pPager->journalMode; pPager 48655 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerGetJournalMode(Pager *pPager){ pPager 48656 ext/sqlite3/libsqlite/sqlite3.c return (int)pPager->journalMode; pPager 48664 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerOkToChangeJournalMode(Pager *pPager){ pPager 48665 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 48666 ext/sqlite3/libsqlite/sqlite3.c if( pPager->eState>=PAGER_WRITER_CACHEMOD ) return 0; pPager 48667 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(isOpen(pPager->jfd) && pPager->journalOff>0) ) return 0; pPager 48677 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE i64 sqlite3PagerJournalSizeLimit(Pager *pPager, i64 iLimit){ pPager 48679 ext/sqlite3/libsqlite/sqlite3.c pPager->journalSizeLimit = iLimit; pPager 48680 ext/sqlite3/libsqlite/sqlite3.c sqlite3WalLimit(pPager->pWal, iLimit); pPager 48682 ext/sqlite3/libsqlite/sqlite3.c return pPager->journalSizeLimit; pPager 48691 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager){ pPager 48692 ext/sqlite3/libsqlite/sqlite3.c return &pPager->pBackup; pPager 48699 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PagerClearCache(Pager *pPager){ pPager 48700 ext/sqlite3/libsqlite/sqlite3.c if( !MEMDB && pPager->tempFile==0 ) pager_reset(pPager); pPager 48712 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerCheckpoint(Pager *pPager, int eMode, int *pnLog, int *pnCkpt){ pPager 48714 ext/sqlite3/libsqlite/sqlite3.c if( pPager->pWal ){ pPager 48715 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalCheckpoint(pPager->pWal, eMode, pPager 48716 ext/sqlite3/libsqlite/sqlite3.c (eMode==SQLITE_CHECKPOINT_PASSIVE ? 0 : pPager->xBusyHandler), pPager 48717 ext/sqlite3/libsqlite/sqlite3.c pPager->pBusyHandlerArg, pPager 48718 ext/sqlite3/libsqlite/sqlite3.c pPager->ckptSyncFlags, pPager->pageSize, (u8 *)pPager->pTmpSpace, pPager 48725 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalCallback(Pager *pPager){ pPager 48726 ext/sqlite3/libsqlite/sqlite3.c return sqlite3WalCallback(pPager->pWal); pPager 48733 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalSupported(Pager *pPager){ pPager 48734 ext/sqlite3/libsqlite/sqlite3.c const sqlite3_io_methods *pMethods = pPager->fd->pMethods; pPager 48735 ext/sqlite3/libsqlite/sqlite3.c return pPager->exclusiveMode || (pMethods->iVersion>=2 && pMethods->xShmMap); pPager 48742 ext/sqlite3/libsqlite/sqlite3.c static int pagerExclusiveLock(Pager *pPager){ pPager 48745 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK ); pPager 48746 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, EXCLUSIVE_LOCK); pPager 48750 ext/sqlite3/libsqlite/sqlite3.c pagerUnlockDb(pPager, SHARED_LOCK); pPager 48762 ext/sqlite3/libsqlite/sqlite3.c static int pagerOpenWal(Pager *pPager){ pPager 48765 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->pWal==0 && pPager->tempFile==0 ); pPager 48766 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK ); pPager 48773 ext/sqlite3/libsqlite/sqlite3.c if( pPager->exclusiveMode ){ pPager 48774 ext/sqlite3/libsqlite/sqlite3.c rc = pagerExclusiveLock(pPager); pPager 48781 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalOpen(pPager->pVfs, pPager 48782 ext/sqlite3/libsqlite/sqlite3.c pPager->fd, pPager->zWal, pPager->exclusiveMode, pPager 48783 ext/sqlite3/libsqlite/sqlite3.c pPager->journalSizeLimit, &pPager->pWal pPager 48786 ext/sqlite3/libsqlite/sqlite3.c pagerFixMaplimit(pPager); pPager 48808 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager, /* Pager object */ pPager 48813 ext/sqlite3/libsqlite/sqlite3.c assert( assert_pager_state(pPager) ); pPager 48814 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_OPEN || pbOpen ); pPager 48815 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState==PAGER_READER || !pbOpen ); pPager 48817 ext/sqlite3/libsqlite/sqlite3.c assert( pbOpen!=0 || (!pPager->tempFile && !pPager->pWal) ); pPager 48819 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->tempFile && !pPager->pWal ){ pPager 48820 ext/sqlite3/libsqlite/sqlite3.c if( !sqlite3PagerWalSupported(pPager) ) return SQLITE_CANTOPEN; pPager 48823 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsClose(pPager->jfd); pPager 48825 ext/sqlite3/libsqlite/sqlite3.c rc = pagerOpenWal(pPager); pPager 48827 ext/sqlite3/libsqlite/sqlite3.c pPager->journalMode = PAGER_JOURNALMODE_WAL; pPager 48828 ext/sqlite3/libsqlite/sqlite3.c pPager->eState = PAGER_OPEN; pPager 48846 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerCloseWal(Pager *pPager){ pPager 48849 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->journalMode==PAGER_JOURNALMODE_WAL ); pPager 48855 ext/sqlite3/libsqlite/sqlite3.c if( !pPager->pWal ){ pPager 48857 ext/sqlite3/libsqlite/sqlite3.c rc = pagerLockDb(pPager, SHARED_LOCK); pPager 48860 ext/sqlite3/libsqlite/sqlite3.c pPager->pVfs, pPager->zWal, SQLITE_ACCESS_EXISTS, &logexists pPager 48864 ext/sqlite3/libsqlite/sqlite3.c rc = pagerOpenWal(pPager); pPager 48871 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && pPager->pWal ){ pPager 48872 ext/sqlite3/libsqlite/sqlite3.c rc = pagerExclusiveLock(pPager); pPager 48874 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3WalClose(pPager->pWal, pPager->ckptSyncFlags, pPager 48875 ext/sqlite3/libsqlite/sqlite3.c pPager->pageSize, (u8*)pPager->pTmpSpace); pPager 48876 ext/sqlite3/libsqlite/sqlite3.c pPager->pWal = 0; pPager 48877 ext/sqlite3/libsqlite/sqlite3.c pagerFixMaplimit(pPager); pPager 48893 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PagerWalFramesize(Pager *pPager){ pPager 48894 ext/sqlite3/libsqlite/sqlite3.c assert( pPager->eState>=PAGER_READER ); pPager 48895 ext/sqlite3/libsqlite/sqlite3.c return sqlite3WalFramesize(pPager->pWal); pPager 52491 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; /* The page cache */ pPager 52746 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; /* The associated pager. Also accessible by pBt->pPager */ pPager 53931 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pBt->pPager, iPtrmap, &pDbPage); pPager 53974 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pBt->pPager, iPtrmap, &pDbPage); pPager 54277 ext/sqlite3/libsqlite/sqlite3.c temp = sqlite3PagerTempSpace(pPage->pBt->pPager); pPager 54806 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerAcquire(pBt->pPager, pgno, (DbPage**)&pDbPage, flags); pPager 54820 ext/sqlite3/libsqlite/sqlite3.c pDbPage = sqlite3PagerLookup(pBt->pPager, pgno); pPager 55042 ext/sqlite3/libsqlite/sqlite3.c if( 0==strcmp(zFullPathname, sqlite3PagerFilename(pBt->pPager, 0)) pPager 55043 ext/sqlite3/libsqlite/sqlite3.c && sqlite3PagerVfs(pBt->pPager)==pVfs ){ pPager 55092 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerOpen(pVfs, &pBt->pPager, zFilename, pPager 55095 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetMmapLimit(pBt->pPager, db->szMmap); pPager 55096 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerReadFileheader(pBt->pPager,sizeof(zDbHeader),zDbHeader); pPager 55103 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetBusyhandler(pBt->pPager, btreeInvokeBusyHandler, pBt); pPager 55108 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3PagerIsreadonly(pBt->pPager) ) pBt->btsFlags |= BTS_READ_ONLY; pPager 55143 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, nReserve); pPager 55206 ext/sqlite3/libsqlite/sqlite3.c if( pBt && pBt->pPager ){ pPager 55207 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerClose(pBt->pPager); pPager 55218 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetCachesize(p->pBt->pPager, SQLITE_DEFAULT_CACHE_SIZE); pPager 55348 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerClose(pBt->pPager); pPager 55387 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetCachesize(pBt->pPager, mxPage); pPager 55401 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetMmapLimit(pBt->pPager, szMmap); pPager 55423 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetFlags(pBt->pPager, pgFlags); pPager 55438 ext/sqlite3/libsqlite/sqlite3.c assert( pBt && pBt->pPager ); pPager 55439 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerNosync(pBt->pPager); pPager 55487 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, nReserve); pPager 55548 ext/sqlite3/libsqlite/sqlite3.c n = sqlite3PagerMaxPageCount(p->pBt->pPager, mxPage); pPager 55636 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSharedLock(pBt->pPager); pPager 55645 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerPagecount(pBt->pPager, &nPageFile); pPager 55686 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerOpenWal(pBt->pPager, &isOpen); pPager 55738 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, pPager 55831 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3PagerRefcount(pBt->pPager)==1 ); pPager 56000 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerBegin(pBt->pPager,wrflag>1,sqlite3TempInMemory(p->db)); pPager 56060 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint); pPager 56195 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pBt->pPager; pPager 56206 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerMovepage(pPager, pDbPage->pDbPage, iFreePage, isCommit); pPager 56444 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = pBt->pPager; pPager 56445 ext/sqlite3/libsqlite/sqlite3.c VVA_ONLY( int nRef = sqlite3PagerRefcount(pPager) ); pPager 56483 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerRollback(pPager); pPager 56487 ext/sqlite3/libsqlite/sqlite3.c assert( nRef>=sqlite3PagerRefcount(pPager) ); pPager 56535 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerTruncateImage(pBt->pPager, pBt->nPage); pPager 56538 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerCommitPhaseOne(pBt->pPager, zMaster, 0); pPager 56624 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerCommitPhaseTwo(pBt->pPager); pPager 56747 ext/sqlite3/libsqlite/sqlite3.c rc2 = sqlite3PagerRollback(pBt->pPager); pPager 56758 ext/sqlite3/libsqlite/sqlite3.c if( nPage==0 ) sqlite3PagerPagecount(pBt->pPager, &nPage); pPager 56805 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerOpenSavepoint(pBt->pPager, iStatement); pPager 56829 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerSavepoint(pBt->pPager, op, iSavepoint); pPager 57394 ext/sqlite3/libsqlite/sqlite3.c && (fd = sqlite3PagerFile(pBt->pPager))->pMethods /* (3) */ pPager 57410 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerAcquire(pBt->pPager, nextPage, &pDbPage, pPager 59205 ext/sqlite3/libsqlite/sqlite3.c u8 *pTmp = sqlite3PagerTempSpace(pPg->pBt->pPager); pPager 59370 ext/sqlite3/libsqlite/sqlite3.c u8 *pTmp = sqlite3PagerTempSpace(pPg->pBt->pPager); pPager 61282 ext/sqlite3/libsqlite/sqlite3.c *pMeta = sqlite3PagerDataVersion(pBt->pPager) + p->iDataVersion; pPager 61406 ext/sqlite3/libsqlite/sqlite3.c return p->pBt->pPager; pPager 61535 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage) ){ pPager 61929 ext/sqlite3/libsqlite/sqlite3.c nRef = sqlite3PagerRefcount(pBt->pPager); pPager 61931 ext/sqlite3/libsqlite/sqlite3.c sCheck.pPager = pBt->pPager; pPager 62002 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(nRef != sqlite3PagerRefcount(pBt->pPager)) ){ pPager 62005 ext/sqlite3/libsqlite/sqlite3.c nRef, sqlite3PagerRefcount(pBt->pPager) pPager 62032 ext/sqlite3/libsqlite/sqlite3.c assert( p->pBt->pPager!=0 ); pPager 62033 ext/sqlite3/libsqlite/sqlite3.c return sqlite3PagerFilename(p->pBt->pPager, 1); pPager 62045 ext/sqlite3/libsqlite/sqlite3.c assert( p->pBt->pPager!=0 ); pPager 62046 ext/sqlite3/libsqlite/sqlite3.c return sqlite3PagerJournalname(p->pBt->pPager); pPager 62074 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerCheckpoint(pBt->pPager, eMode, pnLog, pnCkpt); pPager 76665 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; /* Pager associated with pBt */ pPager 76686 ext/sqlite3/libsqlite/sqlite3.c pPager = sqlite3BtreePager(pBt); pPager 76687 ext/sqlite3/libsqlite/sqlite3.c eOld = sqlite3PagerGetJournalMode(pPager); pPager 76689 ext/sqlite3/libsqlite/sqlite3.c if( !sqlite3PagerOkToChangeJournalMode(pPager) ) eNew = eOld; pPager 76692 ext/sqlite3/libsqlite/sqlite3.c zFilename = sqlite3PagerFilename(pPager, 1); pPager 76699 ext/sqlite3/libsqlite/sqlite3.c || !sqlite3PagerWalSupported(pPager)) /* No shared-memory support */ pPager 76722 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerCloseWal(pPager); pPager 76724 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetJournalMode(pPager, eNew); pPager 76729 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerSetJournalMode(pPager, PAGER_JOURNALMODE_OFF); pPager 76746 ext/sqlite3/libsqlite/sqlite3.c eNew = sqlite3PagerSetJournalMode(pPager, eNew); pPager 90099 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; pPager 90109 ext/sqlite3/libsqlite/sqlite3.c pPager = sqlite3BtreePager(aNew->pBt); pPager 90110 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerLockingMode(pPager, db->dfltLockMode); pPager 104128 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; pPager 104141 ext/sqlite3/libsqlite/sqlite3.c pPager = sqlite3BtreePager(db->aDb[ii].pBt); pPager 104142 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerLockingMode(pPager, eMode); pPager 104146 ext/sqlite3/libsqlite/sqlite3.c pPager = sqlite3BtreePager(pDb->pBt); pPager 104147 ext/sqlite3/libsqlite/sqlite3.c eMode = sqlite3PagerLockingMode(pPager, eMode); pPager 104212 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pDb->pBt); pPager 104218 ext/sqlite3/libsqlite/sqlite3.c iLimit = sqlite3PagerJournalSizeLimit(pPager, iLimit); pPager 104489 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pDb->pBt); pPager 104491 ext/sqlite3/libsqlite/sqlite3.c sqlite3_file *pFile = sqlite3PagerFile(pPager); pPager 104503 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pDb->pBt); pPager 104504 ext/sqlite3/libsqlite/sqlite3.c sqlite3_file *pFile = sqlite3PagerFile(pPager); pPager 128717 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pBt); pPager 128718 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerShrink(pPager); pPager 131322 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager; pPager 131325 ext/sqlite3/libsqlite/sqlite3.c pPager = sqlite3BtreePager(pBtree); pPager 131326 ext/sqlite3/libsqlite/sqlite3.c assert( pPager!=0 ); pPager 131327 ext/sqlite3/libsqlite/sqlite3.c fd = sqlite3PagerFile(pPager); pPager 155617 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pBt); pPager 155628 ext/sqlite3/libsqlite/sqlite3.c fd = sqlite3PagerFile(pPager); pPager 155646 ext/sqlite3/libsqlite/sqlite3.c Pager *pPager = sqlite3BtreePager(pBt); pPager 155657 ext/sqlite3/libsqlite/sqlite3.c sqlite3PagerPagecount(pPager, &nPage); pPager 155662 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, iRoot, &pCsr->aPage[0].pPg); pPager 155722 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, p[1].iPgno, &p[1].pPg);