pTemplate 120550 ext/sqlite3/libsqlite/sqlite3.c static void whereLoopAdjustCost(const WhereLoop *p, WhereLoop *pTemplate){ pTemplate 120551 ext/sqlite3/libsqlite/sqlite3.c if( (pTemplate->wsFlags & WHERE_INDEXED)==0 ) return; pTemplate 120553 ext/sqlite3/libsqlite/sqlite3.c if( p->iTab!=pTemplate->iTab ) continue; pTemplate 120555 ext/sqlite3/libsqlite/sqlite3.c if( whereLoopCheaperProperSubset(p, pTemplate) ){ pTemplate 120559 ext/sqlite3/libsqlite/sqlite3.c pTemplate->rRun, pTemplate->nOut, p->rRun, p->nOut-1)); pTemplate 120560 ext/sqlite3/libsqlite/sqlite3.c pTemplate->rRun = p->rRun; pTemplate 120561 ext/sqlite3/libsqlite/sqlite3.c pTemplate->nOut = p->nOut - 1; pTemplate 120562 ext/sqlite3/libsqlite/sqlite3.c }else if( whereLoopCheaperProperSubset(pTemplate, p) ){ pTemplate 120566 ext/sqlite3/libsqlite/sqlite3.c pTemplate->rRun, pTemplate->nOut, p->rRun, p->nOut+1)); pTemplate 120567 ext/sqlite3/libsqlite/sqlite3.c pTemplate->rRun = p->rRun; pTemplate 120568 ext/sqlite3/libsqlite/sqlite3.c pTemplate->nOut = p->nOut + 1; pTemplate 120588 ext/sqlite3/libsqlite/sqlite3.c const WhereLoop *pTemplate pTemplate 120592 ext/sqlite3/libsqlite/sqlite3.c if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){ pTemplate 120601 ext/sqlite3/libsqlite/sqlite3.c assert( p->rSetup==0 || pTemplate->rSetup==0 pTemplate 120602 ext/sqlite3/libsqlite/sqlite3.c || p->rSetup==pTemplate->rSetup ); pTemplate 120607 ext/sqlite3/libsqlite/sqlite3.c assert( p->rSetup>=pTemplate->rSetup ); pTemplate 120613 ext/sqlite3/libsqlite/sqlite3.c && (pTemplate->nSkip)==0 pTemplate 120614 ext/sqlite3/libsqlite/sqlite3.c && (pTemplate->wsFlags & WHERE_INDEXED)!=0 pTemplate 120615 ext/sqlite3/libsqlite/sqlite3.c && (pTemplate->wsFlags & WHERE_COLUMN_EQ)!=0 pTemplate 120616 ext/sqlite3/libsqlite/sqlite3.c && (p->prereq & pTemplate->prereq)==pTemplate->prereq pTemplate 120626 ext/sqlite3/libsqlite/sqlite3.c if( (p->prereq & pTemplate->prereq)==p->prereq /* (1) */ pTemplate 120627 ext/sqlite3/libsqlite/sqlite3.c && p->rSetup<=pTemplate->rSetup /* (2a) */ pTemplate 120628 ext/sqlite3/libsqlite/sqlite3.c && p->rRun<=pTemplate->rRun /* (2b) */ pTemplate 120629 ext/sqlite3/libsqlite/sqlite3.c && p->nOut<=pTemplate->nOut /* (2c) */ pTemplate 120639 ext/sqlite3/libsqlite/sqlite3.c if( (p->prereq & pTemplate->prereq)==pTemplate->prereq /* (1) */ pTemplate 120640 ext/sqlite3/libsqlite/sqlite3.c && p->rRun>=pTemplate->rRun /* (2a) */ pTemplate 120641 ext/sqlite3/libsqlite/sqlite3.c && p->nOut>=pTemplate->nOut /* (2b) */ pTemplate 120643 ext/sqlite3/libsqlite/sqlite3.c assert( p->rSetup>=pTemplate->rSetup ); /* SETUP-INVARIANT above */ pTemplate 120674 ext/sqlite3/libsqlite/sqlite3.c static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){ pTemplate 120687 ext/sqlite3/libsqlite/sqlite3.c whereOrInsert(pBuilder->pOrSet, pTemplate->prereq, pTemplate->rRun, pTemplate 120688 ext/sqlite3/libsqlite/sqlite3.c pTemplate->nOut); pTemplate 120692 ext/sqlite3/libsqlite/sqlite3.c whereLoopPrint(pTemplate, pBuilder->pWC); pTemplate 120700 ext/sqlite3/libsqlite/sqlite3.c whereLoopAdjustCost(pWInfo->pLoops, pTemplate); pTemplate 120701 ext/sqlite3/libsqlite/sqlite3.c ppPrev = whereLoopFindLesser(&pWInfo->pLoops, pTemplate); pTemplate 120709 ext/sqlite3/libsqlite/sqlite3.c whereLoopPrint(pTemplate, pBuilder->pWC); pTemplate 120728 ext/sqlite3/libsqlite/sqlite3.c whereLoopPrint(pTemplate, pBuilder->pWC); pTemplate 120744 ext/sqlite3/libsqlite/sqlite3.c ppTail = whereLoopFindLesser(ppTail, pTemplate); pTemplate 120758 ext/sqlite3/libsqlite/sqlite3.c whereLoopXfer(db, p, pTemplate);