]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Testability improvements for the ONEPASS_MULTI enhancement.
authordrh <drh@noemail.net>
Mon, 14 Sep 2015 19:26:37 +0000 (19:26 +0000)
committerdrh <drh@noemail.net>
Mon, 14 Sep 2015 19:26:37 +0000 (19:26 +0000)
FossilOrigin-Name: d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2

manifest
manifest.uuid
src/vdbe.c

index d135901a66eec6a8fb573504490b365f8259bac3..836476cb10ee2fcd9c44efd8b4a79278b1b02b79 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\stypo\sin\san\sSQLITE_USER_AUTHENTICATION\smacro.
-D 2015-09-14T14:49:23.201
+C Testability\simprovements\sfor\sthe\sONEPASS_MULTI\senhancement.
+D 2015-09-14T19:26:37.988
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -403,7 +403,7 @@ F src/update.c eb7ab3ff2928628692a4f14be397c95f4a681d97
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c fc612367108b74573c5fd13a85d0a23027f438bd
 F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
-F src/vdbe.c a8a5cb1126bf79104e00326abd6a7d22ac3bc4c3
+F src/vdbe.c 5048103aa6bc9c01bf1a4620729256d1e873bb6c
 F src/vdbe.h 4bc88bd0e06f8046ee6ab7487c0015e85ad949ad
 F src/vdbeInt.h 8b867eac234e28627ffcace3cd4b4b79bbec664b
 F src/vdbeapi.c 0d890f57caf143b114a95ce699e59af51359c508
@@ -1387,7 +1387,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 16e56bdadef903c6439a487f2683388aeeb0c625
-R f8fa410ffd0eb073e2e43d46c84640d3
+P 379455af9fdfb299a857d46f35f0a76ed6daa08a
+R 240d53905959924a39a1969f0c2c4fad
 U drh
-Z 5de1b91d25cb0490451927525818647a
+Z db76ee6590838fdbed88f2282d6173bf
index 266475face4bae895d452bda7a56b8aa526d7abc..93b327f2ec85ee98aca5cdfa7ebd77fb1163cd75 100644 (file)
@@ -1 +1 @@
-379455af9fdfb299a857d46f35f0a76ed6daa08a
\ No newline at end of file
+d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2
\ No newline at end of file
index 0d1035e5a0f6ad808f197542f86bf033b68465f2..23338879c5cc2f798e98000f1dd4a3346ebdcb43 100644 (file)
@@ -4003,6 +4003,7 @@ case OP_NotExists: {        /* jump, in3 */
   res = 0;
   iKey = pIn3->u.i;
   rc = sqlite3BtreeMovetoUnpacked(pCrsr, 0, iKey, 0, &res);
+  assert( rc==SQLITE_OK || res==0 );
   pC->movetoTarget = iKey;  /* Used by OP_Delete */
   pC->nullRow = 0;
   pC->cacheStatus = CACHE_STALE;
@@ -4010,8 +4011,12 @@ case OP_NotExists: {        /* jump, in3 */
   VdbeBranchTaken(res!=0,2);
   pC->seekResult = res;
   if( res!=0 ){
-    if( pOp->p2==0 && rc==SQLITE_OK ) rc = SQLITE_CORRUPT_BKPT;
-    goto jump_to_p2;
+    assert( rc==SQLITE_OK );
+    if( pOp->p2==0 ){
+      rc = SQLITE_CORRUPT_BKPT;
+    }else{
+      goto jump_to_p2;
+    }
   }
   break;
 }
@@ -4301,6 +4306,7 @@ case OP_InsertInt: {
 */
 case OP_Delete: {
   VdbeCursor *pC;
+  u8 hasUpdateCallback;
 
   assert( pOp->p1>=0 && pOp->p1<p->nCursor );
   pC = p->apCsr[pOp->p1];
@@ -4308,7 +4314,8 @@ case OP_Delete: {
   assert( pC->pCursor!=0 );  /* Only valid for real tables, no pseudotables */
   assert( pC->deferredMoveto==0 );
 
-  if( pOp->p5 && db->xUpdateCallback && pOp->p4.z && pC->isTable ){
+  hasUpdateCallback = db->xUpdateCallback && pOp->p4.z && pC->isTable;
+  if( pOp->p5 && hasUpdateCallback ){
     sqlite3BtreeKeySize(pC->pCursor, &pC->movetoTarget);
   }
 
@@ -4327,7 +4334,7 @@ case OP_Delete: {
   pC->cacheStatus = CACHE_STALE;
 
   /* Invoke the update-hook if required. */
-  if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z && pC->isTable ){
+  if( rc==SQLITE_OK && hasUpdateCallback ){
     db->xUpdateCallback(db->pUpdateArg, SQLITE_DELETE,
                         db->aDb[pC->iDb].zName, pOp->p4.z, pC->movetoTarget);
     assert( pC->iDb>=0 );