]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When loading a database schema, do not clear the SQLITE_InternChanges flag. This...
authordanielk1977 <danielk1977@noemail.net>
Mon, 13 Aug 2007 14:41:19 +0000 (14:41 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Mon, 13 Aug 2007 14:41:19 +0000 (14:41 +0000)
FossilOrigin-Name: 540a7b28bc37709056cfdb13286274ec5bdd8423

manifest
manifest.uuid
src/prepare.c

index 1094ac9de9f6bcba9c7c99a5a2ad6efc825e33fd..06247a457446ac779708de7286b2fd3c53478fb6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\stest\slabels\sin\smallocC.test.\s(CVS\s4212)
-D 2007-08-13T12:58:18
+C When\sloading\sa\sdatabase\sschema,\sdo\snot\sclear\sthe\sSQLITE_InternChanges\sflag.\sThis\sfixes\sthe\sproblem\sillustrated\sby\s(4211).\s(CVS\s4213)
+D 2007-08-13T14:41:19
 F Makefile.in 0c0e53720f658c7a551046442dd7afba0b72bfbe
 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -103,7 +103,7 @@ F src/pager.c cdf561d3ae4009be902df714da4518dc3522e206
 F src/pager.h 94110a5570dca30d54a883e880a3633b2e4c05ae
 F src/parse.y ad2ce25665be7f7303137f774a4e3e72e0d036ff
 F src/pragma.c 7914a6b9ea05f158800116dfcae11e52ab8e39c4
-F src/prepare.c 609bb27860ce98ab39889fecc0998dfd8220891b
+F src/prepare.c 3257b63db949aee338a16ad23e09df8d56c1c36f
 F src/printf.c 9b3048d270e8bb2f8b910b491ac3aadece6cfab2
 F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
 F src/select.c 3b167744fc375bddfddcef87feb18f5171737677
@@ -525,7 +525,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P be50387e658a9a73e12b07ca89ae75e871489f16
-R fdaa1b644a67c60415028c6d452b9b0d
-U drh
-Z 9139cdcd5ab7595954bd78c2fc6145da
+P 7d4cdff444b98b76a34bd85d0a43cda28e7dffe4
+R 67369a53b9b79d6642304c8698e2f200
+U danielk1977
+Z 3331cfbcfcebf80726e0c74ecb2e7084
index 6879e286d9a8408c858aefc16ad3cb18516b6cfc..aaedf3cc0b4b7e5e8f48468d86773d7922407495 100644 (file)
@@ -1 +1 @@
-7d4cdff444b98b76a34bd85d0a43cda28e7dffe4
\ No newline at end of file
+540a7b28bc37709056cfdb13286274ec5bdd8423
\ No newline at end of file
index 82c72413ea336eeb2253bc4a7fc9f8ba15cf6e5f..4a040eb490692ca3c5e904d2e9d02f5926e6fcec 100644 (file)
@@ -13,7 +13,7 @@
 ** interface, and routines that contribute to loading the database schema
 ** from disk.
 **
-** $Id: prepare.c,v 1.51 2007/06/24 10:14:00 danielk1977 Exp $
+** $Id: prepare.c,v 1.52 2007/08/13 14:41:19 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -337,7 +337,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
 */
 int sqlite3Init(sqlite3 *db, char **pzErrMsg){
   int i, rc;
-  int called_initone = 0;
+  int commit_internal = !(db->flags&SQLITE_InternChanges);
   
   if( db->init.busy ) return SQLITE_OK;
   rc = SQLITE_OK;
@@ -348,7 +348,6 @@ int sqlite3Init(sqlite3 *db, char **pzErrMsg){
     if( rc ){
       sqlite3ResetInternalSchema(db, i);
     }
-    called_initone = 1;
   }
 
   /* Once all the other databases have been initialised, load the schema
@@ -361,12 +360,11 @@ int sqlite3Init(sqlite3 *db, char **pzErrMsg){
     if( rc ){
       sqlite3ResetInternalSchema(db, 1);
     }
-    called_initone = 1;
   }
 #endif
 
   db->init.busy = 0;
-  if( rc==SQLITE_OK && called_initone ){
+  if( rc==SQLITE_OK && commit_internal ){
     sqlite3CommitInternalChanges(db);
   }