You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2014/02/11 19:45:45 UTC
svn commit: r1567286 - /subversion/trunk/subversion/libsvn_subr/sqlite.c
Author: breser
Date: Tue Feb 11 18:45:45 2014
New Revision: 1567286
URL: http://svn.apache.org/r1567286
Log:
Disable SQLITE_ENABLE_STAT3 and SQLITE_ENABLE_STAT4 at runtime for versions of
SQLite that have broken implementations.
* subversion/libsvn_subr/sqlite.c
(svn_sqlite__open): For the appropriate versions call sqlite3_test_control()
with the right flags to disable the options.
Modified:
subversion/trunk/subversion/libsvn_subr/sqlite.c
Modified: subversion/trunk/subversion/libsvn_subr/sqlite.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/sqlite.c?rev=1567286&r1=1567285&r2=1567286&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/sqlite.c (original)
+++ subversion/trunk/subversion/libsvn_subr/sqlite.c Tue Feb 11 18:45:45 2014
@@ -1080,6 +1080,16 @@ svn_sqlite__open(svn_sqlite__db_t **db,
SVN_ERR(internal_open(&(*db)->db3, path, mode, scratch_pool));
+ /* disable SQLITE_ENABLE_STAT3/4 from 3.8.1 - 3.8.3 (but not 3.8.3.1+)
+ * to prevent using it when it's buggy.
+ * See: https://www.sqlite.org/src/info/4c86b126f2 */
+ if (sqlite3_libversion_number() > 3008000 &&
+ sqlite3_libversion_number() < 3008004 &&
+ strcmp(sqlite3_sourceid(),"2014-02-11")<0)
+ {
+ sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS, (*db)->db3, 0x800);
+ }
+
#ifdef SVN_UNICODE_NORMALIZATION_FIXES
/* Create extension buffers with space for 200 UCS-4 characters. */
svn_membuf__create(&(*db)->sqlext_buf1, 800, result_pool);