Any objection to requiring SQLite >= 3.6.18 as in the attached patch?
WHY? In order to use SQLite triggers to automatically update the pristine text reference counts (see the thread "Ref-counting for pristine texts": <http://svn.haxx.se/dev/archive-2011-01/0104.shtml>), we have to either * enable recursive triggers, which requires SQLite >= 3.6.18 or * split each of our current "INSERT OR REPLACE" statements into a DELETE statement followed by an INSERT statement. The former solution is simpler, which is enough of an advantage for me. I haven't yet found other significant pros or cons. AVAILABILITY Subversion can easily be compiled with a sepcific version of SQLite, by including the SQLite source amalgamation file in the Subversion source directory. Some Linux distros include a recent enough version of SQLite already. Here are some Linux distros with the versions of SQLite they ship. (I found these on the distributions' web sites; I couldn't find version information for RedHat/Fedora.) Suse SLED/SLES-10 - 3.2.8 Suse SLED/SLES-11 - 3.6.4 Debian lenny (stable) - 3.5.9 Debian lenny-backports - 3.7.3 Debian squeeze (testing) - 3.7.3 Ubuntu dapper - 3.2.8 Ubuntu hardy - 3.4.2 Ubuntu karmic - 3.6.16 Ubuntu lucid - 3.6.22 Ubuntu maverick - 3.7.2 - Julian
Increase the minimum required version of SQLite from 3.4.0 to 3.6.18. This allows us to enable recursive triggers so that triggers will fire on both the delete and insert parts of an "INSERT OR REPLACE" statement. * INSTALL, configure.ac, build/generator/gen_win.py (WinGeneratorBase): Bump the minimum version to 3.6.18. --This line, and those below, will be ignored-- Index: INSTALL =================================================================== --- INSTALL (revision 1057551) +++ INSTALL (working copy) @@ -504,8 +504,8 @@ I. INTRODUCTION 13. SQLite (REQUIRED) - Subversion (starting with version 1.6) requires SQLite version - 3.4.0 or above, and you can meet this dependency several ways: + Subversion 1.7 requires SQLite version 3.6.18 or above. You can meet + this dependency several ways: * Use an SQLite amalgamation file. * Specify an SQLite installation to use. * Let Subversion find an installed SQLite. Index: configure.ac =================================================================== --- configure.ac (revision 1057551) +++ configure.ac (working copy) @@ -152,7 +152,7 @@ dnl Find Apache with a recent-enough mag SVN_FIND_APACHE(20020903) dnl Search for SQLite -SQLITE_MINIMUM_VER="3.4.0" +SQLITE_MINIMUM_VER="3.6.18" SQLITE_RECOMMENDED_VER="3.7.2" SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-${SQLITE_RECOMMENDED_VER}.tar.gz" SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER}, Index: build/generator/gen_win.py =================================================================== --- build/generator/gen_win.py (revision 1057551) +++ build/generator/gen_win.py (working copy) @@ -1544,8 +1544,9 @@ class WinGeneratorBase(GeneratorBase): msg = 'Found SQLite version %s\n' major, minor, patch = version - if major < 3 or (major == 3 and minor < 4): - sys.stderr.write("ERROR: SQLite 3.4.0 or higher is required " + if major < 3 or (major == 3 and minor < 6) \ + or (major == 3 and minor == 6 and patch < 18): + sys.stderr.write("ERROR: SQLite 3.6.18 or higher is required " "(%s found)\n" % self.sqlite_version); sys.exit(1) else: