]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
The sqlite3_step() routine reports SQLITE_ERROR after a commit failure,
authordrh <drh@noemail.net>
Wed, 18 Apr 2007 16:45:24 +0000 (16:45 +0000)
committerdrh <drh@noemail.net>
Wed, 18 Apr 2007 16:45:24 +0000 (16:45 +0000)
not SQLITE_DONE.  This fix only effects the legacy sqlite3_prepare()
interface.  It already worked correctly with sqlite3_prepare_v2(). (CVS 3854)

FossilOrigin-Name: 165dc72d7024258e225c8a7d60118071282f0f44

manifest
manifest.uuid
src/vdbe.c

index 90d681315cda66e2bc42589fa04530f9450619b2..f4607cc596421870cec51cd6895e8788349354b1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Version\s3.3.16\s(CVS\s3853)
-D 2007-04-18T15:33:53
+C The\ssqlite3_step()\sroutine\sreports\sSQLITE_ERROR\safter\sa\scommit\sfailure,\nnot\sSQLITE_DONE.\s\sThis\sfix\sonly\seffects\sthe\slegacy\ssqlite3_prepare()\ninterface.\s\sIt\salready\sworked\scorrectly\swith\ssqlite3_prepare_v2().\s(CVS\s3854)
+D 2007-04-18T16:45:24
 F Makefile.in 8cab54f7c9f5af8f22fd97ddf1ecfd1e1860de62
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -124,7 +124,7 @@ F src/update.c 3359041db390a8f856d67272f299600e2104f350
 F src/utf.c e64a48bc21aa973eb622dd47da87d56a4cdcf528
 F src/util.c b6344325378e75b9e18175d8b6aed1723d73dad9
 F src/vacuum.c 8bd895d29e7074e78d4e80f948e35ddc9cf2beef
-F src/vdbe.c cf7808e8db2e5d1547e898ce29531295183ede6e
+F src/vdbe.c 814dab208a156250bc5e77f827f4e0c8ad734820
 F src/vdbe.h 0025259af1939fb264a545816c69e4b5b8d52691
 F src/vdbeInt.h 4b19fd8febad3fd14c4c97adaefc06754d323132
 F src/vdbeapi.c 1fca7ff056d03f131caa6b1296bb221da65ed7f4
@@ -459,7 +459,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 24683f1d29c5d312d6cabe2dde52d7c0424f629a
-R 82ca28b3f62eedfa7335fb3cb839a54b
+P 8c6b5adb5c9e0322098e15a162e80a98259d7f60
+R 20d68457fc0935c09f9220d0a08efe2a
 U drh
-Z 5411fa1ab4f1b89fab1507d7350e97c0
+Z 198442dca52a2a4365d24ace578f3316
index ea39e15b40b8376950a41729fb0becd653b85133..8f125b5884e0e533b5c4b8663bac3290324005fd 100644 (file)
@@ -1 +1 @@
-8c6b5adb5c9e0322098e15a162e80a98259d7f60
\ No newline at end of file
+165dc72d7024258e225c8a7d60118071282f0f44
\ No newline at end of file
index 839c2b1a46032ac1e35c829f9407df15293971d9..06232046d71675d8ba9e544b9c6f1b70df676884 100644 (file)
@@ -43,7 +43,7 @@
 ** 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.600 2007/04/17 08:32:34 danielk1977 Exp $
+** $Id: vdbe.c,v 1.601 2007/04/18 16:45:24 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -2369,7 +2369,11 @@ case OP_AutoCommit: {       /* no-push */
         return SQLITE_BUSY;
       }
     }
-    return SQLITE_DONE;
+    if( p->rc==SQLITE_OK ){
+      return SQLITE_DONE;
+    }else{
+      return SQLITE_ERROR;
+    }
   }else{
     sqlite3SetString(&p->zErrMsg,
         (!i)?"cannot start a transaction within a transaction":(