pMerger 78221 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger; /* Or here, if bUseThreads==0 */ pMerger 78296 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger; /* Merge engine thread reads data from */ pMerger 79085 ext/sqlite3/libsqlite/sqlite3.c static void vdbeMergeEngineFree(MergeEngine *pMerger){ pMerger 79087 ext/sqlite3/libsqlite/sqlite3.c if( pMerger ){ pMerger 79088 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pMerger->nTree; i++){ pMerger 79089 ext/sqlite3/libsqlite/sqlite3.c vdbePmaReaderClear(&pMerger->aReadr[i]); pMerger 79092 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pMerger); pMerger 79108 ext/sqlite3/libsqlite/sqlite3.c vdbeMergeEngineFree(pIncr->pMerger); pMerger 79127 ext/sqlite3/libsqlite/sqlite3.c vdbeMergeEngineFree(pSorter->pMerger); pMerger 79128 ext/sqlite3/libsqlite/sqlite3.c pSorter->pMerger = 0; pMerger 79498 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger, /* The merge engine to advance to the next row */ pMerger 79502 ext/sqlite3/libsqlite/sqlite3.c int iPrev = pMerger->aTree[1];/* Index of PmaReader to advance */ pMerger 79503 ext/sqlite3/libsqlite/sqlite3.c SortSubtask *pTask = pMerger->pTask; pMerger 79506 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderNext(&pMerger->aReadr[iPrev]); pMerger 79517 ext/sqlite3/libsqlite/sqlite3.c pReadr1 = &pMerger->aReadr[(iPrev & 0xFFFE)]; pMerger 79518 ext/sqlite3/libsqlite/sqlite3.c pReadr2 = &pMerger->aReadr[(iPrev | 0x0001)]; pMerger 79520 ext/sqlite3/libsqlite/sqlite3.c for(i=(pMerger->nTree+iPrev)/2; i>0; i=i/2){ pMerger 79549 ext/sqlite3/libsqlite/sqlite3.c pMerger->aTree[i] = (int)(pReadr1 - pMerger->aReadr); pMerger 79550 ext/sqlite3/libsqlite/sqlite3.c pReadr2 = &pMerger->aReadr[ pMerger->aTree[i ^ 0x0001] ]; pMerger 79554 ext/sqlite3/libsqlite/sqlite3.c pMerger->aTree[i] = (int)(pReadr2 - pMerger->aReadr); pMerger 79555 ext/sqlite3/libsqlite/sqlite3.c pReadr1 = &pMerger->aReadr[ pMerger->aTree[i ^ 0x0001] ]; pMerger 79558 ext/sqlite3/libsqlite/sqlite3.c *pbEof = (pMerger->aReadr[pMerger->aTree[1]].pFd==0); pMerger 79761 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger = pIncr->pMerger; pMerger 79770 ext/sqlite3/libsqlite/sqlite3.c PmaReader *pReader = &pMerger->aReadr[ pMerger->aTree[1] ]; pMerger 79782 ext/sqlite3/libsqlite/sqlite3.c assert( pIncr->pMerger->pTask==pTask ); pMerger 79783 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeMergeEngineStep(pIncr->pMerger, &dummy); pMerger 79872 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger, /* The MergeEngine that the IncrMerger will control */ pMerger 79879 ext/sqlite3/libsqlite/sqlite3.c pIncr->pMerger = pMerger; pMerger 79884 ext/sqlite3/libsqlite/sqlite3.c vdbeMergeEngineFree(pMerger); pMerger 79908 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger, /* Merge engine containing PmaReaders to compare */ pMerger 79917 ext/sqlite3/libsqlite/sqlite3.c assert( iOut<pMerger->nTree && iOut>0 ); pMerger 79919 ext/sqlite3/libsqlite/sqlite3.c if( iOut>=(pMerger->nTree/2) ){ pMerger 79920 ext/sqlite3/libsqlite/sqlite3.c i1 = (iOut - pMerger->nTree/2) * 2; pMerger 79923 ext/sqlite3/libsqlite/sqlite3.c i1 = pMerger->aTree[iOut*2]; pMerger 79924 ext/sqlite3/libsqlite/sqlite3.c i2 = pMerger->aTree[iOut*2+1]; pMerger 79927 ext/sqlite3/libsqlite/sqlite3.c p1 = &pMerger->aReadr[i1]; pMerger 79928 ext/sqlite3/libsqlite/sqlite3.c p2 = &pMerger->aReadr[i2]; pMerger 79935 ext/sqlite3/libsqlite/sqlite3.c SortSubtask *pTask = pMerger->pTask; pMerger 79949 ext/sqlite3/libsqlite/sqlite3.c pMerger->aTree[iOut] = iRes; pMerger 79991 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger, /* MergeEngine to initialize */ pMerger 79996 ext/sqlite3/libsqlite/sqlite3.c int nTree = pMerger->nTree; pMerger 80002 ext/sqlite3/libsqlite/sqlite3.c assert( pMerger->pTask==0 ); pMerger 80003 ext/sqlite3/libsqlite/sqlite3.c pMerger->pTask = pTask; pMerger 80014 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderNext(&pMerger->aReadr[nTree-i-1]); pMerger 80016 ext/sqlite3/libsqlite/sqlite3.c rc = vdbePmaReaderIncrInit(&pMerger->aReadr[i], INCRINIT_NORMAL); pMerger 80021 ext/sqlite3/libsqlite/sqlite3.c for(i=pMerger->nTree-1; i>0; i--){ pMerger 80022 ext/sqlite3/libsqlite/sqlite3.c vdbeMergeEngineCompare(pMerger, i); pMerger 80069 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); pMerger 80267 ext/sqlite3/libsqlite/sqlite3.c p = pReadr->pIncr->pMerger; pMerger 80326 ext/sqlite3/libsqlite/sqlite3.c MergeEngine *pMerger = 0; /* New level-0 PMA merger */ pMerger 80330 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeMergeEngineLevel0(pTask, nReader, &iReadOff, &pMerger); pMerger 80332 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeSorterAddToTree(pTask, nDepth, iSeq++, pRoot, pMerger); pMerger 80435 ext/sqlite3/libsqlite/sqlite3.c pSorter->pMerger = pMain; pMerger 80502 ext/sqlite3/libsqlite/sqlite3.c assert( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0) ); pMerger 80504 ext/sqlite3/libsqlite/sqlite3.c assert( pSorter->pReader==0 || pSorter->pMerger==0 ); pMerger 80506 ext/sqlite3/libsqlite/sqlite3.c assert( pSorter->bUseThreads==1 || pSorter->pMerger ); pMerger 80514 ext/sqlite3/libsqlite/sqlite3.c assert( pSorter->pMerger!=0 ); pMerger 80515 ext/sqlite3/libsqlite/sqlite3.c assert( pSorter->pMerger->pTask==(&pSorter->aTask[0]) ); pMerger 80516 ext/sqlite3/libsqlite/sqlite3.c rc = vdbeMergeEngineStep(pSorter->pMerger, pbEof); pMerger 80546 ext/sqlite3/libsqlite/sqlite3.c pReader = &pSorter->pMerger->aReadr[pSorter->pMerger->aTree[1]];