pTask            78156 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask;        /* Used by this thread only */
pTask            78295 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask;             /* Task that owns this merger */
pTask            78511 ext/sqlite3/libsqlite/sqlite3.c static int vdbeSorterMapFile(SortSubtask *pTask, SorterFile *pFile, u8 **pp){
pTask            78513 ext/sqlite3/libsqlite/sqlite3.c   if( pFile->iEof<=(i64)(pTask->pSorter->db->nMaxSorterMmap) ){
pTask            78529 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Task context */
pTask            78547 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbeSorterMapFile(pTask, pFile, &pReadr->aMap);
pTask            78549 ext/sqlite3/libsqlite/sqlite3.c     int pgsz = pTask->pSorter->pgsz;
pTask            78587 ext/sqlite3/libsqlite/sqlite3.c             pIncr->pTask, pReadr, &pIncr->aFile[0], pIncr->iStartOff
pTask            78623 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Task context */
pTask            78636 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbePmaReaderSeek(pTask, pReadr, pFile, iStart);
pTask            78656 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Subtask context (for pKeyInfo) */
pTask            78661 ext/sqlite3/libsqlite/sqlite3.c   UnpackedRecord *r2 = pTask->pUnpacked;
pTask            78663 ext/sqlite3/libsqlite/sqlite3.c     sqlite3VdbeRecordUnpack(pTask->pSorter->pKeyInfo, nKey2, pKey2, r2);
pTask            78683 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Subtask context (for pKeyInfo) */
pTask            78688 ext/sqlite3/libsqlite/sqlite3.c   UnpackedRecord *r2 = pTask->pUnpacked;
pTask            78690 ext/sqlite3/libsqlite/sqlite3.c     sqlite3VdbeRecordUnpack(pTask->pSorter->pKeyInfo, nKey2, pKey2, r2);
pTask            78702 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Subtask context (for pKeyInfo) */
pTask            78724 ext/sqlite3/libsqlite/sqlite3.c     if( pTask->pSorter->pKeyInfo->nField>1 ){
pTask            78726 ext/sqlite3/libsqlite/sqlite3.c           pTask, pbKey2Cached, pKey1, nKey1, pKey2, nKey2
pTask            78730 ext/sqlite3/libsqlite/sqlite3.c     if( pTask->pSorter->pKeyInfo->aSortOrder[0] ){
pTask            78743 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Subtask context (for pKeyInfo) */
pTask            78794 ext/sqlite3/libsqlite/sqlite3.c     if( pTask->pSorter->pKeyInfo->nField>1 ){
pTask            78796 ext/sqlite3/libsqlite/sqlite3.c           pTask, pbKey2Cached, pKey1, nKey1, pKey2, nKey2
pTask            78799 ext/sqlite3/libsqlite/sqlite3.c   }else if( pTask->pSorter->pKeyInfo->aSortOrder[0] ){
pTask            78883 ext/sqlite3/libsqlite/sqlite3.c       SortSubtask *pTask = &pSorter->aTask[i];
pTask            78884 ext/sqlite3/libsqlite/sqlite3.c       pTask->pSorter = pSorter;
pTask            78933 ext/sqlite3/libsqlite/sqlite3.c static void vdbeSortSubtaskCleanup(sqlite3 *db, SortSubtask *pTask){
pTask            78934 ext/sqlite3/libsqlite/sqlite3.c   sqlite3DbFree(db, pTask->pUnpacked);
pTask            78938 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->list.aMemory ){
pTask            78939 ext/sqlite3/libsqlite/sqlite3.c     sqlite3_free(pTask->list.aMemory);
pTask            78943 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->list.aMemory==0 );
pTask            78944 ext/sqlite3/libsqlite/sqlite3.c     vdbeSorterRecordFree(0, pTask->list.pList);
pTask            78946 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->file.pFd ){
pTask            78947 ext/sqlite3/libsqlite/sqlite3.c     sqlite3OsCloseFree(pTask->file.pFd);
pTask            78949 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->file2.pFd ){
pTask            78950 ext/sqlite3/libsqlite/sqlite3.c     sqlite3OsCloseFree(pTask->file2.pFd);
pTask            78952 ext/sqlite3/libsqlite/sqlite3.c   memset(pTask, 0, sizeof(SortSubtask));
pTask            78956 ext/sqlite3/libsqlite/sqlite3.c static void vdbeSorterWorkDebug(SortSubtask *pTask, const char *zEvent){
pTask            78958 ext/sqlite3/libsqlite/sqlite3.c   int iTask = (pTask - pTask->pSorter->aTask);
pTask            78959 ext/sqlite3/libsqlite/sqlite3.c   sqlite3OsCurrentTimeInt64(pTask->pSorter->db->pVfs, &t);
pTask            78968 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,
pTask            78972 ext/sqlite3/libsqlite/sqlite3.c   int iTask = (pTask - pTask->pSorter->aTask);
pTask            78973 ext/sqlite3/libsqlite/sqlite3.c   sqlite3OsCurrentTimeInt64(pTask->pSorter->db->pVfs, &t);
pTask            78977 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,
pTask            78983 ext/sqlite3/libsqlite/sqlite3.c     sqlite3OsCurrentTimeInt64(pTask->pSorter->db->pVfs, &t);
pTask            78998 ext/sqlite3/libsqlite/sqlite3.c static int vdbeSorterJoinThread(SortSubtask *pTask){
pTask            79000 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->pThread ){
pTask            79002 ext/sqlite3/libsqlite/sqlite3.c     int bDone = pTask->bDone;
pTask            79005 ext/sqlite3/libsqlite/sqlite3.c     vdbeSorterBlockDebug(pTask, !bDone, "enter");
pTask            79006 ext/sqlite3/libsqlite/sqlite3.c     (void)sqlite3ThreadJoin(pTask->pThread, &pRet);
pTask            79007 ext/sqlite3/libsqlite/sqlite3.c     vdbeSorterBlockDebug(pTask, !bDone, "exit");
pTask            79009 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->bDone==1 );
pTask            79010 ext/sqlite3/libsqlite/sqlite3.c     pTask->bDone = 0;
pTask            79011 ext/sqlite3/libsqlite/sqlite3.c     pTask->pThread = 0;
pTask            79020 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Thread will use this task object */
pTask            79024 ext/sqlite3/libsqlite/sqlite3.c   assert( pTask->pThread==0 && pTask->bDone==0 );
pTask            79025 ext/sqlite3/libsqlite/sqlite3.c   return sqlite3ThreadCreate(&pTask->pThread, xTask, pIn);
pTask            79044 ext/sqlite3/libsqlite/sqlite3.c     SortSubtask *pTask = &pSorter->aTask[i];
pTask            79045 ext/sqlite3/libsqlite/sqlite3.c     int rc2 = vdbeSorterJoinThread(pTask);
pTask            79052 ext/sqlite3/libsqlite/sqlite3.c # define vdbeSorterJoinThread(pTask) SQLITE_OK
pTask            79075 ext/sqlite3/libsqlite/sqlite3.c     pNew->pTask = 0;
pTask            79103 ext/sqlite3/libsqlite/sqlite3.c       vdbeSorterJoinThread(pIncr->pTask);
pTask            79130 ext/sqlite3/libsqlite/sqlite3.c     SortSubtask *pTask = &pSorter->aTask[i];
pTask            79131 ext/sqlite3/libsqlite/sqlite3.c     vdbeSortSubtaskCleanup(db, pTask);
pTask            79132 ext/sqlite3/libsqlite/sqlite3.c     pTask->pSorter = pSorter;
pTask            79215 ext/sqlite3/libsqlite/sqlite3.c static int vdbeSortAllocUnpacked(SortSubtask *pTask){
pTask            79216 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->pUnpacked==0 ){
pTask            79218 ext/sqlite3/libsqlite/sqlite3.c     pTask->pUnpacked = sqlite3VdbeAllocUnpackedRecord(
pTask            79219 ext/sqlite3/libsqlite/sqlite3.c         pTask->pSorter->pKeyInfo, 0, 0, &pFree
pTask            79221 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->pUnpacked==(UnpackedRecord*)pFree );
pTask            79223 ext/sqlite3/libsqlite/sqlite3.c     pTask->pUnpacked->nField = pTask->pSorter->pKeyInfo->nField;
pTask            79224 ext/sqlite3/libsqlite/sqlite3.c     pTask->pUnpacked->errCode = 0;
pTask            79235 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Calling thread context */
pTask            79246 ext/sqlite3/libsqlite/sqlite3.c     res = pTask->xCompare(
pTask            79247 ext/sqlite3/libsqlite/sqlite3.c         pTask, &bCached, SRVAL(p1), p1->nVal, SRVAL(p2), p2->nVal
pTask            79283 ext/sqlite3/libsqlite/sqlite3.c static int vdbeSorterSort(SortSubtask *pTask, SorterList *pList){
pTask            79289 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbeSortAllocUnpacked(pTask);
pTask            79293 ext/sqlite3/libsqlite/sqlite3.c   pTask->xCompare = vdbeSorterGetCompare(pTask->pSorter);
pTask            79315 ext/sqlite3/libsqlite/sqlite3.c       vdbeSorterMerge(pTask, p, aSlot[i], &p);
pTask            79324 ext/sqlite3/libsqlite/sqlite3.c     vdbeSorterMerge(pTask, p, aSlot[i], &p);
pTask            79329 ext/sqlite3/libsqlite/sqlite3.c   assert( pTask->pUnpacked->errCode==SQLITE_OK 
pTask            79330 ext/sqlite3/libsqlite/sqlite3.c        || pTask->pUnpacked->errCode==SQLITE_NOMEM 
pTask            79332 ext/sqlite3/libsqlite/sqlite3.c   return pTask->pUnpacked->errCode;
pTask            79433 ext/sqlite3/libsqlite/sqlite3.c static int vdbeSorterListToPMA(SortSubtask *pTask, SorterList *pList){
pTask            79434 ext/sqlite3/libsqlite/sqlite3.c   sqlite3 *db = pTask->pSorter->db;
pTask            79441 ext/sqlite3/libsqlite/sqlite3.c   i64 iSz = pList->szPMA + sqlite3VarintLen(pList->szPMA) + pTask->file.iEof;
pTask            79444 ext/sqlite3/libsqlite/sqlite3.c   vdbeSorterWorkDebug(pTask, "enter");
pTask            79449 ext/sqlite3/libsqlite/sqlite3.c   if( pTask->file.pFd==0 ){
pTask            79450 ext/sqlite3/libsqlite/sqlite3.c     rc = vdbeSorterOpenTempFile(db, 0, &pTask->file.pFd);
pTask            79451 ext/sqlite3/libsqlite/sqlite3.c     assert( rc!=SQLITE_OK || pTask->file.pFd );
pTask            79452 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->file.iEof==0 );
pTask            79453 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->nPMA==0 );
pTask            79458 ext/sqlite3/libsqlite/sqlite3.c     vdbeSorterExtendFile(db, pTask->file.pFd, pTask->file.iEof+pList->szPMA+9);
pTask            79463 ext/sqlite3/libsqlite/sqlite3.c     rc = vdbeSorterSort(pTask, pList);
pTask            79470 ext/sqlite3/libsqlite/sqlite3.c     vdbePmaWriterInit(pTask->file.pFd, &writer, pTask->pSorter->pgsz,
pTask            79471 ext/sqlite3/libsqlite/sqlite3.c                       pTask->file.iEof);
pTask            79472 ext/sqlite3/libsqlite/sqlite3.c     pTask->nPMA++;
pTask            79481 ext/sqlite3/libsqlite/sqlite3.c     rc = vdbePmaWriterFinish(&writer, &pTask->file.iEof);
pTask            79484 ext/sqlite3/libsqlite/sqlite3.c   vdbeSorterWorkDebug(pTask, "exit");
pTask            79486 ext/sqlite3/libsqlite/sqlite3.c   assert( rc!=SQLITE_OK || pTask->file.iEof==iSz );
pTask            79503 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask = pMerger->pTask;
pTask            79528 ext/sqlite3/libsqlite/sqlite3.c         iRes = pTask->xCompare(pTask, &bCached,
pTask            79561 ext/sqlite3/libsqlite/sqlite3.c   return (rc==SQLITE_OK ? pTask->pUnpacked->errCode : rc);
pTask            79569 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask = (SortSubtask*)pCtx;
pTask            79571 ext/sqlite3/libsqlite/sqlite3.c   assert( pTask->bDone==0 );
pTask            79572 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbeSorterListToPMA(pTask, &pTask->list);
pTask            79573 ext/sqlite3/libsqlite/sqlite3.c   pTask->bDone = 1;
pTask            79589 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask = 0;    /* Thread context used to create new PMA */
pTask            79606 ext/sqlite3/libsqlite/sqlite3.c     pTask = &pSorter->aTask[iTest];
pTask            79607 ext/sqlite3/libsqlite/sqlite3.c     if( pTask->bDone ){
pTask            79608 ext/sqlite3/libsqlite/sqlite3.c       rc = vdbeSorterJoinThread(pTask);
pTask            79610 ext/sqlite3/libsqlite/sqlite3.c     if( rc!=SQLITE_OK || pTask->pThread==0 ) break;
pTask            79619 ext/sqlite3/libsqlite/sqlite3.c       u8 *aMem = pTask->list.aMemory;
pTask            79620 ext/sqlite3/libsqlite/sqlite3.c       void *pCtx = (void*)pTask;
pTask            79622 ext/sqlite3/libsqlite/sqlite3.c       assert( pTask->pThread==0 && pTask->bDone==0 );
pTask            79623 ext/sqlite3/libsqlite/sqlite3.c       assert( pTask->list.pList==0 );
pTask            79624 ext/sqlite3/libsqlite/sqlite3.c       assert( pTask->list.aMemory==0 || pSorter->list.aMemory!=0 );
pTask            79626 ext/sqlite3/libsqlite/sqlite3.c       pSorter->iPrev = (u8)(pTask - pSorter->aTask);
pTask            79627 ext/sqlite3/libsqlite/sqlite3.c       pTask->list = pSorter->list;
pTask            79638 ext/sqlite3/libsqlite/sqlite3.c       rc = vdbeSorterCreateThread(pTask, vdbeSorterFlushThread, pCtx);
pTask            79760 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask = pIncr->pTask;
pTask            79765 ext/sqlite3/libsqlite/sqlite3.c   vdbeSorterPopulateDebug(pTask, "enter");
pTask            79767 ext/sqlite3/libsqlite/sqlite3.c   vdbePmaWriterInit(pOut->pFd, &writer, pTask->pSorter->pgsz, iStart);
pTask            79782 ext/sqlite3/libsqlite/sqlite3.c     assert( pIncr->pMerger->pTask==pTask );
pTask            79788 ext/sqlite3/libsqlite/sqlite3.c   vdbeSorterPopulateDebug(pTask, "exit");
pTask            79800 ext/sqlite3/libsqlite/sqlite3.c   pIncr->pTask->bDone = 1;
pTask            79810 ext/sqlite3/libsqlite/sqlite3.c   return vdbeSorterCreateThread(pIncr->pTask, vdbeIncrPopulateThread, p);
pTask            79836 ext/sqlite3/libsqlite/sqlite3.c     rc = vdbeSorterJoinThread(pIncr->pTask);
pTask            79871 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,     /* The thread that will be using the new IncrMerger */
pTask            79880 ext/sqlite3/libsqlite/sqlite3.c     pIncr->pTask = pTask;
pTask            79881 ext/sqlite3/libsqlite/sqlite3.c     pIncr->mxSz = MAX(pTask->pSorter->mxKeysize+9,pTask->pSorter->mxPmaSize/2);
pTask            79882 ext/sqlite3/libsqlite/sqlite3.c     pTask->file2.iEof += pIncr->mxSz;
pTask            79896 ext/sqlite3/libsqlite/sqlite3.c   pIncr->pTask->file2.iEof -= pIncr->mxSz;
pTask            79935 ext/sqlite3/libsqlite/sqlite3.c     SortSubtask *pTask = pMerger->pTask;
pTask            79938 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->pUnpacked!=0 );  /* from vdbeSortSubtaskMain() */
pTask            79939 ext/sqlite3/libsqlite/sqlite3.c     res = pTask->xCompare(
pTask            79940 ext/sqlite3/libsqlite/sqlite3.c         pTask, &bCached, p1->aKey, p1->nKey, p2->aKey, p2->nKey
pTask            79990 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Thread that will run pMerger */
pTask            80002 ext/sqlite3/libsqlite/sqlite3.c   assert( pMerger->pTask==0 );
pTask            80003 ext/sqlite3/libsqlite/sqlite3.c   pMerger->pTask = pTask;
pTask            80024 ext/sqlite3/libsqlite/sqlite3.c   return pTask->pUnpacked->errCode;
pTask            80063 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask = pIncr->pTask;
pTask            80064 ext/sqlite3/libsqlite/sqlite3.c   sqlite3 *db = pTask->pSorter->db;
pTask            80069 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode);
pTask            80085 ext/sqlite3/libsqlite/sqlite3.c       if( pTask->file2.pFd==0 ){
pTask            80086 ext/sqlite3/libsqlite/sqlite3.c         assert( pTask->file2.iEof>0 );
pTask            80087 ext/sqlite3/libsqlite/sqlite3.c         rc = vdbeSorterOpenTempFile(db, pTask->file2.iEof, &pTask->file2.pFd);
pTask            80088 ext/sqlite3/libsqlite/sqlite3.c         pTask->file2.iEof = 0;
pTask            80091 ext/sqlite3/libsqlite/sqlite3.c         pIncr->aFile[1].pFd = pTask->file2.pFd;
pTask            80092 ext/sqlite3/libsqlite/sqlite3.c         pIncr->iStartOff = pTask->file2.iEof;
pTask            80093 ext/sqlite3/libsqlite/sqlite3.c         pTask->file2.iEof += mxSz;
pTask            80132 ext/sqlite3/libsqlite/sqlite3.c   pReader->pIncr->pTask->bDone = 1;
pTask            80156 ext/sqlite3/libsqlite/sqlite3.c       rc = vdbeSorterCreateThread(pIncr->pTask, vdbePmaReaderBgIncrInit, pCtx);
pTask            80179 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Sorter task to read from */
pTask            80195 ext/sqlite3/libsqlite/sqlite3.c     rc = vdbePmaReaderInit(pTask, &pTask->file, iOff, pReadr, &nDummy);
pTask            80236 ext/sqlite3/libsqlite/sqlite3.c   SortSubtask *pTask,             /* Task context */
pTask            80248 ext/sqlite3/libsqlite/sqlite3.c   rc = vdbeIncrMergerNew(pTask, pLeaf, &pIncr);
pTask            80263 ext/sqlite3/libsqlite/sqlite3.c         rc = vdbeIncrMergerNew(pTask, pNew, &pReadr->pIncr);
pTask            80311 ext/sqlite3/libsqlite/sqlite3.c     SortSubtask *pTask = &pSorter->aTask[iTask];
pTask            80312 ext/sqlite3/libsqlite/sqlite3.c     assert( pTask->nPMA>0 || SQLITE_MAX_WORKER_THREADS>0 );
pTask            80313 ext/sqlite3/libsqlite/sqlite3.c     if( SQLITE_MAX_WORKER_THREADS==0 || pTask->nPMA ){
pTask            80315 ext/sqlite3/libsqlite/sqlite3.c       int nDepth = vdbeSorterTreeDepth(pTask->nPMA);
pTask            80318 ext/sqlite3/libsqlite/sqlite3.c       if( pTask->nPMA<=SORTER_MAX_MERGE_COUNT ){
pTask            80319 ext/sqlite3/libsqlite/sqlite3.c         rc = vdbeMergeEngineLevel0(pTask, pTask->nPMA, &iReadOff, &pRoot);
pTask            80325 ext/sqlite3/libsqlite/sqlite3.c         for(i=0; i<pTask->nPMA && rc==SQLITE_OK; i += SORTER_MAX_MERGE_COUNT){
pTask            80329 ext/sqlite3/libsqlite/sqlite3.c           nReader = MIN(pTask->nPMA - i, SORTER_MAX_MERGE_COUNT);
pTask            80330 ext/sqlite3/libsqlite/sqlite3.c           rc = vdbeMergeEngineLevel0(pTask, nReader, &iReadOff, &pMerger);
pTask            80332 ext/sqlite3/libsqlite/sqlite3.c             rc = vdbeSorterAddToTree(pTask, nDepth, iSeq++, pRoot, pMerger);
pTask            80340 ext/sqlite3/libsqlite/sqlite3.c           rc = vdbeIncrMergerNew(pTask, pRoot, &pMain->aReadr[iTask].pIncr);
pTask            80405 ext/sqlite3/libsqlite/sqlite3.c               assert( pIncr->pTask!=pLast );
pTask            80420 ext/sqlite3/libsqlite/sqlite3.c                 (p->pIncr->pTask==&pSorter->aTask[iTask])             /* a */
pTask            80515 ext/sqlite3/libsqlite/sqlite3.c       assert( pSorter->pMerger->pTask==(&pSorter->aTask[0]) );