Lines Matching refs:pMerger
323 MergeEngine *pMerger; /* Or here, if bUseThreads==0 */ member
398 MergeEngine *pMerger; /* Merge engine thread reads data from */ member
1200 static void vdbeMergeEngineFree(MergeEngine *pMerger){ in vdbeMergeEngineFree() argument
1202 if( pMerger ){ in vdbeMergeEngineFree()
1203 for(i=0; i<pMerger->nTree; i++){ in vdbeMergeEngineFree()
1204 vdbePmaReaderClear(&pMerger->aReadr[i]); in vdbeMergeEngineFree()
1207 sqlite3_free(pMerger); in vdbeMergeEngineFree()
1223 vdbeMergeEngineFree(pIncr->pMerger); in vdbeIncrFree()
1242 vdbeMergeEngineFree(pSorter->pMerger); in sqlite3VdbeSorterReset()
1243 pSorter->pMerger = 0; in sqlite3VdbeSorterReset()
1613 MergeEngine *pMerger, /* The merge engine to advance to the next row */ in vdbeMergeEngineStep() argument
1617 int iPrev = pMerger->aTree[1];/* Index of PmaReader to advance */ in vdbeMergeEngineStep()
1618 SortSubtask *pTask = pMerger->pTask; in vdbeMergeEngineStep()
1621 rc = vdbePmaReaderNext(&pMerger->aReadr[iPrev]); in vdbeMergeEngineStep()
1632 pReadr1 = &pMerger->aReadr[(iPrev & 0xFFFE)]; in vdbeMergeEngineStep()
1633 pReadr2 = &pMerger->aReadr[(iPrev | 0x0001)]; in vdbeMergeEngineStep()
1635 for(i=(pMerger->nTree+iPrev)/2; i>0; i=i/2){ in vdbeMergeEngineStep()
1664 pMerger->aTree[i] = (int)(pReadr1 - pMerger->aReadr); in vdbeMergeEngineStep()
1665 pReadr2 = &pMerger->aReadr[ pMerger->aTree[i ^ 0x0001] ]; in vdbeMergeEngineStep()
1669 pMerger->aTree[i] = (int)(pReadr2 - pMerger->aReadr); in vdbeMergeEngineStep()
1670 pReadr1 = &pMerger->aReadr[ pMerger->aTree[i ^ 0x0001] ]; in vdbeMergeEngineStep()
1673 *pbEof = (pMerger->aReadr[pMerger->aTree[1]].pFd==0); in vdbeMergeEngineStep()
1885 MergeEngine *pMerger = pIncr->pMerger; in vdbeIncrPopulate() local
1894 PmaReader *pReader = &pMerger->aReadr[ pMerger->aTree[1] ]; in vdbeIncrPopulate()
1906 assert( pIncr->pMerger->pTask==pTask ); in vdbeIncrPopulate()
1907 rc = vdbeMergeEngineStep(pIncr->pMerger, &dummy); in vdbeIncrPopulate()
1996 MergeEngine *pMerger, /* The MergeEngine that the IncrMerger will control */ in vdbeIncrMergerNew() argument
2003 pIncr->pMerger = pMerger; in vdbeIncrMergerNew()
2008 vdbeMergeEngineFree(pMerger); in vdbeIncrMergerNew()
2033 MergeEngine *pMerger, /* Merge engine containing PmaReaders to compare */ in vdbeMergeEngineCompare() argument
2042 assert( iOut<pMerger->nTree && iOut>0 ); in vdbeMergeEngineCompare()
2044 if( iOut>=(pMerger->nTree/2) ){ in vdbeMergeEngineCompare()
2045 i1 = (iOut - pMerger->nTree/2) * 2; in vdbeMergeEngineCompare()
2048 i1 = pMerger->aTree[iOut*2]; in vdbeMergeEngineCompare()
2049 i2 = pMerger->aTree[iOut*2+1]; in vdbeMergeEngineCompare()
2052 p1 = &pMerger->aReadr[i1]; in vdbeMergeEngineCompare()
2053 p2 = &pMerger->aReadr[i2]; in vdbeMergeEngineCompare()
2060 SortSubtask *pTask = pMerger->pTask; in vdbeMergeEngineCompare()
2074 pMerger->aTree[iOut] = iRes; in vdbeMergeEngineCompare()
2116 MergeEngine *pMerger, /* MergeEngine to initialize */ in vdbeMergeEngineInit() argument
2125 assert( pMerger!=0 ); in vdbeMergeEngineInit()
2131 assert( pMerger->pTask==0 ); in vdbeMergeEngineInit()
2132 pMerger->pTask = pTask; in vdbeMergeEngineInit()
2134 nTree = pMerger->nTree; in vdbeMergeEngineInit()
2144 rc = vdbePmaReaderNext(&pMerger->aReadr[nTree-i-1]); in vdbeMergeEngineInit()
2146 rc = vdbePmaReaderIncrInit(&pMerger->aReadr[i], INCRINIT_NORMAL); in vdbeMergeEngineInit()
2151 for(i=pMerger->nTree-1; i>0; i--){ in vdbeMergeEngineInit()
2152 vdbeMergeEngineCompare(pMerger, i); in vdbeMergeEngineInit()
2199 rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); in vdbePmaReaderIncrMergeInit()
2397 p = pReadr->pIncr->pMerger; in vdbeSorterAddToTree()
2456 MergeEngine *pMerger = 0; /* New level-0 PMA merger */ in vdbeSorterMergeTreeBuild() local
2460 rc = vdbeMergeEngineLevel0(pTask, nReader, &iReadOff, &pMerger); in vdbeSorterMergeTreeBuild()
2462 rc = vdbeSorterAddToTree(pTask, nDepth, iSeq++, pRoot, pMerger); in vdbeSorterMergeTreeBuild()
2565 pSorter->pMerger = pMain; in vdbeSorterSetupMerge()
2640 assert( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0) ); in sqlite3VdbeSorterNext()
2642 assert( pSorter->pReader==0 || pSorter->pMerger==0 ); in sqlite3VdbeSorterNext()
2644 assert( pSorter->bUseThreads==1 || pSorter->pMerger ); in sqlite3VdbeSorterNext()
2653 assert( pSorter->pMerger!=0 ); in sqlite3VdbeSorterNext()
2654 assert( pSorter->pMerger->pTask==(&pSorter->aTask[0]) ); in sqlite3VdbeSorterNext()
2655 rc = vdbeMergeEngineStep(pSorter->pMerger, &res); in sqlite3VdbeSorterNext()
2685 pReader = &pSorter->pMerger->aReadr[pSorter->pMerger->aTree[1]]; in vdbeSorterRowkey()