Lines Matching refs:pIncr

106893   IncrMerger *pIncr;          /* Incremental merger */  member
107006 vdbeIncrFree(pReadr->pIncr);
107172 assert( pReadr->pIncr==0 || pReadr->pIncr->bEof==0 );
107217 IncrMerger *pIncr = pReadr->pIncr; local
107219 if( pIncr ){
107220 rc = vdbeIncrSwap(pIncr);
107221 if( rc==SQLITE_OK && pIncr->bEof==0 ){
107223 pIncr->pTask, pReadr, &pIncr->aFile[0], pIncr->iStartOff
107758 static void vdbeIncrFree(IncrMerger *pIncr){ argument
107759 if( pIncr ){
107761 if( pIncr->bUseThread ){
107762 vdbeSorterJoinThread(pIncr->pTask);
107763 if( pIncr->aFile[0].pFd ) sqlite3OsCloseFree(pIncr->aFile[0].pFd);
107764 if( pIncr->aFile[1].pFd ) sqlite3OsCloseFree(pIncr->aFile[1].pFd);
107767 vdbeMergeEngineFree(pIncr->pMerger);
107768 sqlite3_free(pIncr);
108437 static int vdbeIncrPopulate(IncrMerger *pIncr){ argument
108440 i64 iStart = pIncr->iStartOff;
108441 SorterFile *pOut = &pIncr->aFile[1];
108442 SortSubtask *pTask = pIncr->pTask;
108443 MergeEngine *pMerger = pIncr->pMerger;
108445 assert( pIncr->bEof==0 );
108459 if( (iEof + nKey + sqlite3VarintLen(nKey))>(iStart + pIncr->mxSz) ) break;
108464 assert( pIncr->pMerger->pTask==pTask );
108465 rc = vdbeMergeEngineStep(pIncr->pMerger, &dummy);
108480 IncrMerger *pIncr = (IncrMerger*)pCtx; local
108481 void *pRet = SQLITE_INT_TO_PTR( vdbeIncrPopulate(pIncr) );
108482 pIncr->pTask->bDone = 1;
108489 static int vdbeIncrBgPopulate(IncrMerger *pIncr){ argument
108490 void *p = (void*)pIncr;
108491 assert( pIncr->bUseThread );
108492 return vdbeSorterCreateThread(pIncr->pTask, vdbeIncrPopulateThread, p);
108513 static int vdbeIncrSwap(IncrMerger *pIncr){ argument
108517 if( pIncr->bUseThread ){
108518 rc = vdbeSorterJoinThread(pIncr->pTask);
108521 SorterFile f0 = pIncr->aFile[0];
108522 pIncr->aFile[0] = pIncr->aFile[1];
108523 pIncr->aFile[1] = f0;
108527 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){
108528 pIncr->bEof = 1;
108530 rc = vdbeIncrBgPopulate(pIncr);
108536 rc = vdbeIncrPopulate(pIncr);
108537 pIncr->aFile[0] = pIncr->aFile[1];
108538 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){
108539 pIncr->bEof = 1;
108558 IncrMerger *pIncr = *ppOut = (IncrMerger*) local
108559 (sqlite3FaultSim(100) ? 0 : sqlite3MallocZero(sizeof(*pIncr)));
108560 if( pIncr ){
108561 pIncr->pMerger = pMerger;
108562 pIncr->pTask = pTask;
108563 pIncr->mxSz = MAX(pTask->pSorter->mxKeysize+9,pTask->pSorter->mxPmaSize/2);
108564 pTask->file2.iEof += pIncr->mxSz;
108577 static void vdbeIncrMergerSetThreads(IncrMerger *pIncr){ argument
108578 pIncr->bUseThread = 1;
108579 pIncr->pTask->file2.iEof -= pIncr->mxSz;
108750 IncrMerger *pIncr = pReadr->pIncr; local
108751 SortSubtask *pTask = pIncr->pTask;
108757 rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode);
108763 int mxSz = pIncr->mxSz;
108765 if( pIncr->bUseThread ){
108766 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[0].pFd);
108768 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[1].pFd);
108779 pIncr->aFile[1].pFd = pTask->file2.pFd;
108780 pIncr->iStartOff = pTask->file2.iEof;
108787 if( rc==SQLITE_OK && pIncr->bUseThread ){
108799 rc = vdbeIncrPopulate(pIncr);
108820 pReader->pIncr->pTask->bDone = 1;
108837 IncrMerger *pIncr = pReadr->pIncr; /* Incremental merger */ local
108839 if( pIncr ){
108841 assert( pIncr->bUseThread==0 || eMode==INCRINIT_TASK );
108842 if( pIncr->bUseThread ){
108844 rc = vdbeSorterCreateThread(pIncr->pTask, vdbePmaReaderBgIncrInit, pCtx);
108934 IncrMerger *pIncr; local
108936 rc = vdbeIncrMergerNew(pTask, pLeaf, &pIncr);
108946 if( pReadr->pIncr==0 ){
108951 rc = vdbeIncrMergerNew(pTask, pNew, &pReadr->pIncr);
108955 p = pReadr->pIncr->pMerger;
108961 p->aReadr[iSeq % SORTER_MAX_MERGE_COUNT].pIncr = pIncr;
108963 vdbeIncrFree(pIncr);
109028 rc = vdbeIncrMergerNew(pTask, pRoot, &pMain->aReadr[iTask].pIncr);
109086 rc = vdbeIncrMergerNew(pLast, pMain, &pReadr->pIncr);
109088 vdbeIncrMergerSetThreads(pReadr->pIncr);
109090 IncrMerger *pIncr; local
109091 if( (pIncr = pMain->aReadr[iTask].pIncr) ){
109092 vdbeIncrMergerSetThreads(pIncr);
109093 assert( pIncr->pTask!=pLast );
109107 assert( p->pIncr==0 || (
109108 (p->pIncr->pTask==&pSorter->aTask[iTask]) /* a */
109109 && (iTask!=pSorter->nTask-1 || p->pIncr->bUseThread==0) /* b */