From: drh Date: Mon, 14 Sep 2015 19:26:37 +0000 (+0000) Subject: Testability improvements for the ONEPASS_MULTI enhancement. X-Git-Tag: version-3.9.0~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b79d5529af52bddb88ea7961f9dd10051c33cfe7;p=thirdparty%2Fsqlite.git Testability improvements for the ONEPASS_MULTI enhancement. FossilOrigin-Name: d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2 --- diff --git a/manifest b/manifest index d135901a66..836476cb10 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 266475face..93b327f2ec 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -379455af9fdfb299a857d46f35f0a76ed6daa08a \ No newline at end of file +d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 0d1035e5a0..23338879c5 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -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->p1nCursor ); 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 );