Index: src/vdbe.c ================================================================== --- src/vdbe.c +++ src/vdbe.c @@ -41,11 +41,11 @@ ** documentation, headers files, or other derived files. The formatting ** of the code in this file is, therefore, important. See other comments ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.371 2004/06/14 05:10:43 danielk1977 Exp $ +** $Id: vdbe.c,v 1.372 2004/06/14 13:14:59 danielk1977 Exp $ */ #include "sqliteInt.h" #include "os.h" #include #include "vdbeInt.h" @@ -4709,8 +4709,9 @@ if( db->magic!=SQLITE_MAGIC_BUSY ){ rc = SQLITE_MISUSE; }else{ rc = SQLITE_INTERRUPT; } + p->rc = rc; sqlite3SetString(&p->zErrMsg, sqlite3ErrStr(rc), (char*)0); goto vdbe_halt; } Index: src/vdbeaux.c ================================================================== --- src/vdbeaux.c +++ src/vdbeaux.c @@ -1149,10 +1149,11 @@ if( pBt ){ sqlite3BtreeCommit(pBt); } } } + return rc; } /* ** This routine checks that the sqlite3.activeVdbeCnt count variable @@ -1273,10 +1274,12 @@ } if( p->rc!=SQLITE_OK ){ sqlite3RollbackInternalChanges(db); + }else if( db->flags & SQLITE_InternChanges ){ + db->flags &= ~SQLITE_InternChanges; } if( (p->magic==VDBE_MAGIC_RUN && p->pc>=0) || p->magic==VDBE_MAGIC_HALT ){ db->activeVdbeCnt--; } Index: test/quick.test ================================================================== --- test/quick.test +++ test/quick.test @@ -8,11 +8,11 @@ # May you share freely, never taking more than you give. # #*********************************************************************** # This file runs all tests. # -# $Id: quick.test,v 1.19 2004/05/24 07:34:49 danielk1977 Exp $ +# $Id: quick.test,v 1.20 2004/06/14 13:14:59 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl rename finish_test really_finish_test proc finish_test {} {} @@ -26,16 +26,14 @@ memleak.test misuse.test format3.test } -lappend EXCLUDE interrupt.test ;# assert() fails in btree lappend EXCLUDE ioerr.test ;# seg-faults (?) lappend EXCLUDE memdb.test ;# fails - malformed database lappend EXCLUDE printf.test ;# sqlite3_XX vs sqlite_XX problem -lappend EXCLUDE auth.test ;# Cannot attach empty databases. lappend EXCLUDE tableapi.test ;# sqlite3_XX vs sqlite_XX problem lappend EXCLUDE version.test ;# uses the btree_meta API (not updated) # Some tests fail in these file as a result of the partial manifest types # implementation.