pReadr 78367 ext/sqlite3/libsqlite/sqlite3.c static void vdbePmaReaderClear(PmaReader *pReadr){ pReadr 78368 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pReadr->aAlloc); pReadr 78369 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pReadr->aBuffer); pReadr 78370 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->aMap ) sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap); pReadr 78371 ext/sqlite3/libsqlite/sqlite3.c vdbeIncrFree(pReadr->pIncr); pReadr 78372 ext/sqlite3/libsqlite/sqlite3.c memset(pReadr, 0, sizeof(PmaReader)); pReadr 78530 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReadr, /* Reader whose cursor is to be moved */ pReadr 78536 ext/sqlite3/libsqlite/sqlite3.c assert( pReadr->pIncr==0 || pReadr->pIncr->bEof==0 ); pReadr 78539 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->aMap ){ pReadr 78540 ext/sqlite3/libsqlite/sqlite3.c sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap); pReadr 78541 ext/sqlite3/libsqlite/sqlite3.c pReadr->aMap = 0; pReadr 78543 ext/sqlite3/libsqlite/sqlite3.c pReadr->iReadOff = iOff; pReadr 78544 ext/sqlite3/libsqlite/sqlite3.c pReadr->iEof = pFile->iEof; pReadr 78545 ext/sqlite3/libsqlite/sqlite3.c pReadr->pFd = pFile->pFd; pReadr 78547 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeSorterMapFile(pTask, pFile, &pReadr->aMap); pReadr 78548 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && pReadr->aMap==0 ){ pReadr 78550 ext/sqlite3/libsqlite/sqlite3.c int iBuf = pReadr->iReadOff % pgsz; pReadr 78551 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->aBuffer==0 ){ pReadr 78552 ext/sqlite3/libsqlite/sqlite3.c pReadr->aBuffer = (u8*)sqlite3Malloc(pgsz); pReadr 78553 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->aBuffer==0 ) rc = SQLITE_NOMEM; pReadr 78554 ext/sqlite3/libsqlite/sqlite3.c pReadr->nBuffer = pgsz; pReadr 78558 ext/sqlite3/libsqlite/sqlite3.c if( (pReadr->iReadOff + nRead) > pReadr->iEof ){ pReadr 78559 ext/sqlite3/libsqlite/sqlite3.c nRead = (int)(pReadr->iEof - pReadr->iReadOff); pReadr 78562 ext/sqlite3/libsqlite/sqlite3.c pReadr->pFd, &pReadr->aBuffer[iBuf], nRead, pReadr->iReadOff pReadr 78575 ext/sqlite3/libsqlite/sqlite3.c static int vdbePmaReaderNext(PmaReader *pReadr){ pReadr 78580 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->iReadOff>=pReadr->iEof ){ pReadr 78581 ext/sqlite3/libsqlite/sqlite3.c IncrMerger *pIncr = pReadr->pIncr; pReadr 78587 ext/sqlite3/libsqlite/sqlite3.c pIncr->pTask, pReadr, &pIncr->aFile[0], pIncr->iStartOff pReadr 78595 ext/sqlite3/libsqlite/sqlite3.c vdbePmaReaderClear(pReadr); pReadr 78602 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReadVarint(pReadr, &nRec); pReadr 78605 ext/sqlite3/libsqlite/sqlite3.c pReadr->nKey = (int)nRec; pReadr 78606 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReadBlob(pReadr, (int)nRec, &pReadr->aKey); pReadr 78626 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReadr, /* PmaReader to populate */ pReadr 78632 ext/sqlite3/libsqlite/sqlite3.c assert( pReadr->aAlloc==0 && pReadr->nAlloc==0 ); pReadr 78633 ext/sqlite3/libsqlite/sqlite3.c assert( pReadr->aBuffer==0 ); pReadr 78634 ext/sqlite3/libsqlite/sqlite3.c assert( pReadr->aMap==0 ); pReadr 78636 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderSeek(pTask, pReadr, pFile, iStart); pReadr 78639 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReadVarint(pReadr, &nByte); pReadr 78640 ext/sqlite3/libsqlite/sqlite3.c pReadr->iEof = pReadr->iReadOff + nByte; pReadr 78645 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderNext(pReadr); pReadr 79969 ext/sqlite3/libsqlite/sqlite3.c static int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode); pReadr 80060 ext/sqlite3/libsqlite/sqlite3.c static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode){ pReadr 80062 ext/sqlite3/libsqlite/sqlite3.c IncrMerger *pIncr = pReadr->pIncr; pReadr 80116 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderNext(pReadr); pReadr 80148 ext/sqlite3/libsqlite/sqlite3.c static int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode){ pReadr 80149 ext/sqlite3/libsqlite/sqlite3.c IncrMerger *pIncr = pReadr->pIncr; /* Incremental merger */ pReadr 80155 ext/sqlite3/libsqlite/sqlite3.c void *pCtx = (void*)pReadr; pReadr 80160 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderIncrMergeInit(pReadr, eMode); pReadr 80194 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReadr = &pNew->aReadr[i]; pReadr 80195 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderInit(pTask, &pTask->file, iOff, pReadr, &nDummy); pReadr 80196 ext/sqlite3/libsqlite/sqlite3.c iOff = pReadr->iEof; pReadr 80256 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReadr = &p->aReadr[iIter]; pReadr 80258 ext/sqlite3/libsqlite/sqlite3.c if( pReadr->pIncr==0 ){ pReadr 80263 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeIncrMergerNew(pTask, pNew, &pReadr->pIncr); pReadr 80267 ext/sqlite3/libsqlite/sqlite3.c p = pReadr->pIncr->pMerger; pReadr 80389 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReadr = 0; pReadr 80393 ext/sqlite3/libsqlite/sqlite3.c pReadr = (PmaReader*)sqlite3DbMallocZero(db, sizeof(PmaReader)); pReadr 80394 ext/sqlite3/libsqlite/sqlite3.c pSorter->pReader = pReadr; pReadr 80395 ext/sqlite3/libsqlite/sqlite3.c if( pReadr==0 ) rc = SQLITE_NOMEM; pReadr 80398 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeIncrMergerNew(pLast, pMain, &pReadr->pIncr); pReadr 80400 ext/sqlite3/libsqlite/sqlite3.c vdbeIncrMergerSetThreads(pReadr->pIncr); pReadr 80429 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderIncrMergeInit(pReadr, INCRINIT_ROOT);