Lines Matching refs:pTemplate
2355 static void whereLoopAdjustCost(const WhereLoop *p, WhereLoop *pTemplate){ in whereLoopAdjustCost() argument
2356 if( (pTemplate->wsFlags & WHERE_INDEXED)==0 ) return; in whereLoopAdjustCost()
2358 if( p->iTab!=pTemplate->iTab ) continue; in whereLoopAdjustCost()
2360 if( whereLoopCheaperProperSubset(p, pTemplate) ){ in whereLoopAdjustCost()
2364 pTemplate->rRun, pTemplate->nOut, in whereLoopAdjustCost()
2365 MIN(p->rRun, pTemplate->rRun), in whereLoopAdjustCost()
2366 MIN(p->nOut - 1, pTemplate->nOut))); in whereLoopAdjustCost()
2367 pTemplate->rRun = MIN(p->rRun, pTemplate->rRun); in whereLoopAdjustCost()
2368 pTemplate->nOut = MIN(p->nOut - 1, pTemplate->nOut); in whereLoopAdjustCost()
2369 }else if( whereLoopCheaperProperSubset(pTemplate, p) ){ in whereLoopAdjustCost()
2373 pTemplate->rRun, pTemplate->nOut, in whereLoopAdjustCost()
2374 MAX(p->rRun, pTemplate->rRun), in whereLoopAdjustCost()
2375 MAX(p->nOut + 1, pTemplate->nOut))); in whereLoopAdjustCost()
2376 pTemplate->rRun = MAX(p->rRun, pTemplate->rRun); in whereLoopAdjustCost()
2377 pTemplate->nOut = MAX(p->nOut + 1, pTemplate->nOut); in whereLoopAdjustCost()
2398 const WhereLoop *pTemplate in whereLoopFindLesser() argument
2402 if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){ in whereLoopFindLesser()
2411 assert( p->rSetup==0 || pTemplate->rSetup==0 in whereLoopFindLesser()
2412 || p->rSetup==pTemplate->rSetup ); in whereLoopFindLesser()
2417 assert( p->rSetup>=pTemplate->rSetup ); in whereLoopFindLesser()
2423 && (pTemplate->nSkip)==0 in whereLoopFindLesser()
2424 && (pTemplate->wsFlags & WHERE_INDEXED)!=0 in whereLoopFindLesser()
2425 && (pTemplate->wsFlags & WHERE_COLUMN_EQ)!=0 in whereLoopFindLesser()
2426 && (p->prereq & pTemplate->prereq)==pTemplate->prereq in whereLoopFindLesser()
2436 if( (p->prereq & pTemplate->prereq)==p->prereq /* (1) */ in whereLoopFindLesser()
2437 && p->rSetup<=pTemplate->rSetup /* (2a) */ in whereLoopFindLesser()
2438 && p->rRun<=pTemplate->rRun /* (2b) */ in whereLoopFindLesser()
2439 && p->nOut<=pTemplate->nOut /* (2c) */ in whereLoopFindLesser()
2449 if( (p->prereq & pTemplate->prereq)==pTemplate->prereq /* (1) */ in whereLoopFindLesser()
2450 && p->rRun>=pTemplate->rRun /* (2a) */ in whereLoopFindLesser()
2451 && p->nOut>=pTemplate->nOut /* (2b) */ in whereLoopFindLesser()
2453 assert( p->rSetup>=pTemplate->rSetup ); /* SETUP-INVARIANT above */ in whereLoopFindLesser()
2484 static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){ in whereLoopInsert() argument
2498 whereLoopAdjustCost(pWInfo->pLoops, pTemplate); in whereLoopInsert()
2504 if( pTemplate->nLTerm ){ in whereLoopInsert()
2509 whereOrInsert(pBuilder->pOrSet, pTemplate->prereq, pTemplate->rRun, in whereLoopInsert()
2510 pTemplate->nOut); in whereLoopInsert()
2514 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC); in whereLoopInsert()
2523 ppPrev = whereLoopFindLesser(&pWInfo->pLoops, pTemplate); in whereLoopInsert()
2531 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC); in whereLoopInsert()
2552 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC); in whereLoopInsert()
2568 ppTail = whereLoopFindLesser(ppTail, pTemplate); in whereLoopInsert()
2582 rc = whereLoopXfer(db, p, pTemplate); in whereLoopInsert()