]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Clean up comments and variable names prior to merge. is-true-operator
authordrh <drh@noemail.net>
Tue, 27 Feb 2018 14:49:25 +0000 (14:49 +0000)
committerdrh <drh@noemail.net>
Tue, 27 Feb 2018 14:49:25 +0000 (14:49 +0000)
FossilOrigin-Name: 6445519e91c4f98b4a9a45d5091d733c31497ebf0eb23a76edce3091f626035d

manifest
manifest.uuid
src/expr.c
src/parse.y
src/sqliteInt.h
src/treeview.c
src/vdbe.c

index 7f3497c990d687e2eedb475b72e6669ca145b30b..bdef730d7d15de453e3584c591fc46de0c99f464 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sunnecessary\sdecision.
-D 2018-02-27T00:58:13.219
+C Clean\sup\scomments\sand\svariable\snames\sprior\sto\smerge.
+D 2018-02-27T14:49:25.328
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in a2d2fb8d17c39ab5ec52beb27850b903949080848236923f436156b72a958737
@@ -441,7 +441,7 @@ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
 F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
 F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
 F src/delete.c 20c8788451dc737a967c87ea53ad43544d617f5b57d32ccce8bd52a0daf9e89b
-F src/expr.c 03975fff227cd24b17e86b5bcc64e0fb9deecccd1b50d23c5f1f8a6852b99064
+F src/expr.c 904f85e5f5fa232488cbb662fcf3306ae203728751468670fb9840a9b1886abc
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
 F src/func.c 94f42cba2cc1c34aeaa441022ba0170ec3fec4bba54db4e0ded085c6dc0fdc51
@@ -477,7 +477,7 @@ F src/os_win.c eb03c6d52f893bcd7fdd4c6006674c13c1b5e49543fec98d605201af2997171c
 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
 F src/pager.c 0b6bd5442733b2e08d0673de6cdafe3e7ab0b5715e4844ac836ab346b1d9ed89
 F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
-F src/parse.y b875c74b72497f3cf23d9c6227ec0c859824ac9a5b23380cc1ed8adcff4857a0
+F src/parse.y 97b31a676ec1cb049970883a317efcd07ca8c7daded950c8de49199cdfdb1dfa
 F src/pcache.c 7ae91a4557a43d77d449accbfdc68846e6516f8e2eda46e8bbe4536fb669b201
 F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
 F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
@@ -493,7 +493,7 @@ F src/shell.c.in c1b14bc0bc1fe73a97dfaad55ca09f5d6e44f6019977d94e7e3d1861616035e
 F src/sqlite.h.in 235e942dd8c01b414c2996828b4d0d2500faf8850f8b24ae17d31c172f519e69
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 83a3c4ce93d650bedfd1aa558cb85a516bd6d094445ee989740827d0d944368d
-F src/sqliteInt.h ce6d2c08df3216a69d3f7fb740e8ddb7ef94169277776778e7cfce05ab245d10
+F src/sqliteInt.h 6c321e404f97117c9b676ac1a8591a22d095bf5ab730624becea3ad93067c89c
 F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
 F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
 F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@ -551,13 +551,13 @@ F src/test_windirent.h 90dfbe95442c9762357fe128dc7ae3dc199d006de93eb33ba3972e0a9
 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
 F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
 F src/tokenize.c 5b0c661a85f783d35b9883830736eeb63be4aefc4f6b7d9cd081d48782c041e2
-F src/treeview.c b2470f160658181f5d1d7672144d5e7a2635a398a2f062842b7b4e0c766c4158
+F src/treeview.c e0d62678314abf0e1e6d09ea405f4de3f404a17b4641c2169c304b5edf509320
 F src/trigger.c a34539c69433276d37b0da9a89c117726ff2d292c0902895af1f393a983cd3a1
 F src/update.c a90a32ffc0100265b0693dbbdbe490756447af181f5ea2c138cce515b08c8795
 F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
 F src/util.c d9eb0a6c4aae1b00a7369eadd7ca0bbe946cb4c953b6751aa20d357c2f482157
 F src/vacuum.c 762ee9bbf8733d87d8cd06f58d950e881982e416f8c767334a40ffd341b6bff5
-F src/vdbe.c 39675332be215b4672f8800b9355e190476ff5fe35fe71f2c9944a3f9dce17b7
+F src/vdbe.c 99a0f275c83c01332b9af6179f2ee1e5d24ad81f90f17f8364397f8a3d20fb40
 F src/vdbe.h 134beb7a12a6213c00eba58febaede33447cc4441bc568a0d9c144b33fc3720a
 F src/vdbeInt.h 95f7adfdc5c8f1353321f55a6c5ec00a90877e3b85af5159e393afb41ff54110
 F src/vdbeapi.c fea41171884a4de119f8b10ab514c788674eeeb7f27218bb6d008e1310bfd07f
@@ -1708,7 +1708,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 57508518ef9d003d259ba98dcc32e5104aca26731a7161808741fe10bc0830d0
-R 8ef9da63ad321cc3596e92a715293098
+P adcb4665490404e8da2de128dd5df9aeed8e08893649dedb6788ebb5d957b400
+R 691db3d03f207528a0777702d3649318
 U drh
-Z 8fed3cfabeba6ea8fc4880d89a25745b
+Z 3708f8d55564f3165287f25ec6417cc9
index 622a0019fae6a720c2acc91b77be0f6eb7937042..d25d53f33e1f19585309fc204a03198bf8719ece 100644 (file)
@@ -1 +1 @@
-adcb4665490404e8da2de128dd5df9aeed8e08893649dedb6788ebb5d957b400
\ No newline at end of file
+6445519e91c4f98b4a9a45d5091d733c31497ebf0eb23a76edce3091f626035d
\ No newline at end of file
index e1959761f48e862b806ac337d95eb57400dd7e12..d2fad0ffc34f85e37b51b06c178b5529f3b442a6 100644 (file)
@@ -1734,8 +1734,8 @@ int sqlite3SelectWalkFail(Walker *pWalker, Select *NotUsed){
 
 /*
 ** If the input expression is an ID with the name "true" or "false"
-** then convert it into an appropriate TK_TRUEFALSE term.  Return true
-** if a conversion occurred, and false if the expression is unaltered.
+** then convert it into an TK_TRUEFALSE term.  Return non-zero if
+** the conversion happened, and zero if the expression is unaltered.
 */
 int sqlite3ExprIdToTrueFalse(Expr *pExpr){
   assert( pExpr->op==TK_ID || pExpr->op==TK_STRING );
@@ -1749,10 +1749,10 @@ int sqlite3ExprIdToTrueFalse(Expr *pExpr){
 }
 
 /*
-** The argument is one of a TK_TRUEFALSE term.  Return 1 if it is TRUE
+** The argument must be a TK_TRUEFALSE Expr node.  Return 1 if it is TRUE
 ** and 0 if it is FALSE.
 */
-int sqlite3ExprTruthOperand(const Expr *pExpr){
+int sqlite3ExprTruthValue(const Expr *pExpr){
   assert( pExpr->op==TK_TRUEFALSE );
   assert( sqlite3StrICmp(pExpr->u.zToken,"true")==0
        || sqlite3StrICmp(pExpr->u.zToken,"false")==0 );
@@ -3578,7 +3578,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
       return target;
     }
     case TK_TRUEFALSE: {
-      sqlite3VdbeAddOp2(v, OP_Integer, sqlite3ExprTruthOperand(pExpr), target);
+      sqlite3VdbeAddOp2(v, OP_Integer, sqlite3ExprTruthValue(pExpr), target);
       return target;
     }
 #ifndef SQLITE_OMIT_FLOATING_POINT
@@ -3737,12 +3737,15 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
       break;
     }
     case TK_TRUTH: {
-      int isTrue;
+      int isTrue;    /* IS TRUE or IS NOT TRUE */
+      int bNormal;   /* IS TRUE or IS FALSE */
       r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
       testcase( regFree1==0 );
-      isTrue = sqlite3ExprTruthOperand(pExpr->pRight);
-      sqlite3VdbeAddOp4Int(v, OP_IsTrue, r1, inReg, !isTrue,
-                           isTrue ^ (pExpr->op2==TK_IS));
+      isTrue = sqlite3ExprTruthValue(pExpr->pRight);
+      bNormal = pExpr->op2==TK_IS;
+      testcase( isTrue && bNormal);
+      testcase( !isTrue && bNormal);
+      sqlite3VdbeAddOp4Int(v, OP_IsTrue, r1, inReg, !isTrue, isTrue ^ bNormal);
       break;
     }
     case TK_ISNULL:
@@ -4521,13 +4524,13 @@ void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
       break;
     }
     case TK_TRUTH: {
-      int isNot;
-      int isTrue;
+      int isNot;      /* IS NOT TRUE or IS NOT FALSE */
+      int isTrue;     /* IS TRUE or IS NOT TRUE */
       testcase( jumpIfNull==0 );
       isNot = pExpr->op2==TK_ISNOT;
-      isTrue = sqlite3ExprTruthOperand(pExpr->pRight);
+      isTrue = sqlite3ExprTruthValue(pExpr->pRight);
       testcase( isTrue && isNot );
-      testcase( isTrue && !isNot );
+      testcase( !isTrue && isNot );
       if( isTrue ^ isNot ){
         sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,
                           isNot ? SQLITE_JUMPIFNULL : 0);
@@ -4692,14 +4695,13 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
       break;
     }
     case TK_TRUTH: {
-      int isNot;
-      int isTrue;
+      int isNot;   /* IS NOT TRUE or IS NOT FALSE */
+      int isTrue;  /* IS TRUE or IS NOT TRUE */
       testcase( jumpIfNull==0 );
-      assert( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT );
       isNot = pExpr->op2==TK_ISNOT;
-      isTrue = sqlite3ExprTruthOperand(pExpr->pRight);
+      isTrue = sqlite3ExprTruthValue(pExpr->pRight);
       testcase( isTrue && isNot );
-      testcase( isTrue && !isNot );
+      testcase( !isTrue && isNot );
       if( isTrue ^ isNot ){
         /* IS TRUE and IS NOT FALSE */
         sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest,
@@ -4708,7 +4710,7 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
       }else{
         /* IS FALSE and IS NOT TRUE */
         sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,
-                          isNot ? 0: SQLITE_JUMPIFNULL);
+                          isNot ? 0 : SQLITE_JUMPIFNULL);
       }
       break;
     }
index 81e4fdf1e09bb3a92cacd370c67f400aa4276000..49cc1cb0d4486bdc47eae5208d36e88e1b2a3289 100644 (file)
@@ -314,7 +314,7 @@ ccons ::= DEFAULT MINUS(A) term(X) scanpt(Z).      {
 ccons ::= DEFAULT scanpt id(X).       {
   Expr *p = tokenExpr(pParse, TK_STRING, X);
   sqlite3ExprIdToTrueFalse(p);
-  testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthOperand(p) );
+  testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthValue(p) );
   sqlite3AddDefaultValue(pParse,p,X.z,X.z+X.n);
 }
 
index 4dd58d33706f530dc449f4613a182be45376dbdd..eba52b677035643baed238bda9faa347e9f362bc 100644 (file)
@@ -3840,7 +3840,7 @@ void sqlite3Savepoint(Parse*, int, Token*);
 void sqlite3CloseSavepoints(sqlite3 *);
 void sqlite3LeaveMutexAndCloseZombie(sqlite3*);
 int sqlite3ExprIdToTrueFalse(Expr*);
-int sqlite3ExprTruthOperand(const Expr*);
+int sqlite3ExprTruthValue(const Expr*);
 int sqlite3ExprIsConstant(Expr*);
 int sqlite3ExprIsConstantNotJoin(Expr*);
 int sqlite3ExprIsConstantOrFunction(Expr*, u8);
index cfe818268f9d17731a10e45b5ef9559e65079e23..e33fe6e227e6470cae300714184e9da2616c5231 100644 (file)
@@ -294,7 +294,7 @@ void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 moreToFollow){
     }
     case TK_TRUEFALSE: {
       sqlite3TreeViewLine(pView,
-         sqlite3ExprTruthOperand(pExpr) ? "TRUE" : "FALSE");
+         sqlite3ExprTruthValue(pExpr) ? "TRUE" : "FALSE");
       break;
     }
 #ifndef SQLITE_OMIT_BLOB_LITERAL
@@ -361,7 +361,7 @@ void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 moreToFollow){
       assert( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT );
       assert( pExpr->pRight );
       assert( pExpr->pRight->op==TK_TRUEFALSE );
-      x = (pExpr->op2==TK_ISNOT)*2 + sqlite3ExprTruthOperand(pExpr->pRight);
+      x = (pExpr->op2==TK_ISNOT)*2 + sqlite3ExprTruthValue(pExpr->pRight);
       zUniOp = azOp[x];
       break;
     }
index cdc16292b84cf39cf369d1a3117d978f101136b9..10715a8232b6f0d5d9ca5ffb725ea427851129fb 100644 (file)
@@ -2197,7 +2197,7 @@ case OP_Or: {             /* same as TK_OR, in1, in2, out3 */
 ** This opcode implements the IS TRUE, IS FALSE, IS NOT TRUE, and
 ** IS NOT FALSE operators.
 **
-** Interpret the value in register P1 as a boolean value.  Store the that
+** Interpret the value in register P1 as a boolean value.  Store that
 ** boolean (a 0 or 1) in register P2.  Or if the value in register P1 is 
 ** NULL, then the P3 is stored in register P2.  Invert the answer if P4
 ** is 1.
@@ -2205,15 +2205,16 @@ case OP_Or: {             /* same as TK_OR, in1, in2, out3 */
 ** The logic is summarized like this:
 **
 ** <ul> 
-** <li> P3==0, P4==0  &rarr;  r[P2] = r[P1] IS TRUE
-** <li> P3==1, P4==1  &rarr;  r[P2] = r[P1] IS FALSE
-** <li> P3==0, P4==1  &rarr;  r[P2] = r[P1] IS NOT TRUE
-** <li> P3==1, P4==0  &rarr;  r[P2] = r[P1] IS NOT FALSE
+** <li> If P3==0 and P4==0  then  r[P2] := r[P1] IS TRUE
+** <li> If P3==1 and P4==1  then  r[P2] := r[P1] IS FALSE
+** <li> If P3==0 and P4==1  then  r[P2] := r[P1] IS NOT TRUE
+** <li> If P3==1 and P4==0  then  r[P2] := r[P1] IS NOT FALSE
 ** </ul>
 */
 case OP_IsTrue: {               /* in1, out2 */
   assert( pOp->p4type==P4_INT32 );
   assert( pOp->p4.i==0 || pOp->p4.i==1 );
+  assert( pOp->p3==0 || pOp->p3==1 );
   sqlite3VdbeMemSetInt64(&aMem[pOp->p2],
       sqlite3VdbeBooleanValue(&aMem[pOp->p1], pOp->p3) ^ pOp->p4.i);
   break;