Lines Matching refs:pIncr

361   IncrMerger *pIncr;          /* Incremental merger */  member
473 vdbeIncrFree(pReadr->pIncr); in vdbePmaReaderClear()
638 assert( pReadr->pIncr==0 || pReadr->pIncr->bEof==0 ); in vdbePmaReaderSeek()
683 IncrMerger *pIncr = pReadr->pIncr; in vdbePmaReaderNext() local
685 if( pIncr ){ in vdbePmaReaderNext()
686 rc = vdbeIncrSwap(pIncr); in vdbePmaReaderNext()
687 if( rc==SQLITE_OK && pIncr->bEof==0 ){ in vdbePmaReaderNext()
689 pIncr->pTask, pReadr, &pIncr->aFile[0], pIncr->iStartOff in vdbePmaReaderNext()
1214 static void vdbeIncrFree(IncrMerger *pIncr){ in vdbeIncrFree() argument
1215 if( pIncr ){ in vdbeIncrFree()
1217 if( pIncr->bUseThread ){ in vdbeIncrFree()
1218 vdbeSorterJoinThread(pIncr->pTask); in vdbeIncrFree()
1219 if( pIncr->aFile[0].pFd ) sqlite3OsCloseFree(pIncr->aFile[0].pFd); in vdbeIncrFree()
1220 if( pIncr->aFile[1].pFd ) sqlite3OsCloseFree(pIncr->aFile[1].pFd); in vdbeIncrFree()
1223 vdbeMergeEngineFree(pIncr->pMerger); in vdbeIncrFree()
1224 sqlite3_free(pIncr); in vdbeIncrFree()
1879 static int vdbeIncrPopulate(IncrMerger *pIncr){ in vdbeIncrPopulate() argument
1882 i64 iStart = pIncr->iStartOff; in vdbeIncrPopulate()
1883 SorterFile *pOut = &pIncr->aFile[1]; in vdbeIncrPopulate()
1884 SortSubtask *pTask = pIncr->pTask; in vdbeIncrPopulate()
1885 MergeEngine *pMerger = pIncr->pMerger; in vdbeIncrPopulate()
1887 assert( pIncr->bEof==0 ); in vdbeIncrPopulate()
1901 if( (iEof + nKey + sqlite3VarintLen(nKey))>(iStart + pIncr->mxSz) ) break; in vdbeIncrPopulate()
1906 assert( pIncr->pMerger->pTask==pTask ); in vdbeIncrPopulate()
1907 rc = vdbeMergeEngineStep(pIncr->pMerger, &dummy); in vdbeIncrPopulate()
1922 IncrMerger *pIncr = (IncrMerger*)pCtx; in vdbeIncrPopulateThread() local
1923 void *pRet = SQLITE_INT_TO_PTR( vdbeIncrPopulate(pIncr) ); in vdbeIncrPopulateThread()
1924 pIncr->pTask->bDone = 1; in vdbeIncrPopulateThread()
1931 static int vdbeIncrBgPopulate(IncrMerger *pIncr){ in vdbeIncrBgPopulate() argument
1932 void *p = (void*)pIncr; in vdbeIncrBgPopulate()
1933 assert( pIncr->bUseThread ); in vdbeIncrBgPopulate()
1934 return vdbeSorterCreateThread(pIncr->pTask, vdbeIncrPopulateThread, p); in vdbeIncrBgPopulate()
1955 static int vdbeIncrSwap(IncrMerger *pIncr){ in vdbeIncrSwap() argument
1959 if( pIncr->bUseThread ){ in vdbeIncrSwap()
1960 rc = vdbeSorterJoinThread(pIncr->pTask); in vdbeIncrSwap()
1963 SorterFile f0 = pIncr->aFile[0]; in vdbeIncrSwap()
1964 pIncr->aFile[0] = pIncr->aFile[1]; in vdbeIncrSwap()
1965 pIncr->aFile[1] = f0; in vdbeIncrSwap()
1969 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){ in vdbeIncrSwap()
1970 pIncr->bEof = 1; in vdbeIncrSwap()
1972 rc = vdbeIncrBgPopulate(pIncr); in vdbeIncrSwap()
1978 rc = vdbeIncrPopulate(pIncr); in vdbeIncrSwap()
1979 pIncr->aFile[0] = pIncr->aFile[1]; in vdbeIncrSwap()
1980 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){ in vdbeIncrSwap()
1981 pIncr->bEof = 1; in vdbeIncrSwap()
2000 IncrMerger *pIncr = *ppOut = (IncrMerger*) in vdbeIncrMergerNew() local
2001 (sqlite3FaultSim(100) ? 0 : sqlite3MallocZero(sizeof(*pIncr))); in vdbeIncrMergerNew()
2002 if( pIncr ){ in vdbeIncrMergerNew()
2003 pIncr->pMerger = pMerger; in vdbeIncrMergerNew()
2004 pIncr->pTask = pTask; in vdbeIncrMergerNew()
2005 pIncr->mxSz = MAX(pTask->pSorter->mxKeysize+9,pTask->pSorter->mxPmaSize/2); in vdbeIncrMergerNew()
2006 pTask->file2.iEof += pIncr->mxSz; in vdbeIncrMergerNew()
2019 static void vdbeIncrMergerSetThreads(IncrMerger *pIncr){ in vdbeIncrMergerSetThreads() argument
2020 pIncr->bUseThread = 1; in vdbeIncrMergerSetThreads()
2021 pIncr->pTask->file2.iEof -= pIncr->mxSz; in vdbeIncrMergerSetThreads()
2192 IncrMerger *pIncr = pReadr->pIncr; in vdbePmaReaderIncrMergeInit() local
2193 SortSubtask *pTask = pIncr->pTask; in vdbePmaReaderIncrMergeInit()
2199 rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); in vdbePmaReaderIncrMergeInit()
2205 int mxSz = pIncr->mxSz; in vdbePmaReaderIncrMergeInit()
2207 if( pIncr->bUseThread ){ in vdbePmaReaderIncrMergeInit()
2208 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[0].pFd); in vdbePmaReaderIncrMergeInit()
2210 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[1].pFd); in vdbePmaReaderIncrMergeInit()
2221 pIncr->aFile[1].pFd = pTask->file2.pFd; in vdbePmaReaderIncrMergeInit()
2222 pIncr->iStartOff = pTask->file2.iEof; in vdbePmaReaderIncrMergeInit()
2229 if( rc==SQLITE_OK && pIncr->bUseThread ){ in vdbePmaReaderIncrMergeInit()
2241 rc = vdbeIncrPopulate(pIncr); in vdbePmaReaderIncrMergeInit()
2262 pReader->pIncr->pTask->bDone = 1; in vdbePmaReaderBgIncrInit()
2279 IncrMerger *pIncr = pReadr->pIncr; /* Incremental merger */ in vdbePmaReaderIncrInit() local
2281 if( pIncr ){ in vdbePmaReaderIncrInit()
2283 assert( pIncr->bUseThread==0 || eMode==INCRINIT_TASK ); in vdbePmaReaderIncrInit()
2284 if( pIncr->bUseThread ){ in vdbePmaReaderIncrInit()
2286 rc = vdbeSorterCreateThread(pIncr->pTask, vdbePmaReaderBgIncrInit, pCtx); in vdbePmaReaderIncrInit()
2376 IncrMerger *pIncr; in vdbeSorterAddToTree() local
2378 rc = vdbeIncrMergerNew(pTask, pLeaf, &pIncr); in vdbeSorterAddToTree()
2388 if( pReadr->pIncr==0 ){ in vdbeSorterAddToTree()
2393 rc = vdbeIncrMergerNew(pTask, pNew, &pReadr->pIncr); in vdbeSorterAddToTree()
2397 p = pReadr->pIncr->pMerger; in vdbeSorterAddToTree()
2403 p->aReadr[iSeq % SORTER_MAX_MERGE_COUNT].pIncr = pIncr; in vdbeSorterAddToTree()
2405 vdbeIncrFree(pIncr); in vdbeSorterAddToTree()
2470 rc = vdbeIncrMergerNew(pTask, pRoot, &pMain->aReadr[iTask].pIncr); in vdbeSorterMergeTreeBuild()
2528 rc = vdbeIncrMergerNew(pLast, pMain, &pReadr->pIncr); in vdbeSorterSetupMerge()
2530 vdbeIncrMergerSetThreads(pReadr->pIncr); in vdbeSorterSetupMerge()
2532 IncrMerger *pIncr; in vdbeSorterSetupMerge() local
2533 if( (pIncr = pMain->aReadr[iTask].pIncr) ){ in vdbeSorterSetupMerge()
2534 vdbeIncrMergerSetThreads(pIncr); in vdbeSorterSetupMerge()
2535 assert( pIncr->pTask!=pLast ); in vdbeSorterSetupMerge()
2549 assert( p->pIncr==0 || ( in vdbeSorterSetupMerge()
2550 (p->pIncr->pTask==&pSorter->aTask[iTask]) /* a */ in vdbeSorterSetupMerge()
2551 && (iTask!=pSorter->nTask-1 || p->pIncr->bUseThread==0) /* b */ in vdbeSorterSetupMerge()