]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Only invalidate the schema when the OP_ParseSchema opcode fails, not
authordrh <drh@noemail.net>
Wed, 25 Jan 2012 20:43:22 +0000 (20:43 +0000)
committerdrh <drh@noemail.net>
Wed, 25 Jan 2012 20:43:22 +0000 (20:43 +0000)
on any general failure of a vdbe program.

FossilOrigin-Name: 11f68d997da4aadf3f51c12c5139f3fdda8678bf

manifest
manifest.uuid
src/vdbe.c
src/vdbeaux.c

index 89d526200f1b56923f6aaca8a0f15f9fd548059c..c257a3ab4bb73a0628c70b142a33a482b29aea67 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\san\sFTS\sproblem\striggered\sby\squerying\sfor\san\sN\scharacter\sprefix\susing\san\sN+1\scharacter\sprefix\sindex\safter\srows\shave\sbeen\sdeleted\sfrom\sthe\sFTS\stable.
-D 2012-01-25T16:29:45.749
+C Only\sinvalidate\sthe\sschema\swhen\sthe\sOP_ParseSchema\sopcode\sfails,\snot\non\sany\sgeneral\sfailure\sof\sa\svdbe\sprogram.
+D 2012-01-25T20:43:22.828
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -240,11 +240,11 @@ F src/update.c d3076782c887c10e882996550345da9c4c9f9dea
 F src/utf.c 890c67dcfcc7a74623c95baac7535aadfe265e84
 F src/util.c 9e07bd67dfafe9c75b1da78c87ba030cebbb5388
 F src/vacuum.c 0c0ba2242355c6048d65e2b333abe0f7c06348fa
-F src/vdbe.c fc1b97fa6816bac5de2f631b7d4a9b8d8daf6c03
+F src/vdbe.c 595a240233b88960dd99380edf2fb7ec4317ee24
 F src/vdbe.h 18f581cac1f4339ec3299f3e0cc6e11aec654cdb
 F src/vdbeInt.h ef9b8584b23b033894a0804dc6b90196c6779fb9
 F src/vdbeapi.c 3662b6a468a2a4605a15dfab313baa6dff81ad91
-F src/vdbeaux.c eb13a6917ed7455b5b49236fe5cfb3d3c3e4c57b
+F src/vdbeaux.c e8cf7b251b93b9690f659deb8d95608f11139ff7
 F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb
 F src/vdbemem.c 3c171040c28a95084fb5024ab731140a86fd5439
 F src/vdbesort.c 468d43c057063e54da4f1988b38b4f46d60e7790
@@ -988,7 +988,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 7036886e83fccad32187668306ee2ae3f950dfce
-R 57813aba0c543953696b45a4603bd663
-U dan
-Z c267c1375aaf1973adf1dbf05cf88f8d
+P c05c3fd20d93f430140d762ead23bacd337ffb4d
+R 5aa59fe283a6d87f44afad865139b28c
+U drh
+Z 2035157af4127fd9885fd84104456171
index 7e71e75c35f7ec3d63bb0e41574c07aec4fc7d75..1758df6a10dc92f1b3600276f758efc60685196c 100644 (file)
@@ -1 +1 @@
-c05c3fd20d93f430140d762ead23bacd337ffb4d
\ No newline at end of file
+11f68d997da4aadf3f51c12c5139f3fdda8678bf
\ No newline at end of file
index 98f159a6aa4e276d8f80b2389484a9ec6c51a8d4..4287b49a227c8d56c191510569b0ba4962cf9af5 100644 (file)
@@ -4833,6 +4833,7 @@ case OP_ParseSchema: {
       db->init.busy = 0;
     }
   }
+  if( rc ) sqlite3ResetInternalSchema(db, -1);
   if( rc==SQLITE_NOMEM ){
     goto no_mem;
   }
index c1566f37d8321303913978a0558ac467d698851e..8fa1288e6385d0faf91e014e132d10175867c3bd 100644 (file)
@@ -2292,12 +2292,6 @@ int sqlite3VdbeHalt(Vdbe *p){
       }
       p->nChange = 0;
     }
-  
-    /* Rollback or commit any schema changes that occurred. */
-    if( p->rc!=SQLITE_OK && db->flags&SQLITE_InternChanges ){
-      sqlite3ResetInternalSchema(db, -1);
-      db->flags = (db->flags | SQLITE_InternChanges);
-    }
 
     /* Release the locks */
     sqlite3VdbeLeave(p);