diff options
Diffstat (limited to 'src/where.c')
-rw-r--r-- | src/where.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/where.c b/src/where.c index 70642fc5b..f17853d5f 100644 --- a/src/where.c +++ b/src/where.c @@ -1098,13 +1098,13 @@ static void exprAnalyze( Expr *pExpr; /* The expression to be analyzed */ Bitmask prereqLeft; /* Prerequesites of the pExpr->pLeft */ Bitmask prereqAll; /* Prerequesites of pExpr */ - Bitmask extraRight = 0; - int isComplete; - int noCase; + Bitmask extraRight = 0; /* */ + Expr *pStr1 = 0; /* RHS of LIKE/GLOB operator */ + int isComplete = 0; /* RHS of LIKE/GLOB ends with wildcard */ + int noCase = 0; /* LIKE/GLOB distinguishes case */ int op; /* Top-level operator. pExpr->op */ Parse *pParse = pWC->pParse; /* Parsing context */ sqlite3 *db = pParse->db; /* Database connection */ - Expr *pStr1; if( db->mallocFailed ){ return; @@ -1239,10 +1239,12 @@ static void exprAnalyze( if( pWC->op==TK_AND && isLikeOrGlob(pParse, pExpr, &pStr1, &isComplete, &noCase) ){ - Expr *pLeft; - Expr *pStr2; - Expr *pNewExpr1, *pNewExpr2; - int idxNew1, idxNew2; + Expr *pLeft; /* LHS of LIKE/GLOB operator */ + Expr *pStr2; /* Copy of pStr1 - RHS of LIKE/GLOB operator */ + Expr *pNewExpr1; + Expr *pNewExpr2; + int idxNew1; + int idxNew2; pLeft = pExpr->x.pList->a[1].pExpr; pStr2 = sqlite3ExprDup(db, pStr1, 0); |