]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a bug in sqlite3_prepare_v2() introduced by checkin (3578) and reported
authordrh <drh@noemail.net>
Fri, 12 Jan 2007 23:43:42 +0000 (23:43 +0000)
committerdrh <drh@noemail.net>
Fri, 12 Jan 2007 23:43:42 +0000 (23:43 +0000)
on the mailing list. (CVS 3592)

FossilOrigin-Name: 87248470362f444f2339fee18d3624e8544f5256

manifest
manifest.uuid
src/vdbe.c
test/capi3c.test

index b7944618fee6a1a28cac886024e49bf3cad63391..39be5b72c64eae18432159e357aee526058e1b33 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\sin\slemon.\s\sThe\scode\sin\swhich\sthe\serror\sappears\smight\swell\sbe\nunreachable.\s\sThe\schanges\sdoes\snot\seffect\sthe\scode\sthat\sis\sgenerated\sfor\nthe\sSQLite\sparser.\s\sTicket\s#2164.\s(CVS\s3591)
-D 2007-01-12T23:09:23
+C Fix\sa\sbug\sin\ssqlite3_prepare_v2()\sintroduced\sby\scheckin\s(3578)\sand\sreported\non\sthe\smailing\slist.\s(CVS\s3592)
+D 2007-01-12T23:43:43
 F Makefile.in 7fa74bf4359aa899da5586e394d17735f221315f
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -121,7 +121,7 @@ F src/update.c 951f95ef044cf6d28557c48dc35cb0711a0b9129
 F src/utf.c 67ecb1032bc0b42c105e88d65ef9d9f626eb0e1f
 F src/util.c 91d4cb189476906639ae611927d939691d1365f6
 F src/vacuum.c b4569b08aaa5afb141af3f76d0315745db4e9e4b
-F src/vdbe.c 074cda811466f8f752c2dd71b1dcaea001f4be64
+F src/vdbe.c 4d54659b7dbb7a61570d7136a34fbde12b61c509
 F src/vdbe.h 0025259af1939fb264a545816c69e4b5b8d52691
 F src/vdbeInt.h 1ca07f2d7446c90230346aed7fbf990c032460bc
 F src/vdbeapi.c 2d1e6843af8705a1172e54a418d2a3d5febd1dd7
@@ -169,7 +169,7 @@ F test/busy.test 0271c854738e23ad76e10d4096a698e5af29d211
 F test/capi2.test 7ecc9b342cc9ec27b53bbf95724cf2e5874fd496
 F test/capi3.test 4063c4be79fb00704154a1e459a38364de9162a9
 F test/capi3b.test 5f0bc94b104e11086b1103b20277e1910f59c7f4
-F test/capi3c.test 3d276ee4c142b9e71a867a3579906bb0876840cc
+F test/capi3c.test 5961df13666c994890ffd44f0143cf92897d18dc
 F test/cast.test f88e7b6946e9a467cf4bb142d92bb65a83747fc2
 F test/check.test e5ea0c1a06c10e81e3434ca029e2c4a562f2b673
 F test/collate1.test add9454cef160677bb8b34148b8f277ce7f9f1c4
@@ -424,7 +424,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P a72c950cdbb7ad14572ccdf9b94ceac8ea0a2588
-R a1da9ce500d2686501613055e18f40fb
+P f4ee5d83e177e7ed9f180454c01d46a395a5715d
+R 4b0815a55b922b31192db8cde97bb03b
 U drh
-Z cff8f63e04aa969446fdc95d5a9c4056
+Z 0214b95c1f9fb06ed7af23b4d12ac47e
index 573e59e0cfb1319b59bafba471316af6edd4105b..e893ed948e8351bfc2e82f566b2e6d92615e53fd 100644 (file)
@@ -1 +1 @@
-f4ee5d83e177e7ed9f180454c01d46a395a5715d
\ No newline at end of file
+87248470362f444f2339fee18d3624e8544f5256
\ No newline at end of file
index faa840fd8602d813011f96ecadfa4008771270f9..8d66b99c73db88bf3a1f71b2f3d96edb18d3d7fa 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.585 2007/01/09 14:01:14 drh Exp $
+** $Id: vdbe.c,v 1.586 2007/01/12 23:43:43 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -2517,6 +2517,8 @@ case OP_VerifyCookie: {       /* no-push */
   }
   if( rc==SQLITE_OK && iMeta!=pOp->p2 ){
     sqlite3SetString(&p->zErrMsg, "database schema has changed", (char*)0);
+    sqlite3ResetInternalSchema(db, pOp->p1);
+    sqlite3ExpirePreparedStatements(db);
     rc = SQLITE_SCHEMA;
   }
   break;
index 59f89a50352a855309c513c0c885ab24d672f6c2..8ce0781bfc600774a8e64baea189085ac91c24ba 100644 (file)
@@ -13,7 +13,7 @@
 # This is a copy of the capi3.test file that has been adapted to
 # test the new sqlite3_prepare_v2 interface.
 #
-# $Id: capi3c.test,v 1.5 2007/01/09 15:06:42 drh Exp $
+# $Id: capi3c.test,v 1.6 2007/01/12 23:43:43 drh Exp $
 #
 
 set testdir [file dirname $argv0]
@@ -1193,4 +1193,24 @@ do_test capi3c-19.99 {
   sqlite3_finalize $STMT
 } SQLITE_OK
 
+# Make sure a change in a separate database connection does not
+# cause an SQLITE_SCHEMA return.
+#
+do_test capi3c-20.1 {
+  set STMT [sqlite3_prepare_v2 $DB {SELECT * FROM t3} -1 TAIL]
+  sqlite3 db2 test.db
+  db2 eval {CREATE TABLE t4(x)}
+  sqlite3_step $STMT
+} SQLITE_ROW
+do_test capi3c-20.2 {
+  sqlite3_column_int $STMT 1
+} 2
+do_test capi3c-20.3 {
+  sqlite3_step $STMT
+} SQLITE_DONE
+do_test capi3c-20.4 {
+  db2 close
+  sqlite3_finalize $STMT
+} SQLITE_OK
+
 finish_test