mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Testability improvements for the ONEPASS_MULTI enhancement.
FossilOrigin-Name: d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\sa\stypo\sin\san\sSQLITE_USER_AUTHENTICATION\smacro.
|
C Testability\simprovements\sfor\sthe\sONEPASS_MULTI\senhancement.
|
||||||
D 2015-09-14T14:49:23.201
|
D 2015-09-14T19:26:37.988
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239
|
F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -403,7 +403,7 @@ F src/update.c eb7ab3ff2928628692a4f14be397c95f4a681d97
|
|||||||
F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
|
F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
|
||||||
F src/util.c fc612367108b74573c5fd13a85d0a23027f438bd
|
F src/util.c fc612367108b74573c5fd13a85d0a23027f438bd
|
||||||
F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
|
F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
|
||||||
F src/vdbe.c a8a5cb1126bf79104e00326abd6a7d22ac3bc4c3
|
F src/vdbe.c 5048103aa6bc9c01bf1a4620729256d1e873bb6c
|
||||||
F src/vdbe.h 4bc88bd0e06f8046ee6ab7487c0015e85ad949ad
|
F src/vdbe.h 4bc88bd0e06f8046ee6ab7487c0015e85ad949ad
|
||||||
F src/vdbeInt.h 8b867eac234e28627ffcace3cd4b4b79bbec664b
|
F src/vdbeInt.h 8b867eac234e28627ffcace3cd4b4b79bbec664b
|
||||||
F src/vdbeapi.c 0d890f57caf143b114a95ce699e59af51359c508
|
F src/vdbeapi.c 0d890f57caf143b114a95ce699e59af51359c508
|
||||||
@@ -1387,7 +1387,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
|
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P 16e56bdadef903c6439a487f2683388aeeb0c625
|
P 379455af9fdfb299a857d46f35f0a76ed6daa08a
|
||||||
R f8fa410ffd0eb073e2e43d46c84640d3
|
R 240d53905959924a39a1969f0c2c4fad
|
||||||
U drh
|
U drh
|
||||||
Z 5de1b91d25cb0490451927525818647a
|
Z db76ee6590838fdbed88f2282d6173bf
|
||||||
|
@@ -1 +1 @@
|
|||||||
379455af9fdfb299a857d46f35f0a76ed6daa08a
|
d2df93f26fc0cf6fe01acfeaf2946972e9d8cca2
|
15
src/vdbe.c
15
src/vdbe.c
@@ -4003,6 +4003,7 @@ case OP_NotExists: { /* jump, in3 */
|
|||||||
res = 0;
|
res = 0;
|
||||||
iKey = pIn3->u.i;
|
iKey = pIn3->u.i;
|
||||||
rc = sqlite3BtreeMovetoUnpacked(pCrsr, 0, iKey, 0, &res);
|
rc = sqlite3BtreeMovetoUnpacked(pCrsr, 0, iKey, 0, &res);
|
||||||
|
assert( rc==SQLITE_OK || res==0 );
|
||||||
pC->movetoTarget = iKey; /* Used by OP_Delete */
|
pC->movetoTarget = iKey; /* Used by OP_Delete */
|
||||||
pC->nullRow = 0;
|
pC->nullRow = 0;
|
||||||
pC->cacheStatus = CACHE_STALE;
|
pC->cacheStatus = CACHE_STALE;
|
||||||
@@ -4010,8 +4011,12 @@ case OP_NotExists: { /* jump, in3 */
|
|||||||
VdbeBranchTaken(res!=0,2);
|
VdbeBranchTaken(res!=0,2);
|
||||||
pC->seekResult = res;
|
pC->seekResult = res;
|
||||||
if( res!=0 ){
|
if( res!=0 ){
|
||||||
if( pOp->p2==0 && rc==SQLITE_OK ) rc = SQLITE_CORRUPT_BKPT;
|
assert( rc==SQLITE_OK );
|
||||||
goto jump_to_p2;
|
if( pOp->p2==0 ){
|
||||||
|
rc = SQLITE_CORRUPT_BKPT;
|
||||||
|
}else{
|
||||||
|
goto jump_to_p2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -4301,6 +4306,7 @@ case OP_InsertInt: {
|
|||||||
*/
|
*/
|
||||||
case OP_Delete: {
|
case OP_Delete: {
|
||||||
VdbeCursor *pC;
|
VdbeCursor *pC;
|
||||||
|
u8 hasUpdateCallback;
|
||||||
|
|
||||||
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
||||||
pC = p->apCsr[pOp->p1];
|
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->pCursor!=0 ); /* Only valid for real tables, no pseudotables */
|
||||||
assert( pC->deferredMoveto==0 );
|
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);
|
sqlite3BtreeKeySize(pC->pCursor, &pC->movetoTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4327,7 +4334,7 @@ case OP_Delete: {
|
|||||||
pC->cacheStatus = CACHE_STALE;
|
pC->cacheStatus = CACHE_STALE;
|
||||||
|
|
||||||
/* Invoke the update-hook if required. */
|
/* 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->xUpdateCallback(db->pUpdateArg, SQLITE_DELETE,
|
||||||
db->aDb[pC->iDb].zName, pOp->p4.z, pC->movetoTarget);
|
db->aDb[pC->iDb].zName, pOp->p4.z, pC->movetoTarget);
|
||||||
assert( pC->iDb>=0 );
|
assert( pC->iDb>=0 );
|
||||||
|
Reference in New Issue
Block a user