Lines Matching refs:pTerm

349 static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm){  in disableTerm()  argument
351 assert( pTerm!=0 ); in disableTerm()
352 while( (pTerm->wtFlags & TERM_CODED)==0 in disableTerm()
353 && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_OuterON)) in disableTerm()
354 && (pLevel->notReady & pTerm->prereqAll)==0 in disableTerm()
356 if( nLoop && (pTerm->wtFlags & TERM_LIKE)!=0 ){ in disableTerm()
357 pTerm->wtFlags |= TERM_LIKECOND; in disableTerm()
359 pTerm->wtFlags |= TERM_CODED; in disableTerm()
364 sqlite3WhereTermPrint(pTerm, (int)(pTerm - (pTerm->pWC->a))); in disableTerm()
367 if( pTerm->iParent<0 ) break; in disableTerm()
368 pTerm = &pTerm->pWC->a[pTerm->iParent]; in disableTerm()
369 assert( pTerm!=0 ); in disableTerm()
370 pTerm->nChild--; in disableTerm()
371 if( pTerm->nChild!=0 ) break; in disableTerm()
561 WhereTerm *pTerm, /* The term of the WHERE clause to be coded */ in codeEqualityTerm() argument
567 Expr *pX = pTerm->pExpr; in codeEqualityTerm()
571 assert( pLevel->pWLoop->aLTerm[iEq]==pTerm ); in codeEqualityTerm()
601 disableTerm(pLevel, pTerm); in codeEqualityTerm()
614 Expr *pExpr = pTerm->pExpr; in codeEqualityTerm()
652 sqlite3WhereRealloc(pTerm->pWC->pWInfo, in codeEqualityTerm()
709 || (pTerm->eOperator & WO_EQUIV)==0 in codeEqualityTerm()
711 disableTerm(pLevel, pTerm); in codeEqualityTerm()
773 WhereTerm *pTerm; /* A single constraint term */ in codeAllEqualityTerms() local
823 pTerm = pLoop->aLTerm[j]; in codeAllEqualityTerms()
824 assert( pTerm!=0 ); in codeAllEqualityTerms()
827 testcase( (pTerm->wtFlags & TERM_CODED)!=0 ); in codeAllEqualityTerms()
828 testcase( pTerm->wtFlags & TERM_VIRTUAL ); in codeAllEqualityTerms()
829 r1 = codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, regBase+j); in codeAllEqualityTerms()
840 pTerm = pLoop->aLTerm[j]; in codeAllEqualityTerms()
841 if( pTerm->eOperator & WO_IN ){ in codeAllEqualityTerms()
842 if( pTerm->pExpr->flags & EP_xIsSelect ){ in codeAllEqualityTerms()
849 }else if( (pTerm->eOperator & WO_ISNULL)==0 ){ in codeAllEqualityTerms()
850 Expr *pRight = pTerm->pExpr->pRight; in codeAllEqualityTerms()
851 if( (pTerm->wtFlags & TERM_IS)==0 && sqlite3ExprCanBeNull(pRight) ){ in codeAllEqualityTerms()
891 WhereTerm *pTerm /* The upper or lower bound just coded */ in whereLikeOptimizationStringFixup() argument
893 if( pTerm->wtFlags & TERM_LIKEOPT ){ in whereLikeOptimizationStringFixup()
899 || pTerm->pWC->pWInfo->pParse->db->mallocFailed ); in whereLikeOptimizationStringFixup()
1031 WhereTerm *pTerm; in codeCursorHint() local
1047 pTerm = &pWC->a[i]; in codeCursorHint()
1048 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; in codeCursorHint()
1049 if( pTerm->prereqAll & pLevel->notReady ) continue; in codeCursorHint()
1074 Expr *pExpr = pTerm->pExpr; in codeCursorHint()
1080 sqlite3WalkExpr(&sWalker, pTerm->pExpr); in codeCursorHint()
1084 if( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) continue; in codeCursorHint()
1090 if( pLoop->u.btree.nEq==0 && pTerm!=pEndRange ){ in codeCursorHint()
1091 for(j=0; j<pLoop->nLTerm && pLoop->aLTerm[j]!=pTerm; j++){} in codeCursorHint()
1096 if( sqlite3ExprContainsSubquery(pTerm->pExpr) ) continue; in codeCursorHint()
1103 sqlite3WalkExpr(&sWalker, pTerm->pExpr); in codeCursorHint()
1108 pExpr = sqlite3ExprAnd(pParse, pExpr, sqlite3ExprDup(db, pTerm->pExpr, 0)); in codeCursorHint()
1233 WhereTerm *pTerm; in whereApplyPartialIndexConstraints() local
1238 for(i=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){ in whereApplyPartialIndexConstraints()
1240 if( pTerm->wtFlags & TERM_CODED ) continue; in whereApplyPartialIndexConstraints()
1241 pExpr = pTerm->pExpr; in whereApplyPartialIndexConstraints()
1243 pTerm->wtFlags |= TERM_CODED; in whereApplyPartialIndexConstraints()
1281 WhereTerm *pTerm = pLoop->aLTerm[0]; in filterPullDown() local
1283 assert( pTerm!=0 ); in filterPullDown()
1284 assert( pTerm->pExpr!=0 ); in filterPullDown()
1285 testcase( pTerm->wtFlags & TERM_VIRTUAL ); in filterPullDown()
1287 regRowid = codeEqualityTerm(pParse, pTerm, pLevel, 0, 0, regRowid); in filterPullDown()
1330 WhereTerm *pTerm; /* A WHERE clause term */ in sqlite3WhereCodeOneLoopStart() local
1422 pTerm = pLoop->aLTerm[j]; in sqlite3WhereCodeOneLoopStart()
1423 if( NEVER(pTerm==0) ) continue; in sqlite3WhereCodeOneLoopStart()
1424 if( pTerm->eOperator & WO_IN ){ in sqlite3WhereCodeOneLoopStart()
1428 sqlite3CodeRhsOfIN(pParse, pTerm->pExpr, iTab); in sqlite3WhereCodeOneLoopStart()
1431 codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, iTarget); in sqlite3WhereCodeOneLoopStart()
1435 Expr *pRight = pTerm->pExpr->pRight; in sqlite3WhereCodeOneLoopStart()
1437 if( pTerm->eMatchOp==SQLITE_INDEX_CONSTRAINT_OFFSET in sqlite3WhereCodeOneLoopStart()
1440 assert( pTerm->eOperator==WO_AUX ); in sqlite3WhereCodeOneLoopStart()
1464 pTerm = pLoop->aLTerm[j]; in sqlite3WhereCodeOneLoopStart()
1466 disableTerm(pLevel, pTerm); in sqlite3WhereCodeOneLoopStart()
1469 if( (pTerm->eOperator & WO_IN)!=0 in sqlite3WhereCodeOneLoopStart()
1499 int iFld = pTerm->u.x.iField; in sqlite3WhereCodeOneLoopStart()
1500 Expr *pLeft = pTerm->pExpr->pLeft; in sqlite3WhereCodeOneLoopStart()
1542 pTerm = pLoop->aLTerm[0]; in sqlite3WhereCodeOneLoopStart()
1543 assert( pTerm!=0 ); in sqlite3WhereCodeOneLoopStart()
1544 assert( pTerm->pExpr!=0 ); in sqlite3WhereCodeOneLoopStart()
1545 testcase( pTerm->wtFlags & TERM_VIRTUAL ); in sqlite3WhereCodeOneLoopStart()
1547 iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg); in sqlite3WhereCodeOneLoopStart()
1577 pTerm = pStart; in sqlite3WhereCodeOneLoopStart()
1579 pEnd = pTerm; in sqlite3WhereCodeOneLoopStart()
2143 pTerm = pLoop->aLTerm[0]; in sqlite3WhereCodeOneLoopStart()
2144 assert( pTerm!=0 ); in sqlite3WhereCodeOneLoopStart()
2145 assert( pTerm->eOperator & WO_OR ); in sqlite3WhereCodeOneLoopStart()
2146 assert( (pTerm->wtFlags & TERM_ORINFO)!=0 ); in sqlite3WhereCodeOneLoopStart()
2147 pOrWc = &pTerm->u.pOrInfo->wc; in sqlite3WhereCodeOneLoopStart()
2231 if( &pWC->a[iTerm] == pTerm ) continue; in sqlite3WhereCodeOneLoopStart()
2413 if( !untestedTerms ) disableTerm(pLevel, pTerm); in sqlite3WhereCodeOneLoopStart()
2460 for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){ in sqlite3WhereCodeOneLoopStart()
2463 testcase( pTerm->wtFlags & TERM_VIRTUAL ); in sqlite3WhereCodeOneLoopStart()
2464 testcase( pTerm->wtFlags & TERM_CODED ); in sqlite3WhereCodeOneLoopStart()
2465 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; in sqlite3WhereCodeOneLoopStart()
2466 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){ in sqlite3WhereCodeOneLoopStart()
2472 pE = pTerm->pExpr; in sqlite3WhereCodeOneLoopStart()
2494 if( iLoop<3 && (pTerm->wtFlags & TERM_VARSELECT) ){ in sqlite3WhereCodeOneLoopStart()
2499 if( (pTerm->wtFlags & TERM_LIKECOND)!=0 ){ in sqlite3WhereCodeOneLoopStart()
2519 pWC->nTerm-j, pTerm, iLoop)); in sqlite3WhereCodeOneLoopStart()
2523 sqlite3WhereTermPrint(pTerm, pWC->nTerm-j); in sqlite3WhereCodeOneLoopStart()
2528 pTerm->wtFlags |= TERM_CODED; in sqlite3WhereCodeOneLoopStart()
2541 for(pTerm=pWC->a, j=pWC->nBase; j>0; j--, pTerm++){ in sqlite3WhereCodeOneLoopStart()
2544 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; in sqlite3WhereCodeOneLoopStart()
2545 if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) continue; in sqlite3WhereCodeOneLoopStart()
2546 if( (pTerm->eOperator & WO_EQUIV)==0 ) continue; in sqlite3WhereCodeOneLoopStart()
2547 if( pTerm->leftCursor!=iCur ) continue; in sqlite3WhereCodeOneLoopStart()
2549 pE = pTerm->pExpr; in sqlite3WhereCodeOneLoopStart()
2553 sqlite3WhereTermPrint(pTerm, pWC->nTerm-j); in sqlite3WhereCodeOneLoopStart()
2557 assert( (pTerm->prereqRight & pLevel->notReady)!=0 ); in sqlite3WhereCodeOneLoopStart()
2558 assert( (pTerm->eOperator & (WO_OR|WO_AND))==0 ); in sqlite3WhereCodeOneLoopStart()
2559 pAlt = sqlite3WhereFindTerm(pWC, iCur, pTerm->u.x.leftColumn, notReady, in sqlite3WhereCodeOneLoopStart()
2651 for(pTerm=pWC->a, j=0; j<pWC->nBase; j++, pTerm++){ in sqlite3WhereCodeOneLoopStart()
2652 testcase( pTerm->wtFlags & TERM_VIRTUAL ); in sqlite3WhereCodeOneLoopStart()
2653 testcase( pTerm->wtFlags & TERM_CODED ); in sqlite3WhereCodeOneLoopStart()
2654 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; in sqlite3WhereCodeOneLoopStart()
2655 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){ in sqlite3WhereCodeOneLoopStart()
2660 assert( pTerm->pExpr ); in sqlite3WhereCodeOneLoopStart()
2661 sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL); in sqlite3WhereCodeOneLoopStart()
2662 pTerm->wtFlags |= TERM_CODED; in sqlite3WhereCodeOneLoopStart()
2716 WhereTerm *pTerm = &pWC->a[k]; in sqlite3WhereRightJoinLoop() local
2717 if( (pTerm->wtFlags & (TERM_VIRTUAL|TERM_SLICE))!=0 in sqlite3WhereRightJoinLoop()
2718 && pTerm->eOperator!=WO_ROWVAL in sqlite3WhereRightJoinLoop()
2722 if( pTerm->prereqAll & ~mAll ) continue; in sqlite3WhereRightJoinLoop()
2723 if( ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) ) continue; in sqlite3WhereRightJoinLoop()
2725 sqlite3ExprDup(pParse->db, pTerm->pExpr, 0)); in sqlite3WhereRightJoinLoop()