Lines Matching refs:op
99 static int allowedOp(int op){ in allowedOp() argument
104 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS; in allowedOp()
112 if( pExpr->pLeft->op==TK_VECTOR in exprCommute()
113 || pExpr->pRight->op==TK_VECTOR in exprCommute()
120 if( pExpr->op>=TK_GT ){ in exprCommute()
125 assert( pExpr->op>=TK_GT && pExpr->op<=TK_GE ); in exprCommute()
126 pExpr->op = ((pExpr->op-TK_GT)^2)+TK_GT; in exprCommute()
134 static u16 operatorMask(int op){ in operatorMask() argument
136 assert( allowedOp(op) ); in operatorMask()
137 if( op==TK_IN ){ in operatorMask()
139 }else if( op==TK_ISNULL ){ in operatorMask()
141 }else if( op==TK_IS ){ in operatorMask()
144 assert( (WO_EQ<<(op-TK_EQ)) < 0x7fff ); in operatorMask()
145 c = (u16)(WO_EQ<<(op-TK_EQ)); in operatorMask()
147 assert( op!=TK_ISNULL || c==WO_ISNULL ); in operatorMask()
148 assert( op!=TK_IN || c==WO_IN ); in operatorMask()
149 assert( op!=TK_EQ || c==WO_EQ ); in operatorMask()
150 assert( op!=TK_LT || c==WO_LT ); in operatorMask()
151 assert( op!=TK_LE || c==WO_LE ); in operatorMask()
152 assert( op!=TK_GT || c==WO_GT ); in operatorMask()
153 assert( op!=TK_GE || c==WO_GE ); in operatorMask()
154 assert( op!=TK_IS || c==WO_IS ); in operatorMask()
187 int op; /* Opcode of pRight */ in isLikeOrGlob() local
201 op = pRight->op; in isLikeOrGlob()
202 if( op==TK_VARIABLE && (db->flags & SQLITE_EnableQPSG)==0 ){ in isLikeOrGlob()
210 assert( pRight->op==TK_VARIABLE || pRight->op==TK_REGISTER ); in isLikeOrGlob()
211 }else if( op==TK_STRING ){ in isLikeOrGlob()
266 if( pLeft->op!=TK_COLUMN in isLikeOrGlob()
295 if( op==TK_VARIABLE ){ in isLikeOrGlob()
358 if( pExpr->op==TK_FUNCTION ){ in isAuxiliaryVtabOperator()
386 assert( pCol->op!=TK_COLUMN || (ExprUseYTab(pCol) && pCol->y.pTab!=0) ); in isAuxiliaryVtabOperator()
410 assert( pCol->op!=TK_COLUMN || ExprUseYTab(pCol) ); in isAuxiliaryVtabOperator()
411 assert( pCol->op!=TK_COLUMN || (ExprUseYTab(pCol) && pCol->y.pTab!=0) ); in isAuxiliaryVtabOperator()
432 }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){ in isAuxiliaryVtabOperator()
436 assert( pLeft->op!=TK_COLUMN || (ExprUseYTab(pLeft) && pLeft->y.pTab!=0) ); in isAuxiliaryVtabOperator()
440 assert( pRight==0 || pRight->op!=TK_COLUMN in isAuxiliaryVtabOperator()
448 if( pExpr->op==TK_NE ) *peOp2 = SQLITE_INDEX_CONSTRAINT_NE; in isAuxiliaryVtabOperator()
449 if( pExpr->op==TK_ISNOT ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOT; in isAuxiliaryVtabOperator()
450 if( pExpr->op==TK_NOTNULL ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOTNULL; in isAuxiliaryVtabOperator()
521 int op; /* Operator for the combined expression */ in whereCombineDisjuncts() local
545 for(op=TK_EQ; eOp!=(WO_EQ<<(op-TK_EQ)); op++){ assert( op<TK_GE ); } in whereCombineDisjuncts()
546 pNew->op = op; in whereCombineDisjuncts()
662 assert( pExpr->op==TK_OR ); in exprAnalyzeOrTerm()
703 if( allowedOp(pAndTerm->pExpr->op) in exprAnalyzeOrTerm()
917 if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0; in termIsEquivalence()
1005 int op /* The specific comparison operator */ in exprMightBeIndexed() argument
1012 assert( op<=TK_GE ); in exprMightBeIndexed()
1013 if( pExpr->op==TK_VECTOR && (op>=TK_GT && ALWAYS(op<=TK_GE)) ){ in exprMightBeIndexed()
1019 if( pExpr->op==TK_COLUMN ){ in exprMightBeIndexed()
1063 int op; /* Top-level operator. pExpr->op */ in exprAnalyze() local
1077 assert( pExpr->op!=TK_AS && pExpr->op!=TK_COLLATE ); in exprAnalyze()
1080 op = pExpr->op; in exprAnalyze()
1081 if( op==TK_IN ){ in exprAnalyze()
1139 if( allowedOp(op) ){ in exprAnalyze()
1146 assert( op==TK_IN ); in exprAnalyze()
1147 assert( pLeft->op==TK_VECTOR ); in exprAnalyze()
1152 if( exprMightBeIndexed(pSrc, prereqLeft, aiCurCol, pLeft, op) ){ in exprAnalyze()
1156 pTerm->eOperator = operatorMask(op) & opMask; in exprAnalyze()
1158 if( op==TK_IS ) pTerm->wtFlags |= TERM_IS; in exprAnalyze()
1160 && exprMightBeIndexed(pSrc, pTerm->prereqRight, aiCurCol, pRight, op) in exprAnalyze()
1178 if( op==TK_IS ) pNew->wtFlags |= TERM_IS; in exprAnalyze()
1197 pNew->eOperator = (operatorMask(pDup->op) + eExtraOp) & opMask; in exprAnalyze()
1199 if( op==TK_ISNULL in exprAnalyze()
1204 pExpr->op = TK_TRUEFALSE; in exprAnalyze()
1228 else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){ in exprAnalyze()
1256 else if( pExpr->op==TK_OR ){ in exprAnalyze()
1257 assert( pWC->op==TK_AND ); in exprAnalyze()
1268 else if( pExpr->op==TK_NOTNULL ){ in exprAnalyze()
1269 if( pExpr->pLeft->op==TK_COLUMN in exprAnalyze()
1313 else if( pExpr->op==TK_FUNCTION in exprAnalyze()
1314 && pWC->op==TK_AND in exprAnalyze()
1398 if( (pExpr->op==TK_EQ || pExpr->op==TK_IS) in exprAnalyze()
1403 && pWC->op==TK_AND in exprAnalyze()
1412 pNew = sqlite3PExpr(pParse, pExpr->op, pLeft, pRight); in exprAnalyze()
1431 else if( pExpr->op==TK_IN in exprAnalyze()
1433 && pExpr->pLeft->op==TK_VECTOR in exprAnalyze()
1439 && pWC->op==TK_AND in exprAnalyze()
1461 else if( pWC->op==TK_AND ){ in exprAnalyze()
1527 void sqlite3WhereSplit(WhereClause *pWC, Expr *pExpr, u8 op){ in sqlite3WhereSplit() argument
1529 pWC->op = op; in sqlite3WhereSplit()
1532 if( pE2->op!=op ){ in sqlite3WhereSplit()
1535 sqlite3WhereSplit(pWC, pE2->pLeft, op); in sqlite3WhereSplit()
1536 sqlite3WhereSplit(pWC, pE2->pRight, op); in sqlite3WhereSplit()
1630 if( pExpr->op!=TK_COLUMN ) return; in sqlite3WhereAddLimit()
1637 assert( p->pLimit->op==TK_LIMIT ); in sqlite3WhereAddLimit()
1738 mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0; in sqlite3WhereExprUsageFull()
1750 if( (p->op==TK_FUNCTION || p->op==TK_AGG_FUNCTION) && ExprUseYWin(p) ){ in sqlite3WhereExprUsageFull()
1760 if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){ in sqlite3WhereExprUsageNN()
1763 assert( p->op!=TK_IF_NULL_ROW ); in sqlite3WhereExprUsageNN()