Lines Matching refs:Expr
18 static void exprCodeBetween(Parse*,Expr*,int,void(*)(Parse*,Expr*,int,int),int);
19 static int exprCodeVector(Parse *pParse, Expr *p, int *piToFree);
45 char sqlite3ExprAffinity(const Expr *pExpr){ in sqlite3ExprAffinity()
97 Expr *sqlite3ExprAddCollateToken( in sqlite3ExprAddCollateToken()
99 Expr *pExpr, /* Add the "COLLATE" clause to this expression */ in sqlite3ExprAddCollateToken()
104 Expr *pNew = sqlite3ExprAlloc(pParse->db, TK_COLLATE, pCollName, dequote); in sqlite3ExprAddCollateToken()
113 Expr *sqlite3ExprAddCollateString( in sqlite3ExprAddCollateString()
115 Expr *pExpr, /* Add the "COLLATE" clause to this expression */ in sqlite3ExprAddCollateString()
127 Expr *sqlite3ExprSkipCollate(Expr *pExpr){ in sqlite3ExprSkipCollate()
140 Expr *sqlite3ExprSkipCollateAndLikely(Expr *pExpr){ in sqlite3ExprSkipCollateAndLikely()
169 CollSeq *sqlite3ExprCollSeq(Parse *pParse, const Expr *pExpr){ in sqlite3ExprCollSeq()
172 const Expr *p = pExpr; in sqlite3ExprCollSeq()
204 Expr *pNext = p->pRight; in sqlite3ExprCollSeq()
239 CollSeq *sqlite3ExprNNCollSeq(Parse *pParse, const Expr *pExpr){ in sqlite3ExprNNCollSeq()
249 int sqlite3ExprCollSeqMatch(Parse *pParse, const Expr *pE1, const Expr *pE2){ in sqlite3ExprCollSeqMatch()
260 char sqlite3CompareAffinity(const Expr *pExpr, char aff2){ in sqlite3CompareAffinity()
282 static char comparisonAffinity(const Expr *pExpr){ in comparisonAffinity()
305 int sqlite3IndexAffinityOk(const Expr *pExpr, char idx_affinity){ in sqlite3IndexAffinityOk()
321 const Expr *pExpr1, /* Left operand */ in binaryCompareP5()
322 const Expr *pExpr2, /* Right operand */ in binaryCompareP5()
344 const Expr *pLeft, in sqlite3BinaryCompareCollSeq()
345 const Expr *pRight in sqlite3BinaryCompareCollSeq()
370 CollSeq *sqlite3ExprCompareCollSeq(Parse *pParse, const Expr *p){ in sqlite3ExprCompareCollSeq()
383 Expr *pLeft, /* The left operand */ in codeCompare()
384 Expr *pRight, /* The right operand */ in codeCompare()
417 int sqlite3ExprIsVector(const Expr *pExpr){ in sqlite3ExprIsVector()
427 int sqlite3ExprVectorSize(const Expr *pExpr){ in sqlite3ExprVectorSize()
456 Expr *sqlite3VectorFieldSubexpr(Expr *pVector, int i){ in sqlite3VectorFieldSubexpr()
492 Expr *sqlite3ExprForVectorField( in sqlite3ExprForVectorField()
494 Expr *pVector, /* The vector. List of expressions or a sub-SELECT */ in sqlite3ExprForVectorField()
498 Expr *pRet; in sqlite3ExprForVectorField()
525 Expr **ppVector; in sqlite3ExprForVectorField()
548 static int exprCodeSubselect(Parse *pParse, Expr *pExpr){ in exprCodeSubselect()
578 Expr *pVector, /* Vector to extract element from */ in exprVectorRegister()
581 Expr **ppExpr, /* OUT: Expression element */ in exprVectorRegister()
616 Expr *pExpr, /* The comparison operation */ in codeVectorCompare()
622 Expr *pLeft = pExpr->pLeft; in codeVectorCompare()
623 Expr *pRight = pExpr->pRight; in codeVectorCompare()
659 Expr *pL = 0, *pR = 0; in codeVectorCompare()
730 static void heightOfExpr(const Expr *p, int *pnHeight){ in heightOfExpr()
767 static void exprSetHeight(Expr *p){ in exprSetHeight()
789 void sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p){ in sqlite3ExprSetHeightAndFlags()
809 void sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p){ in sqlite3ExprSetHeightAndFlags()
838 Expr *sqlite3ExprAlloc( in sqlite3ExprAlloc()
844 Expr *pNew; in sqlite3ExprAlloc()
856 pNew = sqlite3DbMallocRawNN(db, sizeof(Expr)+nExtra); in sqlite3ExprAlloc()
858 memset(pNew, 0, sizeof(Expr)); in sqlite3ExprAlloc()
886 Expr *sqlite3Expr( in sqlite3Expr()
905 Expr *pRoot, in sqlite3ExprAttachSubtrees()
906 Expr *pLeft, in sqlite3ExprAttachSubtrees()
907 Expr *pRight in sqlite3ExprAttachSubtrees()
944 Expr *sqlite3PExpr( in sqlite3PExpr()
947 Expr *pLeft, /* Left operand */ in sqlite3PExpr()
948 Expr *pRight /* Right operand */ in sqlite3PExpr()
950 Expr *p; in sqlite3PExpr()
951 p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)); in sqlite3PExpr()
953 memset(p, 0, sizeof(Expr)); in sqlite3PExpr()
969 void sqlite3PExprAddSelect(Parse *pParse, Expr *pExpr, Select *pSelect){ in sqlite3PExprAddSelect()
1005 Expr *pExpr = pEList->a[ii].pExpr; in sqlite3ExprListToValues()
1046 Expr *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight){ in sqlite3ExprAnd()
1067 Expr *sqlite3ExprFunction( in sqlite3ExprFunction()
1073 Expr *pNew; in sqlite3ExprFunction()
1110 const Expr *pExpr, /* The function invocation */ in sqlite3ExprFunctionUsable()
1147 void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr, u32 n){ in sqlite3ExprAssignVarNumber()
1217 static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ in sqlite3ExprDeleteNN()
1255 void sqlite3ExprDelete(sqlite3 *db, Expr *p){ in sqlite3ExprDelete()
1282 void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){ in sqlite3ExprDeferredDelete()
1291 void sqlite3ExprUnmapAndDelete(Parse *pParse, Expr *p){ in sqlite3ExprUnmapAndDelete()
1305 static int exprStructSize(const Expr *p){ in exprStructSize()
1345 static int dupedExprStructSize(const Expr *p, int flags){ in dupedExprStructSize()
1375 static int dupedExprNodeSize(const Expr *p, int flags){ in dupedExprNodeSize()
1396 static int dupedExprSize(const Expr *p, int flags){ in dupedExprSize()
1415 static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, u8 **pzBuffer){ in exprDup()
1416 Expr *pNew; /* Value to return */ in exprDup()
1434 pNew = (Expr *)zAlloc; in exprDup()
1554 static int gatherSelectWindowsCallback(Walker *pWalker, Expr *pExpr){ in gatherSelectWindowsCallback()
1597 Expr *sqlite3ExprDup(sqlite3 *db, const Expr *p, int flags){ in sqlite3ExprDup()
1606 Expr *pPriorSelectColOld = 0; in sqlite3ExprListDup()
1607 Expr *pPriorSelectColNew = 0; in sqlite3ExprListDup()
1617 Expr *pOldExpr = pOldItem->pExpr; in sqlite3ExprListDup()
1618 Expr *pNewExpr; in sqlite3ExprListDup()
1793 Expr *pExpr /* Expression to be appended. Might be NULL */ in sqlite3ExprListAppendNew()
1813 Expr *pExpr /* Expression to be appended. Might be NULL */ in sqlite3ExprListAppendGrow()
1835 Expr *pExpr /* Expression to be appended. Might be NULL */ in sqlite3ExprListAppend()
1865 Expr *pExpr /* Vector expression to be appended. Might be NULL */ in sqlite3ExprListAppendVector()
1888 Expr *pSubExpr = sqlite3ExprForVectorField(pParse, pExpr, i, pColumns->nId); in sqlite3ExprListAppendVector()
1900 Expr *pFirst = pList->a[iFirst].pExpr; in sqlite3ExprListAppendVector()
2059 Expr *pExpr = pList->a[i].pExpr; in sqlite3ExprListFlags()
2099 int sqlite3ExprIdToTrueFalse(Expr *pExpr){ in sqlite3ExprIdToTrueFalse()
2116 int sqlite3ExprTruthValue(const Expr *pExpr){ in sqlite3ExprTruthValue()
2117 pExpr = sqlite3ExprSkipCollate((Expr*)pExpr); in sqlite3ExprTruthValue()
2138 Expr *sqlite3ExprSimplifiedAndOr(Expr *pExpr){ in sqlite3ExprSimplifiedAndOr()
2141 Expr *pRight = sqlite3ExprSimplifiedAndOr(pExpr->pRight); in sqlite3ExprSimplifiedAndOr()
2142 Expr *pLeft = sqlite3ExprSimplifiedAndOr(pExpr->pLeft); in sqlite3ExprSimplifiedAndOr()
2179 static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ in exprNodeIsConstant()
2251 static int exprIsConst(Expr *p, int initFlag, int iCur){ in exprIsConst()
2272 int sqlite3ExprIsConstant(Expr *p){ in sqlite3ExprIsConstant()
2289 int sqlite3ExprIsConstantNotJoin(Expr *p){ in sqlite3ExprIsConstantNotJoin()
2299 int sqlite3ExprIsTableConstant(Expr *p, int iCur){ in sqlite3ExprIsTableConstant()
2326 int sqlite3ExprIsTableConstraint(Expr *pExpr, const SrcItem *pSrc){ in sqlite3ExprIsTableConstraint()
2343 static int exprNodeIsConstantOrGroupBy(Walker *pWalker, Expr *pExpr){ in exprNodeIsConstantOrGroupBy()
2350 Expr *p = pGroupBy->a[i].pExpr; in exprNodeIsConstantOrGroupBy()
2387 int sqlite3ExprIsConstantOrGroupBy(Parse *pParse, Expr *p, ExprList *pGroupBy){ in sqlite3ExprIsConstantOrGroupBy()
2419 int sqlite3ExprIsConstantOrFunction(Expr *p, u8 isInit){ in sqlite3ExprIsConstantOrFunction()
2429 int sqlite3ExprContainsSubquery(Expr *p){ in sqlite3ExprContainsSubquery()
2448 int sqlite3ExprIsInteger(const Expr *p, int *pValue){ in sqlite3ExprIsInteger()
2494 int sqlite3ExprCanBeNull(const Expr *p){ in sqlite3ExprCanBeNull()
2531 int sqlite3ExprNeedsNoAffinityChange(const Expr *p, char aff){ in sqlite3ExprNeedsNoAffinityChange()
2582 static Select *isCandidateForInOpt(const Expr *pX){ in isCandidateForInOpt()
2612 Expr *pRes = pEList->a[i].pExpr; in isCandidateForInOpt()
2644 static int sqlite3InRhsIsConstant(Expr *pIn){ in sqlite3InRhsIsConstant()
2645 Expr *pLHS; in sqlite3InRhsIsConstant()
2742 Expr *pX, /* The IN expression */ in sqlite3FindInIndex()
2816 Expr *pLhs = sqlite3VectorFieldSubexpr(pX->pLeft, i); in sqlite3FindInIndex()
2859 Expr *pLhs = sqlite3VectorFieldSubexpr(pX->pLeft, i); in sqlite3FindInIndex()
2860 Expr *pRhs = pEList->a[i].pExpr; in sqlite3FindInIndex()
2966 static char *exprINAffinity(Parse *pParse, const Expr *pExpr){ in exprINAffinity()
2967 Expr *pLeft = pExpr->pLeft; in exprINAffinity()
2977 Expr *pA = sqlite3VectorFieldSubexpr(pLeft, i); in exprINAffinity()
3017 void sqlite3VectorErrorMsg(Parse *pParse, Expr *pExpr){ in sqlite3VectorErrorMsg()
3053 Expr *pExpr, /* The IN operator */ in sqlite3CodeRhsOfIN()
3058 Expr *pLeft; /* the LHS of the IN operator */ in sqlite3CodeRhsOfIN()
3162 Expr *p = sqlite3VectorFieldSubexpr(pLeft, i); in sqlite3CodeRhsOfIN()
3196 Expr *pE2 = pItem->pExpr; in sqlite3CodeRhsOfIN()
3251 int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ in sqlite3CodeSubselect()
3257 Expr *pLimit; /* New limit expression */ in sqlite3CodeSubselect()
3374 int sqlite3ExprCheckIN(Parse *pParse, Expr *pIn){ in sqlite3ExprCheckIN()
3417 Expr *pExpr, /* The IN expression */ in sqlite3ExprCodeIN()
3430 Expr *pLeft; /* The LHS of the IN operator */ in sqlite3ExprCodeIN()
3567 Expr *p = sqlite3VectorFieldSubexpr(pExpr->pLeft, i); in sqlite3ExprCodeIN()
3630 Expr *p; in sqlite3ExprCodeIN()
3691 static void codeInteger(Parse *pParse, Expr *pExpr, int negFlag, int iMem){ in codeInteger()
3866 static void exprToRegister(Expr *pExpr, int iReg){ in exprToRegister()
3867 Expr *p = sqlite3ExprSkipCollateAndLikely(pExpr); in exprToRegister()
3885 static int exprCodeVector(Parse *pParse, Expr *p, int *piFreeable){ in exprCodeVector()
3957 Expr caseExpr; in exprCodeInlineFunction()
3965 Expr *pArg = pFarg->a[0].pExpr; in exprCodeInlineFunction()
4008 Expr *pA1; in exprCodeInlineFunction()
4047 Expr *pExpr, /* The expression to potentially bypass */ in sqlite3IndexedExprLookup()
4098 int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){ in sqlite3ExprCodeTarget()
4105 Expr tempX; /* Temporary expression node */ in sqlite3ExprCodeTarget()
4319 Expr *pLeft = pExpr->pLeft; in sqlite3ExprCodeTarget()
4376 Expr *pLeft = pExpr->pLeft; in sqlite3ExprCodeTarget()
4590 Expr *pLeft = pExpr->pLeft; in sqlite3ExprCodeTarget()
4785 Expr opCompare; /* The X==Ei expression */ in sqlite3ExprCodeTarget()
4786 Expr *pX; /* The X expression */ in sqlite3ExprCodeTarget()
4787 Expr *pTest = 0; /* X==Ei (form A) or just Ei (form B) */ in sqlite3ExprCodeTarget()
4788 Expr *pDel = 0; in sqlite3ExprCodeTarget()
4895 Expr *pExpr, /* The expression to code when the VDBE initializes */ in sqlite3ExprCodeRunJustOnce()
4952 int sqlite3ExprCodeTemp(Parse *pParse, Expr *pExpr, int *pReg){ in sqlite3ExprCodeTemp()
4980 void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){ in sqlite3ExprCode()
5004 void sqlite3ExprCodeCopy(Parse *pParse, Expr *pExpr, int target){ in sqlite3ExprCodeCopy()
5017 void sqlite3ExprCodeFactorable(Parse *pParse, Expr *pExpr, int target){ in sqlite3ExprCodeFactorable()
5062 Expr *pExpr = pItem->pExpr; in sqlite3ExprCodeExprList()
5122 Expr *pExpr, /* The BETWEEN expression */ in exprCodeBetween() argument
5124 void (*xJump)(Parse*,Expr*,int,int), /* Action to take */ in exprCodeBetween()
5127 Expr exprAnd; /* The AND operator in x>=y AND x<=z */ in exprCodeBetween()
5128 Expr compLeft; /* The x>=y term */ in exprCodeBetween()
5129 Expr compRight; /* The x<=z term */ in exprCodeBetween()
5131 Expr *pDel = 0; in exprCodeBetween()
5134 memset(&compLeft, 0, sizeof(Expr)); in exprCodeBetween()
5135 memset(&compRight, 0, sizeof(Expr)); in exprCodeBetween()
5136 memset(&exprAnd, 0, sizeof(Expr)); in exprCodeBetween()
5192 void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){ in sqlite3ExprIfTrue()
5207 Expr *pAlt = sqlite3ExprSimplifiedAndOr(pExpr); in sqlite3ExprIfTrue()
5335 void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){ in sqlite3ExprIfFalse()
5381 Expr *pAlt = sqlite3ExprSimplifiedAndOr(pExpr); in sqlite3ExprIfFalse()
5508 void sqlite3ExprIfFalseDup(Parse *pParse, Expr *pExpr, int dest,int jumpIfNull){ in sqlite3ExprIfFalseDup()
5510 Expr *pCopy = sqlite3ExprDup(db, pExpr, 0); in sqlite3ExprIfFalseDup()
5532 const Expr *pVar, in exprCompareVariable()
5533 const Expr *pExpr in exprCompareVariable()
5588 const Expr *pA, in sqlite3ExprCompare()
5589 const Expr *pB, in sqlite3ExprCompare()
5695 Expr *pExprA = pA->a[i].pExpr; in sqlite3ExprListCompare()
5696 Expr *pExprB = pB->a[i].pExpr; in sqlite3ExprListCompare()
5707 int sqlite3ExprCompareSkip(Expr *pA,Expr *pB, int iTab){ in sqlite3ExprCompareSkip()
5722 const Expr *p, /* The expression to be checked */ in exprImpliesNotNull()
5723 const Expr *pNN, /* The expression that is NOT NULL */ in exprImpliesNotNull()
5819 const Expr *pE1, in sqlite3ExprImpliesExpr()
5820 const Expr *pE2, in sqlite3ExprImpliesExpr()
5849 static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ in impliesNotNullRow()
5908 Expr *pLeft = pExpr->pLeft; in impliesNotNullRow()
5909 Expr *pRight = pExpr->pRight; in impliesNotNullRow()
5958 int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ in sqlite3ExprImpliesNonNullRow()
5996 static int exprIdxCover(Walker *pWalker, Expr *pExpr){ in exprIdxCover()
6018 Expr *pExpr, /* The index to be tested */ in sqlite3ExprCoveredByIndex()
6089 static int exprRefToSrcList(Walker *pWalker, Expr *pExpr){ in exprRefToSrcList()
6126 int sqlite3ReferencesSrcList(Parse *pParse, Expr *pExpr, SrcList *pSrcList){ in sqlite3ReferencesSrcList()
6169 static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ in agginfoPersistExprCb()
6250 static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ in analyzeAggregate()
6306 Expr *pE = pTerm->pExpr; in analyzeAggregate()
6396 void sqlite3ExprAnalyzeAggregates(NameContext *pNC, Expr *pExpr){ in sqlite3ExprAnalyzeAggregates()