aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-10-28 20:01:45 +0000
committerdrh <drh@noemail.net>2015-10-28 20:01:45 +0000
commit1167d32716f252b2db4a5478f7dba406ed6f30b3 (patch)
treefd71e77a5d5e606f01ad97ef5763607707a82801 /src
parent9109b7f8e1be2f0dc1437762d1c1f3effd878c0d (diff)
downloadsqlite-1167d32716f252b2db4a5478f7dba406ed6f30b3.tar.gz
sqlite-1167d32716f252b2db4a5478f7dba406ed6f30b3.zip
Make the internal sqlite3PExpr() interface responsive to the
TKFLG_DONTFOLD flag on the operator parameter. FossilOrigin-Name: b10ab59fb8a696d11a269f3904e799c687246aea
Diffstat (limited to 'src')
-rw-r--r--src/expr.c4
-rw-r--r--src/wherecode.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c
index 1c6d7879f..6371e15ca 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -548,11 +548,11 @@ Expr *sqlite3PExpr(
const Token *pToken /* Argument token */
){
Expr *p;
- if( op==TK_AND && pLeft && pRight && pParse->nErr==0 ){
+ if( op==TK_AND && pParse->nErr==0 ){
/* Take advantage of short-circuit false optimization for AND */
p = sqlite3ExprAnd(pParse->db, pLeft, pRight);
}else{
- p = sqlite3ExprAlloc(pParse->db, op, pToken, 1);
+ p = sqlite3ExprAlloc(pParse->db, op & TKFLG_MASK, pToken, 1);
sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight);
}
if( p ) {
diff --git a/src/wherecode.c b/src/wherecode.c
index cf3d601e2..87db0e0a2 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -1399,7 +1399,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
}
if( pAndExpr ){
- pAndExpr = sqlite3PExpr(pParse, TK_AND, 0, pAndExpr, 0);
+ pAndExpr = sqlite3PExpr(pParse, TK_AND|TKFLG_DONTFOLD, 0, pAndExpr, 0);
}
}