Make the internal sqlite3PExpr() interface responsive to the 
TKFLG_DONTFOLD flag on the operator parameter.

FossilOrigin-Name: b10ab59fb8a696d11a269f3904e799c687246aea
diff --git a/src/expr.c b/src/expr.c
index 1c6d787..6371e15 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -548,11 +548,11 @@
   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 cf3d601..87db0e0 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -1399,7 +1399,7 @@
         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);
       }
     }