Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.434
diff -u -p -r1.434 bootstrap.inc
--- includes/bootstrap.inc	5 Nov 2010 19:05:01 -0000	1.434
+++ includes/bootstrap.inc	13 Nov 2010 08:28:53 -0000
@@ -37,6 +37,11 @@ define('DRUPAL_MINIMUM_MYSQL',  '5.0.15'
 define('DRUPAL_MINIMUM_PGSQL',  '8.3');
 
 /**
+ * Minimum supported version of SQLite, if it is used.
+ */
+define('DRUPAL_MINIMUM_SQLITE',  '3');
+
+/**
  * Indicates that the item should never be removed unless explicitly selected.
  *
  * The item may be removed using cache_clear_all() with a cache ID.
Index: includes/install.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/install.inc,v
retrieving revision 1.142
diff -u -p -r1.142 install.inc
--- includes/install.inc	22 Aug 2010 15:31:18 -0000	1.142
+++ includes/install.inc	13 Nov 2010 08:28:53 -0000
@@ -349,6 +349,7 @@ abstract class DatabaseTasks {
   }
 
   abstract public function name();
+  abstract protected function minimumVersion();
 
   /**
    * Run database tasks and tests to see if Drupal can run on the database.
@@ -356,6 +357,9 @@ abstract class DatabaseTasks {
   public function runTasks() {
     // We need to establish a connection before we can run tests.
     if ($this->connect()) {
+      if (version_compare(Database::getConnection()->version(), $this->minimumVersion()) < 0) {
+        throw new DatabaseTaskException(st("The database version %version is less than the minimum required version %minimum_version.", array('%version' => Database::getConnection()->version(), '%minimum_version' => $this->minimumVersion())));
+      }
       foreach ($this->tasks as $task) {
         if (!isset($task['function'])) {
           $task['function'] = 'runTestQuery';
Index: includes/database/mysql/install.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/mysql/install.inc,v
retrieving revision 1.4
diff -u -p -r1.4 install.inc
--- includes/database/mysql/install.inc	30 Jul 2010 01:59:14 -0000	1.4
+++ includes/database/mysql/install.inc	13 Nov 2010 08:28:53 -0000
@@ -24,5 +24,12 @@ class DatabaseTasks_mysql extends Databa
   public function name() {
     return 'MySQL, MariaDB, or equivalent';
   }
+
+  /**
+   * Returns the minimum version for mysql.
+   */
+  protected function minimumVersion() {
+    return DRUPAL_MINIMUM_MYSQL;
+  }
 }
 
Index: includes/database/pgsql/install.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/pgsql/install.inc,v
retrieving revision 1.10
diff -u -p -r1.10 install.inc
--- includes/database/pgsql/install.inc	16 Aug 2010 21:01:23 -0000	1.10
+++ includes/database/pgsql/install.inc	13 Nov 2010 08:28:53 -0000
@@ -31,6 +31,10 @@ class DatabaseTasks_pgsql extends Databa
     return 'PostgreSQL';
   }
 
+  protected function minimumVersion() {
+    return DRUPAL_MINIMUM_PGSQL;
+  }
+
   /**
    * Check encoding is UTF8.
    */
Index: includes/database/sqlite/install.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/sqlite/install.inc,v
retrieving revision 1.2
diff -u -p -r1.2 install.inc
--- includes/database/sqlite/install.inc	27 Jul 2009 19:42:56 -0000	1.2
+++ includes/database/sqlite/install.inc	13 Nov 2010 08:28:53 -0000
@@ -11,5 +11,8 @@ class DatabaseTasks_sqlite extends Datab
   public function name() {
     return 'SQLite';
   }
+  protected function minimumVersion() {
+    return DRUPAL_MINIMUM_SQLITE;
+  }
 }
 
