Lines Matching refs:pExpr
353 && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_OuterON)) in disableTerm()
493 if( pLoop->aLTerm[i]->pExpr==pX ){ in removeUnindexableInClauseTerms()
497 if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */ in removeUnindexableInClauseTerms()
498 pRhs = sqlite3ExprListAppend(pParse, pRhs, pOrigRhs->a[iField].pExpr); in removeUnindexableInClauseTerms()
499 pOrigRhs->a[iField].pExpr = 0; in removeUnindexableInClauseTerms()
500 assert( pOrigLhs->a[iField].pExpr!=0 ); in removeUnindexableInClauseTerms()
501 pLhs = sqlite3ExprListAppend(pParse, pLhs, pOrigLhs->a[iField].pExpr); in removeUnindexableInClauseTerms()
502 pOrigLhs->a[iField].pExpr = 0; in removeUnindexableInClauseTerms()
513 Expr *p = pLhs->a[0].pExpr; in removeUnindexableInClauseTerms()
514 pLhs->a[0].pExpr = 0; in removeUnindexableInClauseTerms()
567 Expr *pX = pTerm->pExpr; in codeEqualityTerm()
600 if( pLoop->aLTerm[i] && pLoop->aLTerm[i]->pExpr==pX ){ in codeEqualityTerm()
607 if( pLoop->aLTerm[i]->pExpr==pX ) nEq++; in codeEqualityTerm()
614 Expr *pExpr = pTerm->pExpr; in codeEqualityTerm() local
615 if( pExpr->iTable==0 || !ExprHasProperty(pExpr, EP_Subrtn) ){ in codeEqualityTerm()
621 pExpr->iTable = iTab; in codeEqualityTerm()
629 pX = pExpr; in codeEqualityTerm()
660 if( pLoop->aLTerm[i]->pExpr==pX ){ in codeEqualityTerm()
842 if( pTerm->pExpr->flags & EP_xIsSelect ){ in codeAllEqualityTerms()
850 Expr *pRight = pTerm->pExpr->pRight; in codeAllEqualityTerms()
926 static int codeCursorHintCheckExpr(Walker *pWalker, Expr *pExpr){ in codeCursorHintCheckExpr() argument
929 if( pExpr->op==TK_COLUMN in codeCursorHintCheckExpr()
930 && pExpr->iTable==pHint->iTabCur in codeCursorHintCheckExpr()
931 && sqlite3TableColumnToIndex(pHint->pIdx, pExpr->iColumn)<0 in codeCursorHintCheckExpr()
953 static int codeCursorHintIsOrFunction(Walker *pWalker, Expr *pExpr){ in codeCursorHintIsOrFunction() argument
954 if( pExpr->op==TK_IS in codeCursorHintIsOrFunction()
955 || pExpr->op==TK_ISNULL || pExpr->op==TK_ISNOT in codeCursorHintIsOrFunction()
956 || pExpr->op==TK_NOTNULL || pExpr->op==TK_CASE in codeCursorHintIsOrFunction()
959 }else if( pExpr->op==TK_FUNCTION ){ in codeCursorHintIsOrFunction()
962 if( 0==sqlite3IsLikeFunction(pWalker->pParse->db, pExpr, &d1, d2) ){ in codeCursorHintIsOrFunction()
988 static int codeCursorHintFixExpr(Walker *pWalker, Expr *pExpr){ in codeCursorHintFixExpr() argument
991 if( pExpr->op==TK_COLUMN ){ in codeCursorHintFixExpr()
992 if( pExpr->iTable!=pHint->iTabCur ){ in codeCursorHintFixExpr()
994 sqlite3ExprCode(pWalker->pParse, pExpr, reg); in codeCursorHintFixExpr()
995 pExpr->op = TK_REGISTER; in codeCursorHintFixExpr()
996 pExpr->iTable = reg; in codeCursorHintFixExpr()
998 pExpr->iTable = pHint->iIdxCur; in codeCursorHintFixExpr()
999 pExpr->iColumn = sqlite3TableColumnToIndex(pHint->pIdx, pExpr->iColumn); in codeCursorHintFixExpr()
1000 assert( pExpr->iColumn>=0 ); in codeCursorHintFixExpr()
1002 }else if( pExpr->op==TK_AGG_FUNCTION ){ in codeCursorHintFixExpr()
1027 Expr *pExpr = 0; in codeCursorHint() local
1074 Expr *pExpr = pTerm->pExpr; in codeCursorHint() local
1075 if( !ExprHasProperty(pExpr, EP_OuterON) in codeCursorHint()
1076 || pExpr->w.iJoin!=pTabItem->iCursor in codeCursorHint()
1080 sqlite3WalkExpr(&sWalker, pTerm->pExpr); in codeCursorHint()
1084 if( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) continue; 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()
1110 if( pExpr!=0 ){ in codeCursorHint()
1112 sqlite3WalkExpr(&sWalker, pExpr); in codeCursorHint()
1115 (const char*)pExpr, P4_EXPR); in codeCursorHint()
1211 sqlite3ExprCode(pParse, pList->a[i].pExpr, iReg+i); in codeExprOrVector()
1239 Expr *pExpr; in whereApplyPartialIndexConstraints() local
1241 pExpr = pTerm->pExpr; in whereApplyPartialIndexConstraints()
1242 if( sqlite3ExprCompare(0, pExpr, pTruth, iTabCur)==0 ){ in whereApplyPartialIndexConstraints()
1284 assert( pTerm->pExpr!=0 ); in filterPullDown()
1428 sqlite3CodeRhsOfIN(pParse, pTerm->pExpr, iTab); in sqlite3WhereCodeOneLoopStart()
1435 Expr *pRight = pTerm->pExpr->pRight; in sqlite3WhereCodeOneLoopStart()
1500 Expr *pLeft = pTerm->pExpr->pLeft; in sqlite3WhereCodeOneLoopStart()
1506 pCompare->pLeft = pLeft->x.pList->a[iFld-1].pExpr; in sqlite3WhereCodeOneLoopStart()
1544 assert( pTerm->pExpr!=0 ); in sqlite3WhereCodeOneLoopStart()
1602 pX = pStart->pExpr; in sqlite3WhereCodeOneLoopStart()
1636 pX = pEnd->pExpr; in sqlite3WhereCodeOneLoopStart()
1843 Expr *pRight = pRangeStart->pExpr->pRight; in sqlite3WhereCodeOneLoopStart()
1944 Expr *pRight = pRangeEnd->pExpr->pRight; in sqlite3WhereCodeOneLoopStart()
2230 Expr *pExpr = pWC->a[iTerm].pExpr; in sqlite3WhereCodeOneLoopStart() local
2239 if( ExprHasProperty(pExpr, EP_Subquery) ) continue; /* tag-20220303a */ in sqlite3WhereCodeOneLoopStart()
2240 pExpr = sqlite3ExprDup(db, pExpr, 0); in sqlite3WhereCodeOneLoopStart()
2241 pAndExpr = sqlite3ExprAnd(pParse, pAndExpr, pExpr); in sqlite3WhereCodeOneLoopStart()
2262 Expr *pOrExpr = pOrTerm->pExpr; /* Current OR clause term */ in sqlite3WhereCodeOneLoopStart()
2472 pE = pTerm->pExpr; in sqlite3WhereCodeOneLoopStart()
2549 pE = pTerm->pExpr; in sqlite3WhereCodeOneLoopStart()
2564 && ExprUseXSelect(pAlt->pExpr) in sqlite3WhereCodeOneLoopStart()
2565 && (pAlt->pExpr->x.pSelect->pEList->nExpr>1) in sqlite3WhereCodeOneLoopStart()
2573 sEAlt = *pAlt->pExpr; in sqlite3WhereCodeOneLoopStart()
2660 assert( pTerm->pExpr ); in sqlite3WhereCodeOneLoopStart()
2661 sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL); in sqlite3WhereCodeOneLoopStart()
2723 if( ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) ) continue; in sqlite3WhereRightJoinLoop()
2725 sqlite3ExprDup(pParse->db, pTerm->pExpr, 0)); in sqlite3WhereRightJoinLoop()