]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Provide the SQLITE_MAX_SCHEMA_RETRY compile-time parameter for adjusting the
authordrh <drh@noemail.net>
Thu, 23 Jun 2011 01:42:53 +0000 (01:42 +0000)
committerdrh <drh@noemail.net>
Thu, 23 Jun 2011 01:42:53 +0000 (01:42 +0000)
number of reparse attempts after a schema change.

FossilOrigin-Name: 8dca748b23fa6f9abf47a186dcd1766f4dcf3ab7

manifest
manifest.uuid
src/vdbeapi.c

index 1f5515455f01656b4b487ed5fa1fb243d51f6e46..aaff29d2eb3c48ae42269d7c1895b12ebf59de04 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sunused\svariables\sfrom\stest_vfs.c
-D 2011-06-23T01:07:49.019
+C Provide\sthe\sSQLITE_MAX_SCHEMA_RETRY\scompile-time\sparameter\sfor\sadjusting\sthe\nnumber\sof\sreparse\sattempts\safter\sa\sschema\schange.
+D 2011-06-23T01:42:53.188
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in c1d7a7f4fd8da6b1815032efca950e3d5125407e
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -241,7 +241,7 @@ F src/vacuum.c 05513dca036a1e7848fe18d5ed1265ac0b32365e
 F src/vdbe.c 50b5b4ef29d928a4f60905f820ee1ab2f8ced29f
 F src/vdbe.h 5cf09e7ee8a3f7d93bc51f196a96550786afe7a1
 F src/vdbeInt.h ad84226cc0adcb1185c22b70696b235a1678bb45
-F src/vdbeapi.c 0eeadc75e44a30efd996d6af6e7c5a2488e35be8
+F src/vdbeapi.c 2f908c65337b16c6249ab378d477e74492cf759b
 F src/vdbeaux.c 0b2e2880f13af400a27c92a7673287c3eaec8b21
 F src/vdbeblob.c f024f0bf420f36b070143c32b15cc7287341ffd3
 F src/vdbemem.c 0498796b6ffbe45e32960d6a1f5adfb6e419883b
@@ -948,7 +948,7 @@ F tool/symbols.sh bc2a3709940d47c8ac8e0a1fdf17ec801f015a00
 F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings.sh 347d974d143cf132f953b565fbc03026f19fcb4d
-P ba39382ef546b4c4ae15ed90ef0b6c87762bffef
-R a2e4da6d4f37b715c700de568f5ee337
+P 07884cc218e6899efd163448ab116f296722f7b8
+R 1ebb2dce4c03a2b8c248fc12b488baac
 U drh
-Z a27503cdff9ca0289ec2563bb6165861
+Z ee2965e68946933dec7ceb7c99aa065f
index c7300f7bbce4b3a3d699271cfdc52c75ace6ba88..fe91914370471c3ef7a5e839f8b27404fa169e08 100644 (file)
@@ -1 +1 @@
-07884cc218e6899efd163448ab116f296722f7b8
\ No newline at end of file
+8dca748b23fa6f9abf47a186dcd1766f4dcf3ab7
\ No newline at end of file
index 5923a4c01fbd468a85f98328c94ad756bdbee1d9..a87b5c9acd77fa6bc0c9d5e053681f04e51a2bfe 100644 (file)
@@ -459,6 +459,14 @@ end_of_step:
   return (rc&db->errMask);
 }
 
+/*
+** The maximum number of times that a statement will try to reparse
+** itself before giving up and returning SQLITE_SCHEMA.
+*/
+#ifndef SQLITE_MAX_SCHEMA_RETRY
+# define SQLITE_MAX_SCHEMA_RETRY 5
+#endif
+
 /*
 ** This is the top-level implementation of sqlite3_step().  Call
 ** sqlite3Step() to do most of the work.  If a schema error occurs,
@@ -477,7 +485,7 @@ int sqlite3_step(sqlite3_stmt *pStmt){
   db = v->db;
   sqlite3_mutex_enter(db->mutex);
   while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
-         && cnt++ < 5
+         && cnt++ < SQLITE_MAX_SCHEMA_RETRY
          && (rc2 = rc = sqlite3Reprepare(v))==SQLITE_OK ){
     sqlite3_reset(pStmt);
     v->expired = 0;