Lines Matching refs:pExpr

331              || sqlite3ExprCompareSkip(pTerm->pExpr->pLeft,  in whereScanNext()
333 && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_OuterON)) in whereScanNext()
337 && (pX = whereRightSubexprIsColumn(pTerm->pExpr))!=0 in whereScanNext()
357 pX = pTerm->pExpr; in whereScanNext()
369 && (pX = pTerm->pExpr->pRight, ALWAYS(pX!=0)) in whereScanNext()
463 pScan->pIdxExpr = pIdx->aColExpr->a[j].pExpr; in whereScanInit()
545 Expr *p = sqlite3ExprSkipCollateAndLikely(pList->a[i].pExpr); in findIndexCol()
551 CollSeq *pColl = sqlite3ExprNNCollSeq(pParse, pList->a[i].pExpr); in findIndexCol()
610 Expr *p = sqlite3ExprSkipCollateAndLikely(pDistinct->a[i].pExpr); in isDistinctRedundant()
766 testcase( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) in constraintCompatibleWithOuterJoin()
767 testcase( ExprHasProperty(pTerm->pExpr, EP_InnerON) ); in constraintCompatibleWithOuterJoin()
768 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) in constraintCompatibleWithOuterJoin()
769 || pTerm->pExpr->w.iJoin != pSrc->iCursor in constraintCompatibleWithOuterJoin()
774 && ExprHasProperty(pTerm->pExpr, EP_InnerON) in constraintCompatibleWithOuterJoin()
807 if( !sqlite3IndexAffinityOk(pTerm->pExpr, aff) ) return 0; in termCanDriveIndex()
808 testcase( pTerm->pExpr->op==TK_IS ); in termCanDriveIndex()
865 Expr *pExpr = pTerm->pExpr; in constructAutomaticIndex() local
870 && sqlite3ExprIsTableConstraint(pExpr, pSrc) in constructAutomaticIndex()
873 sqlite3ExprDup(pParse->db, pExpr, 0)); in constructAutomaticIndex()
940 Expr *pX = pTerm->pExpr; in constructAutomaticIndex()
1107 Expr *pExpr = pTerm->pExpr; in sqlite3ConstructBloomFilter() local
1109 && sqlite3ExprIsTableConstraint(pExpr, pItem) in sqlite3ConstructBloomFilter()
1111 sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL); in sqlite3ConstructBloomFilter()
1230 Expr *pExpr = pOrderBy->a[i].pExpr; in allocateIndexInfo() local
1234 if( sqlite3ExprIsConstant(pExpr) ){ in allocateIndexInfo()
1242 if( pExpr->op==TK_COLUMN && pExpr->iTable==pSrc->iCursor ){ in allocateIndexInfo()
1243 assert( pExpr->iColumn>=XN_ROWID && pExpr->iColumn<pTab->nCol ); in allocateIndexInfo()
1249 if( pExpr->op==TK_COLLATE in allocateIndexInfo()
1250 && (pE2 = pExpr->pLeft)->op==TK_COLUMN in allocateIndexInfo()
1254 assert( !ExprHasProperty(pExpr, EP_IntValue) ); in allocateIndexInfo()
1255 assert( pExpr->u.zToken!=0 ); in allocateIndexInfo()
1257 pExpr->iColumn = pE2->iColumn; in allocateIndexInfo()
1261 if( sqlite3_stricmp(pExpr->u.zToken, zColl)==0 ) continue; in allocateIndexInfo()
1331 && sqlite3ExprIsVector(pTerm->pExpr->pRight) in allocateIndexInfo()
1345 Expr *pExpr = pOrderBy->a[i].pExpr; in allocateIndexInfo() local
1346 if( sqlite3ExprIsConstant(pExpr) ) continue; in allocateIndexInfo()
1347 assert( pExpr->op==TK_COLUMN in allocateIndexInfo()
1348 || (pExpr->op==TK_COLLATE && pExpr->pLeft->op==TK_COLUMN in allocateIndexInfo()
1349 && pExpr->iColumn==pExpr->pLeft->iColumn) ); in allocateIndexInfo()
1350 pIdxOrderBy[j].iColumn = pExpr->iColumn; in allocateIndexInfo()
1711 rc = sqlite3Stat4ValueFromExpr(pParse, pLower->pExpr->pRight, aff, &p1); in whereRangeSkipScanEst()
1715 rc = sqlite3Stat4ValueFromExpr(pParse, pUpper->pExpr->pRight, aff, &p2); in whereRangeSkipScanEst()
1877 Expr *pExpr = pLower->pExpr->pRight; in whereRangeScanEst() local
1878 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nBtm, nEq, &n); in whereRangeScanEst()
1882 if( sqlite3ExprVectorSize(pExpr)>n ) mask = (WO_LE|WO_LT); in whereRangeScanEst()
1894 Expr *pExpr = pUpper->pExpr->pRight; in whereRangeScanEst() local
1895 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nTop, nEq, &n); in whereRangeScanEst()
1899 if( sqlite3ExprVectorSize(pExpr)>n ) mask = (WO_LE|WO_LT); in whereRangeScanEst()
1985 Expr *pExpr, /* Expression for VALUE in the x=VALUE constraint */ in whereEqualScanEst() argument
2014 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, 1, nEq-1, &bOk); in whereEqualScanEst()
2063 rc = whereEqualScanEst(pParse, pBuilder, pList->a[i].pExpr, &nEst); in whereInScanEst()
2092 if( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) zType[2] = 'L'; in sqlite3WhereTermPrint()
2120 sqlite3TreeViewExpr(0, pTerm->pExpr, 0); in sqlite3WhereTermPrint()
2672 Expr *pRight = pTerm->pExpr->pRight; in whereLoopOutputAdjust()
2674 testcase( pTerm->pExpr->op==TK_IS ); in whereLoopOutputAdjust()
2717 int nCmp = sqlite3ExprVectorSize(pTerm->pExpr->pLeft); in whereRangeVectorLen()
2729 assert( ExprUseXList(pTerm->pExpr->pLeft) ); in whereRangeVectorLen()
2730 pLhs = pTerm->pExpr->pLeft->x.pList->a[i].pExpr; in whereRangeVectorLen()
2731 pRhs = pTerm->pExpr->pRight; in whereRangeVectorLen()
2733 pRhs = pRhs->x.pSelect->pEList->a[i].pExpr; in whereRangeVectorLen()
2735 pRhs = pRhs->x.pList->a[i].pExpr; in whereRangeVectorLen()
2892 Expr *pExpr = pTerm->pExpr; in whereLoopAddBtreeIndex() local
2893 if( ExprUseXSelect(pExpr) ){ in whereLoopAddBtreeIndex()
2904 if( pNew->aLTerm[i] && pNew->aLTerm[i]->pExpr==pExpr ) nIn = 0; in whereLoopAddBtreeIndex()
2906 }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){ in whereLoopAddBtreeIndex()
2908 nIn = sqlite3LogEst(pExpr->x.pList->nExpr); in whereLoopAddBtreeIndex()
3035 && ((eOp & WO_IN)==0 || ExprUseXList(pTerm->pExpr)) in whereLoopAddBtreeIndex()
3038 Expr *pExpr = pTerm->pExpr; in whereLoopAddBtreeIndex() local
3043 rc = whereEqualScanEst(pParse, pBuilder, pExpr->pRight, &nOut); in whereLoopAddBtreeIndex()
3045 rc = whereInScanEst(pParse, pBuilder, pExpr->x.pList, &nOut); in whereLoopAddBtreeIndex()
3197 Expr *pExpr = sqlite3ExprSkipCollateAndLikely(pOB->a[ii].pExpr); in indexMightHelpWithOrderBy() local
3198 if( NEVER(pExpr==0) ) continue; in indexMightHelpWithOrderBy()
3199 if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){ in indexMightHelpWithOrderBy()
3200 if( pExpr->iColumn<0 ) return 1; in indexMightHelpWithOrderBy()
3202 if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1; in indexMightHelpWithOrderBy()
3207 if( sqlite3ExprCompareSkip(pExpr,aColExpr->a[jj].pExpr,iCursor)==0 ){ in indexMightHelpWithOrderBy()
3237 Expr *pExpr; in whereUsablePartialIndex() local
3238 pExpr = pTerm->pExpr; in whereUsablePartialIndex()
3239 if( (!ExprHasProperty(pExpr, EP_OuterON) || pExpr->w.iJoin==iTab) in whereUsablePartialIndex()
3240 && ((jointype & JT_OUTER)==0 || ExprHasProperty(pExpr, EP_OuterON)) in whereUsablePartialIndex()
3241 && sqlite3ExprImpliesExpr(pParse, pExpr, pWhere, iTab) in whereUsablePartialIndex()
3272 static int whereIsCoveringIndexWalkCallback(Walker *pWalk, Expr *pExpr){ in whereIsCoveringIndexWalkCallback() argument
3277 if( pExpr->op!=TK_COLUMN && pExpr->op!=TK_AGG_COLUMN ) return WRC_Continue; in whereIsCoveringIndexWalkCallback()
3278 if( pExpr->iColumn<(BMS-1) ) return WRC_Continue; in whereIsCoveringIndexWalkCallback()
3279 if( pExpr->iTable!=pWalk->u.pCovIdxCk->iTabCur ) return WRC_Continue; in whereIsCoveringIndexWalkCallback()
3284 if( aiColumn[i]==pExpr->iColumn ) return WRC_Continue; in whereIsCoveringIndexWalkCallback()
3592 if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){ in whereLoopAddBtree()
3870 Expr *pX = pHidden->pWC->a[iTerm].pExpr; in sqlite3_vtab_collation()
3918 pH->pParse->db, pTerm->pExpr->pRight, ENC(pH->pParse->db), in sqlite3_vtab_rhs_value()
4451 pOBExpr = sqlite3ExprSkipCollateAndLikely(pOrderBy->a[i].pExpr); in wherePathSatisfiesOrderBy()
4469 CollSeq *pColl1 = sqlite3ExprNNCollSeq(pParse, pOrderBy->a[i].pExpr); in wherePathSatisfiesOrderBy()
4470 CollSeq *pColl2 = sqlite3ExprCompareCollSeq(pParse, pTerm->pExpr); in wherePathSatisfiesOrderBy()
4475 testcase( pTerm->pExpr->op==TK_IS ); in wherePathSatisfiesOrderBy()
4540 Expr *pX = pLoop->aLTerm[j]->pExpr; in wherePathSatisfiesOrderBy()
4542 if( pLoop->aLTerm[i]->pExpr==pX ){ in wherePathSatisfiesOrderBy()
4584 pOBExpr = sqlite3ExprSkipCollateAndLikely(pOrderBy->a[i].pExpr); in wherePathSatisfiesOrderBy()
4594 Expr *pIdxExpr = pIndex->aColExpr->a[j].pExpr; in wherePathSatisfiesOrderBy()
4600 pColl = sqlite3ExprNNCollSeq(pWInfo->pParse, pOrderBy->a[i].pExpr); in wherePathSatisfiesOrderBy()
4659 p = pOrderBy->a[i].pExpr; in wherePathSatisfiesOrderBy()
5273 static int exprNodeIsDeterministic(Walker *pWalker, Expr *pExpr){ in exprNodeIsDeterministic() argument
5274 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){ in exprNodeIsDeterministic()
5383 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON) in whereOmitNoopJoin()
5384 || pTerm->pExpr->w.iJoin!=pItem->iCursor in whereOmitNoopJoin()
5471 sqlite3ExprDelete(db, p->pExpr); in whereIndexedExprCleanup()
5499 Expr *pExpr; in whereAddIndexedExpr() local
5503 pExpr = pIdx->aColExpr->a[i].pExpr; in whereAddIndexedExpr()
5509 pExpr = sqlite3ColumnExpr(pTab, &pTab->aCol[j]); in whereAddIndexedExpr()
5514 if( sqlite3ExprIsConstant(pExpr) ) continue; in whereAddIndexedExpr()
5518 p->pExpr = sqlite3ExprDup(pParse->db, pExpr, 0); in whereAddIndexedExpr()
5794 if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){ in sqlite3WhereBegin()
5795 sqlite3ExprIfFalse(pParse, pT->pExpr, pWInfo->iBreak, SQLITE_JUMPIFNULL); in sqlite3WhereBegin()