Lines Matching defs:Expr

605 typedef struct Expr Expr;
1096 Expr *pDflt; /* Default value of this column */
1283 Expr *pCheck; /* The AND of all CHECK constraints */
1518 ** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a
1519 ** pointer to this structure. The Expr.iColumn field is the index in
1541 Expr *pExpr; /* The original expression */
1549 Expr *pExpr; /* Expression encoding the function */
1562 ** it uses less memory in the Expr object, which is a big memory user
1578 ** Expr.op is the opcode. The integer parser token codes are reused
1585 ** or TK_STRING), then Expr.token contains the text of the SQL literal. If
1586 ** the expression is a variable (TK_VARIABLE), then Expr.token contains the
1588 ** then Expr.token contains the name of the function.
1590 ** Expr.pRight and Expr.pLeft are the left and right subexpressions of a
1593 ** Expr.x.pList is a list of arguments if the expression is an SQL function,
1595 ** Expr.x.pSelect is used if the expression is a sub-select or an expression of
1597 ** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is
1601 ** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is
1603 ** Expr.iColumn is the column number for the specific column. If the
1605 ** value is also stored in the Expr.iAgg column in the aggregate so that
1609 ** character '?' in the original SQL) then the Expr.iTable holds the index
1612 ** If the expression is a subquery then Expr.iColumn holds an integer
1618 ** If the Expr is of type OP_Column, and the table it is selecting from
1624 ** Expr objects can use a lot of memory space in database schema. To
1625 ** help reduce memory requirements, sometimes an Expr object will be
1627 ** two or more Expr objects will be stored in a single memory allocation,
1628 ** together with Expr.zToken strings.
1631 ** an Expr object is truncated. When EP_Reduced is set, then all
1632 ** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees
1634 ** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately
1637 struct Expr {
1646 /* If the EP_TokenOnly flag is set in the Expr.flags mask, then no
1651 Expr *pLeft; /* Left subnode */
1652 Expr *pRight; /* Right subnode */
1659 /* If the EP_Reduced flag is set in the Expr.flags mask, then no
1672 u8 op2; /* If a TK_REGISTER, the original value of Expr.op */
1681 ** The following are the meanings of bits in the Expr.flags field.
1696 #define EP_Reduced 0x1000 /* Expr struct is EXPR_REDUCEDSIZE bytes only */
1697 #define EP_TokenOnly 0x2000 /* Expr struct is EXPR_TOKENONLYSIZE bytes only */
1701 ** The following are the meanings of bits in the Expr.flags2 field.
1703 #define EP2_MallocedToken 0x0001 /* Need to sqlite3DbFree() Expr.zToken */
1704 #define EP2_Irreducible 0x0002 /* Cannot EXPRDUP_REDUCE this Expr */
1720 ** Expr.flags field.
1728 ** Macros to determine the number of bytes required by a normal Expr
1729 ** struct, an Expr struct with the EP_Reduced flag set in Expr.flags
1730 ** and an Expr struct with the EP_TokenOnly flag set.
1732 #define EXPR_FULLSIZE sizeof(Expr) /* Full size */
1733 #define EXPR_REDUCEDSIZE offsetof(Expr,iTable) /* Common features */
1734 #define EXPR_TOKENONLYSIZE offsetof(Expr,pLeft) /* Fewer features */
1740 #define EXPRDUP_REDUCE 0x0001 /* Used reduced-size Expr nodes */
1755 Expr *pExpr; /* The list of expressions */
1771 Expr *pExpr; /* The expression parse tree */
1849 Expr *pOn; /* The ON clause of a join */
2036 Expr *pWhere; /* The WHERE clause */
2038 Expr *pHaving; /* The HAVING clause */
2043 Expr *pLimit; /* LIMIT expression. NULL means not used. */
2044 Expr *pOffset; /* OFFSET expression. NULL means not used. */
2231 Expr **apVarExpr; /* Pointers to :aaa and $aaaa wildcard expressions */
2304 Expr *pWhen; /* The WHEN clause of the expression (may be NULL) */
2367 Expr *pWhere; /* The WHERE clause for DELETE or UPDATE steps */
2457 int (*xExprCallback)(Walker*, Expr*); /* Callback for expressions */
2467 int sqlite3WalkExpr(Walker*, Expr*);
2653 Expr *sqlite3ExprAlloc(sqlite3*,int,const Token*,int);
2654 Expr *sqlite3Expr(sqlite3*,int,const char*);
2655 void sqlite3ExprAttachSubtrees(sqlite3*,Expr*,Expr*,Expr*);
2656 Expr *sqlite3PExpr(Parse*, int, Expr*, Expr*, const Token*);
2657 Expr *sqlite3ExprAnd(sqlite3*,Expr*, Expr*);
2658 Expr *sqlite3ExprFunction(Parse*,ExprList*, Token*);
2659 void sqlite3ExprAssignVarNumber(Parse*, Expr*);
2660 void sqlite3ExprDelete(sqlite3*, Expr*);
2661 ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*);
2677 void sqlite3AddCheckConstraint(Parse*, Expr*);
2721 Token*, Select*, Expr*, IdList*);
2732 Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList*,
2733 Expr*,ExprList*,int,Expr*,Expr*);
2739 Expr *sqlite3LimitWhere(Parse *, SrcList *, Expr *, ExprList *, Expr *, Expr *, char *);
2741 void sqlite3DeleteFrom(Parse*, SrcList*, Expr*);
2742 void sqlite3Update(Parse*, SrcList*, ExprList*, Expr*, int);
2743 WhereInfo *sqlite3WhereBegin(Parse*, SrcList*, Expr*, ExprList**, u16);
2755 int sqlite3ExprCode(Parse*, Expr*, int);
2756 int sqlite3ExprCodeTemp(Parse*, Expr*, int*);
2757 int sqlite3ExprCodeTarget(Parse*, Expr*, int);
2758 int sqlite3ExprCodeAndCache(Parse*, Expr*, int);
2759 void sqlite3ExprCodeConstants(Parse*, Expr*);
2761 void sqlite3ExprIfTrue(Parse*, Expr*, int, int);
2762 void sqlite3ExprIfFalse(Parse*, Expr*, int, int);
2771 int sqlite3ExprCompare(Expr*, Expr*);
2773 void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*);
2787 int sqlite3ExprIsConstant(Expr*);
2788 int sqlite3ExprIsConstantNotJoin(Expr*);
2789 int sqlite3ExprIsConstantOrFunction(Expr*);
2790 int sqlite3ExprIsInteger(Expr*, int*);
2791 int sqlite3ExprCanBeNull(const Expr*);
2792 void sqlite3ExprCodeIsNullJump(Vdbe*, const Expr*, int, int);
2793 int sqlite3ExprNeedsNoAffinityChange(const Expr*, char);
2806 Expr *sqlite3ExprDup(sqlite3*,Expr*,int);
2821 void sqlite3MaterializeView(Parse*, Table*, Expr*, int);
2826 Expr*,int, int);
2835 void sqliteViewTriggers(Parse*, Table*, Expr*, int, ExprList*);
2840 TriggerStep *sqlite3TriggerUpdateStep(sqlite3*,Token*,ExprList*, Expr*, u8);
2841 TriggerStep *sqlite3TriggerDeleteStep(sqlite3*,Token*, Expr*);
2862 void sqlite3AuthRead(Parse*,Expr*,Schema*,SrcList*);
2873 void sqlite3Attach(Parse*, Expr*, Expr*, Expr*);
2874 void sqlite3Detach(Parse*, Expr*);
2878 int sqlite3FixExpr(DbFixer*, Expr*);
2926 char sqlite3CompareAffinity(Expr *pExpr, char aff2);
2927 int sqlite3IndexAffinityOk(Expr *pExpr, char idx_affinity);
2928 char sqlite3ExprAffinity(Expr *pExpr);
2937 CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr);
2938 Expr *sqlite3ExprSetColl(Expr*, CollSeq*);
2939 Expr *sqlite3ExprSetCollByToken(Parse *pParse, Expr*, Token*);
2958 int sqlite3ValueFromExpr(sqlite3 *, Expr *, u8, u8, sqlite3_value **);
2978 int sqlite3CodeSubselect(Parse *, Expr *, int, int);
2980 int sqlite3ResolveExprNames(NameContext*, Expr*);
2996 int sqlite3IsLikeFunction(sqlite3*,Expr*,int*,char*);
3015 Expr *sqlite3CreateColumnExpr(sqlite3 *, SrcList *, int, int);
3075 FuncDef *sqlite3VtabOverloadFunction(sqlite3 *,FuncDef*, int nArg, Expr*);
3081 CollSeq *sqlite3BinaryCompareCollSeq(Parse *, Expr *, Expr *);
3138 int sqlite3FindInIndex(Parse *, Expr *, int*);
3153 void sqlite3ExprSetHeight(Parse *pParse, Expr *p);