Lines Matching refs:pExpr

419           sqlite3SetJoinExpr(p->x.pList->a[i].pExpr, iTable, joinFlag);  in sqlite3SetJoinExpr()
456 unsetJoinExpr(p->x.pList->a[i].pExpr, iTable, nullable); in unsetJoinExpr()
907 CollSeq *pColl = sqlite3ExprCollSeq(pParse, pEList->a[i].pExpr); in codeDistinct()
1031 Expr *pExpr = pItem->pExpr; in selectExprDefer() local
1033 if( pExpr->op==TK_COLUMN in selectExprDefer()
1034 && pExpr->iColumn>=0 in selectExprDefer()
1035 && ALWAYS( ExprUseYTab(pExpr) ) in selectExprDefer()
1036 && (pTab = pExpr->y.pTab)!=0 in selectExprDefer()
1038 && (pTab->aCol[pExpr->iColumn].colFlags & COLFLAG_SORTERREF)!=0 in selectExprDefer()
1042 if( pSort->aDefer[j].iCsr==pExpr->iTable ) break; in selectExprDefer()
1058 pNew->iTable = pExpr->iTable; in selectExprDefer()
1060 pNew->y.pTab = pExpr->y.pTab; in selectExprDefer()
1065 pSort->aDefer[nDefer].pTab = pExpr->y.pTab; in selectExprDefer()
1066 pSort->aDefer[nDefer].iCsr = pExpr->iTable; in selectExprDefer()
1567 pInfo->aColl[i-iStart] = sqlite3ExprNNCollSeq(pParse, pItem->pExpr); in sqlite3KeyInfoFromExprList()
1748 sqlite3ExprCode(pParse, aOutEx[i].pExpr, regRow+i); in generateSortTail()
1856 Expr *pExpr in columnTypeImpl() argument
1858 Expr *pExpr, in columnTypeImpl()
1872 assert( pExpr!=0 ); in columnTypeImpl()
1874 switch( pExpr->op ){ in columnTypeImpl()
1882 int iCol = pExpr->iColumn; /* Index of column in pTab */ in columnTypeImpl()
1885 for(j=0;j<pTabList->nSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++); in columnTypeImpl()
1915 assert( pTab && ExprUseYTab(pExpr) && pExpr->y.pTab==pTab ); in columnTypeImpl()
1933 Expr *p = pS->pEList->a[iCol].pExpr; in columnTypeImpl()
1977 assert( ExprUseXSelect(pExpr) ); in columnTypeImpl()
1978 pS = pExpr->x.pSelect; in columnTypeImpl()
1979 p = pS->pEList->a[0].pExpr; in columnTypeImpl()
2017 Expr *p = pEList->a[i].pExpr; in generateColumnTypes()
2104 Expr *p = pEList->a[i].pExpr; in sqlite3GenerateColumnNames()
2202 Expr *pColExpr = sqlite3ExprSkipCollateAndLikely(pX->pExpr); in sqlite3ColumnsFromExprList()
2305 p = a[i].pExpr; in sqlite3SelectAddColumnTypeAndCollation()
2473 pRet = sqlite3ExprCollSeq(pParse, p->pEList->a[iCol].pExpr); in multiSelectCollSeq()
2496 Expr *pTerm = pItem->pExpr; in multiSelectOrderByKeyInfo()
2504 pOrderBy->a[i].pExpr = in multiSelectOrderByKeyInfo()
3778 Expr *pExpr /* Expr in which substitution occurs */ in substExpr() argument
3780 if( pExpr==0 ) return 0; in substExpr()
3781 if( ExprHasProperty(pExpr, EP_OuterON|EP_InnerON) in substExpr()
3782 && pExpr->w.iJoin==pSubst->iTable in substExpr()
3784 testcase( ExprHasProperty(pExpr, EP_InnerON) ); in substExpr()
3785 pExpr->w.iJoin = pSubst->iNewTable; in substExpr()
3787 if( pExpr->op==TK_COLUMN in substExpr()
3788 && pExpr->iTable==pSubst->iTable in substExpr()
3789 && !ExprHasProperty(pExpr, EP_FixedCol) in substExpr()
3792 if( pExpr->iColumn<0 ){ in substExpr()
3793 pExpr->op = TK_NULL; in substExpr()
3798 int iColumn = pExpr->iColumn; in substExpr()
3799 Expr *pCopy = pSubst->pEList->a[iColumn].pExpr; in substExpr()
3802 assert( pExpr->pRight==0 ); in substExpr()
3820 return pExpr; in substExpr()
3825 if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){ in substExpr()
3826 sqlite3SetJoinExpr(pNew, pExpr->w.iJoin, in substExpr()
3827 pExpr->flags & (EP_OuterON|EP_InnerON)); in substExpr()
3829 sqlite3ExprDelete(db, pExpr); in substExpr()
3830 pExpr = pNew; in substExpr()
3831 if( pExpr->op==TK_TRUEFALSE ){ in substExpr()
3832 pExpr->u.iValue = sqlite3ExprTruthValue(pExpr); in substExpr()
3833 pExpr->op = TK_INTEGER; in substExpr()
3834 ExprSetProperty(pExpr, EP_IntValue); in substExpr()
3840 CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pExpr); in substExpr()
3842 pSubst->pCList->a[iColumn].pExpr in substExpr()
3844 if( pNat!=pColl || (pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE) ){ in substExpr()
3845 pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr, in substExpr()
3850 ExprClearProperty(pExpr, EP_Collate); in substExpr()
3854 if( pExpr->op==TK_IF_NULL_ROW && pExpr->iTable==pSubst->iTable ){ in substExpr()
3855 pExpr->iTable = pSubst->iNewTable; in substExpr()
3857 pExpr->pLeft = substExpr(pSubst, pExpr->pLeft); in substExpr()
3858 pExpr->pRight = substExpr(pSubst, pExpr->pRight); in substExpr()
3859 if( ExprUseXSelect(pExpr) ){ in substExpr()
3860 substSelect(pSubst, pExpr->x.pSelect, 1); in substExpr()
3862 substExprList(pSubst, pExpr->x.pList); in substExpr()
3865 if( ExprHasProperty(pExpr, EP_WinFunc) ){ in substExpr()
3866 Window *pWin = pExpr->y.pWin; in substExpr()
3873 return pExpr; in substExpr()
3882 pList->a[i].pExpr = substExpr(pSubst, pList->a[i].pExpr); in substExprList()
3920 static int recomputeColumnsUsedExpr(Walker *pWalker, Expr *pExpr){ in recomputeColumnsUsedExpr() argument
3922 if( pExpr->op!=TK_COLUMN ) return WRC_Continue; in recomputeColumnsUsedExpr()
3924 if( pItem->iCursor!=pExpr->iTable ) return WRC_Continue; in recomputeColumnsUsedExpr()
3925 if( pExpr->iColumn<0 ) return WRC_Continue; in recomputeColumnsUsedExpr()
3926 pItem->colUsed |= sqlite3ExprColUsed(pExpr); in recomputeColumnsUsedExpr()
3996 static int renumberCursorsCb(Walker *pWalker, Expr *pExpr){ in renumberCursorsCb() argument
3997 int op = pExpr->op; in renumberCursorsCb()
3999 renumberCursorDoMapping(pWalker, &pExpr->iTable); in renumberCursorsCb()
4001 if( ExprHasProperty(pExpr, EP_OuterON) ){ in renumberCursorsCb()
4002 renumberCursorDoMapping(pWalker, &pExpr->w.iJoin); in renumberCursorsCb()
4377 assert( pSub->pEList->a[ii].pExpr!=0 ); in flattenSubquery()
4378 aff = sqlite3ExprAffinity(pSub->pEList->a[ii].pExpr); in flattenSubquery()
4382 assert( pSub1->pEList->a[ii].pExpr!=0 ); in flattenSubquery()
4383 if( sqlite3ExprAffinity(pSub1->pEList->a[ii].pExpr)!=aff ){ in flattenSubquery()
4695 Expr *pExpr /* Overall expression: COLUMN=VALUE or VALUE=COLUMN */ in constInsert() argument
4703 if( !sqlite3IsBinary(sqlite3ExprCompareCollSeq(pConst->pParse,pExpr)) ){ in constInsert()
4739 static void findConstInWhere(WhereConst *pConst, Expr *pExpr){ in findConstInWhere() argument
4741 if( NEVER(pExpr==0) ) return; in findConstInWhere()
4742 if( ExprHasProperty(pExpr, pConst->mExcludeOn) ){ in findConstInWhere()
4743 testcase( ExprHasProperty(pExpr, EP_OuterON) ); in findConstInWhere()
4744 testcase( ExprHasProperty(pExpr, EP_InnerON) ); in findConstInWhere()
4747 if( pExpr->op==TK_AND ){ in findConstInWhere()
4748 findConstInWhere(pConst, pExpr->pRight); in findConstInWhere()
4749 findConstInWhere(pConst, pExpr->pLeft); in findConstInWhere()
4752 if( pExpr->op!=TK_EQ ) return; in findConstInWhere()
4753 pRight = pExpr->pRight; in findConstInWhere()
4754 pLeft = pExpr->pLeft; in findConstInWhere()
4758 constInsert(pConst,pRight,pLeft,pExpr); in findConstInWhere()
4761 constInsert(pConst,pLeft,pRight,pExpr); in findConstInWhere()
4776 Expr *pExpr, in propagateConstantExprRewriteOne() argument
4781 if( pExpr->op!=TK_COLUMN ) return WRC_Continue; in propagateConstantExprRewriteOne()
4782 if( ExprHasProperty(pExpr, EP_FixedCol|pConst->mExcludeOn) ){ in propagateConstantExprRewriteOne()
4783 testcase( ExprHasProperty(pExpr, EP_FixedCol) ); in propagateConstantExprRewriteOne()
4784 testcase( ExprHasProperty(pExpr, EP_OuterON) ); in propagateConstantExprRewriteOne()
4785 testcase( ExprHasProperty(pExpr, EP_InnerON) ); in propagateConstantExprRewriteOne()
4790 if( pColumn==pExpr ) continue; in propagateConstantExprRewriteOne()
4791 if( pColumn->iTable!=pExpr->iTable ) continue; in propagateConstantExprRewriteOne()
4792 if( pColumn->iColumn!=pExpr->iColumn ) continue; in propagateConstantExprRewriteOne()
4798 ExprClearProperty(pExpr, EP_Leaf); in propagateConstantExprRewriteOne()
4799 ExprSetProperty(pExpr, EP_FixedCol); in propagateConstantExprRewriteOne()
4800 assert( pExpr->pLeft==0 ); in propagateConstantExprRewriteOne()
4801 pExpr->pLeft = sqlite3ExprDup(pConst->pParse->db, pConst->apExpr[i*2+1], 0); in propagateConstantExprRewriteOne()
4824 static int propagateConstantExprRewrite(Walker *pWalker, Expr *pExpr){ in propagateConstantExprRewrite() argument
4831 if( (pExpr->op>=TK_EQ && pExpr->op<=TK_GE) in propagateConstantExprRewrite()
4832 || pExpr->op==TK_IS in propagateConstantExprRewrite()
4834 propagateConstantExprRewriteOne(pConst, pExpr->pLeft, 0); in propagateConstantExprRewrite()
4836 if( sqlite3ExprAffinity(pExpr->pLeft)!=SQLITE_AFF_TEXT ){ in propagateConstantExprRewrite()
4837 propagateConstantExprRewriteOne(pConst, pExpr->pRight, 0); in propagateConstantExprRewrite()
4841 return propagateConstantExprRewriteOne(pConst, pExpr, pConst->bHasAffBlob); in propagateConstantExprRewrite()
4957 static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr){ in pushDownWindowCheck() argument
4961 return sqlite3ExprIsConstantOrGroupBy(pParse, pExpr, pSubq->pWin->pPartition); in pushDownWindowCheck()
5177 if( sqlite3ExprCanBeNull(pEList->a[0].pExpr) ){ in minMaxQuery()
5211 Expr *pExpr; in isSimpleCount() local
5228 pExpr = p->pEList->a[0].pExpr; in isSimpleCount()
5229 assert( pExpr!=0 ); in isSimpleCount()
5230 if( pExpr->op!=TK_AGG_FUNCTION ) return 0; in isSimpleCount()
5231 if( pExpr->pAggInfo!=pAggInfo ) return 0; in isSimpleCount()
5233 assert( pAggInfo->aFunc[0].pFExpr==pExpr ); in isSimpleCount()
5234 testcase( ExprHasProperty(pExpr, EP_Distinct) ); in isSimpleCount()
5235 testcase( ExprHasProperty(pExpr, EP_WinFunc) ); in isSimpleCount()
5236 if( ExprHasProperty(pExpr, EP_Distinct|EP_WinFunc) ) return 0; in isSimpleCount()
5314 if( a[i].pExpr->flags & EP_Collate ) break; in convertCompoundSelectToSubquery()
5730 Expr *pE, *pRight, *pExpr; in selectExpander() local
5864 pE = pEList->a[k].pExpr; in selectExpander()
5884 pE = a[k].pExpr; in selectExpander()
5893 pNew = sqlite3ExprListAppend(pParse, pNew, a[k].pExpr); in selectExpander()
5899 a[k].pExpr = 0; in selectExpander()
6006 pExpr = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); in selectExpander()
6012 pExpr = sqlite3PExpr(pParse, TK_DOT, pLeft, pExpr); in selectExpander()
6015 pExpr = pRight; in selectExpander()
6017 pNew = sqlite3ExprListAppend(pParse, pNew, pExpr); in selectExpander()
6349 pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr); in updateAccumulator()
6415 static int havingToWhereExprCb(Walker *pWalker, Expr *pExpr){ in havingToWhereExprCb() argument
6416 if( pExpr->op!=TK_AND ){ in havingToWhereExprCb()
6425 if( sqlite3ExprIsConstantOrGroupBy(pWalker->pParse, pExpr, pS->pGroupBy) in havingToWhereExprCb()
6426 && ExprAlwaysFalse(pExpr)==0 in havingToWhereExprCb()
6427 && pExpr->pAggInfo==0 in havingToWhereExprCb()
6433 SWAP(Expr, *pNew, *pExpr); in havingToWhereExprCb()
6542 Expr *pExpr; in countOfViewOptimization() local
6549 pExpr = p->pEList->a[0].pExpr; in countOfViewOptimization()
6550 if( pExpr->op!=TK_AGG_FUNCTION ) return 0; /* Result is an aggregate */ in countOfViewOptimization()
6551 assert( ExprUseUToken(pExpr) ); in countOfViewOptimization()
6552 if( sqlite3_stricmp(pExpr->u.zToken,"count") ) return 0; /* Is count() */ in countOfViewOptimization()
6553 assert( ExprUseXList(pExpr) ); in countOfViewOptimization()
6554 if( pExpr->x.pList!=0 ) return 0; /* Must be count(*) */ in countOfViewOptimization()
6570 pCount = pExpr; in countOfViewOptimization()
6571 pExpr = 0; in countOfViewOptimization()
6589 if( pExpr==0 ){ in countOfViewOptimization()
6590 pExpr = pTerm; in countOfViewOptimization()
6592 pExpr = sqlite3PExpr(pParse, TK_PLUS, pTerm, pExpr); in countOfViewOptimization()
6596 p->pEList->a[0].pExpr = pExpr; in countOfViewOptimization()
7201 sqlite3ExprDelete(db, pEList->a[ii].pExpr); in sqlite3Select()
7206 if( pEList->a[ii].fg.bUsed==0 ) pEList->a[ii].pExpr->op = TK_NULL; in sqlite3Select()
7415 Expr *pExpr = pAggInfo->aFunc[i].pFExpr; in sqlite3Select() local
7416 assert( ExprUseXList(pExpr) ); in sqlite3Select()
7418 sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList); in sqlite3Select()
7420 assert( !IsWindowFunc(pExpr) ); in sqlite3Select()
7421 if( ExprHasProperty(pExpr, EP_WinFunc) ){ in sqlite3Select()
7422 sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pWin->pFilter); in sqlite3Select()
7480 Expr *pExpr = pAggInfo->aFunc[0].pFExpr->x.pList->a[0].pExpr; in sqlite3Select() local
7481 pExpr = sqlite3ExprDup(db, pExpr, 0); in sqlite3Select()
7483 pDistinct = sqlite3ExprListAppend(pParse, pDistinct, pExpr); in sqlite3Select()
7619 sqlite3ExprCode(pParse, pGroupBy->a[j].pExpr, iBMem+j); in sqlite3Select()
7886 Expr *pExpr = pAggInfo->aCol[i].pCExpr; in sqlite3Select() local
7887 assert( pExpr!=0 ); in sqlite3Select()
7888 assert( pExpr->pAggInfo==pAggInfo ); in sqlite3Select()
7889 assert( pExpr->iAgg==i ); in sqlite3Select()
7892 Expr *pExpr = pAggInfo->aFunc[i].pFExpr; in sqlite3Select() local
7893 assert( pExpr!=0 ); in sqlite3Select()
7894 assert( pExpr->pAggInfo==pAggInfo ); in sqlite3Select()
7895 assert( pExpr->iAgg==i ); in sqlite3Select()