? sites/default/modules
? sites/default/settings.php
Index: includes/database/mysql/database.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/mysql/database.inc,v
retrieving revision 1.3
diff -u -p -r1.3 database.inc
--- includes/database/mysql/database.inc	21 Sep 2008 15:27:20 -0000	1.3
+++ includes/database/mysql/database.inc	19 Oct 2008 04:27:56 -0000
@@ -40,10 +40,8 @@ class DatabaseConnection_mysql extends D
   }
 
   public function queryRange($query, Array $args, $from, $count, Array $options) {
-    // Backward compatibility hack, temporary.
-    $query = str_replace(array('%d' , '%f' , '%b' , "'%s'"), '?', $query);
-
-    return $this->query($query . ' LIMIT ' . $from . ', ' . $count, $args, $options);
+    $query = $query . ' LIMIT ' . $from . ', ' . $count;
+    return $this->query($query, $args, $options);
   }
 
   public function queryTemporary($query, Array $args, $tablename) {
Index: includes/database/pgsql/database.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/pgsql/database.inc,v
retrieving revision 1.3
diff -u -p -r1.3 database.inc
--- includes/database/pgsql/database.inc	15 Sep 2008 20:48:07 -0000	1.3
+++ includes/database/pgsql/database.inc	19 Oct 2008 04:27:56 -0000
@@ -76,10 +76,8 @@ class DatabaseConnection_pgsql extends D
   }
 
   public function queryRange($query, Array $args, $from, $count, Array $options) {
-    // Backward compatibility hack, temporary.
-    $query = str_replace(array('%d' , '%f' , '%b' , "'%s'"), '?', $query);
-
-    return $this->query($query . ' LIMIT ' . $count . ' OFFSET ' . $from, $args, $options);
+    $query = $query . ' LIMIT ' . $count . ' OFFSET ' . $from;
+    return $this->query($query, $args, $options);
   }
 
   public function queryTemporary($query, Array $args, $tablename) {
Index: modules/simpletest/tests/database_test.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/database_test.test,v
retrieving revision 1.10
diff -u -p -r1.10 database_test.test
--- modules/simpletest/tests/database_test.test	16 Oct 2008 14:58:48 -0000	1.10
+++ modules/simpletest/tests/database_test.test	19 Oct 2008 04:27:57 -0000
@@ -1804,3 +1804,59 @@ class DatabaseLoggingTestCase extends Da
     }
   }
 }
+
+/**
+ * Range query tests.
+ */
+class DatabaseRangeQueryTestCase extends DatabaseTestCase {
+
+  function getInfo() {
+    return array(
+      'name' => t('Range query test'),
+      'description' => t('Test the Range query builder.'),
+      'group' => t('Database'),
+    );
+  }
+
+  /**
+   * Test that Range query is functioning with default values.
+   */
+  function testRangeQueryDefault() {
+    $count = 0;
+    $results = db_query_range("SELECT * FROM {test}", array());
+    $rows = count($results->fetchAll());
+    $this->assertEqual($rows, $count, t('Range query is functioning with default values.'));
+  }
+
+  /**
+   * Test that Range query is functioning with range limit.
+   */
+  function testRangeQueryRangeLimit() {
+    $count = 2;
+    $results = db_query_range("SELECT * FROM {test}", array(), 0, $count);
+    $rows = count($results->fetchAll());
+    $this->assertEqual($rows, $count, t('Range query is functioning with range limit.'));
+  }
+
+  /**
+   * Test that Range query is functioning with named placeholders.
+   */
+  function testRangeQueryNamedPlaceholders() {
+    // Query should return 3 successful results, but we just fetch 2 of it.
+    $count = 2;
+    $results = db_query_range("SELECT * FROM {test} WHERE age >= :age", array(':age' => 26), 0, $count);
+    $rows = count($results->fetchAll());
+    $this->assertEqual($rows, $count, t('Range query is functioning with named placeholders.'));
+  }
+
+  /**
+   * Test that Range query is functioning with unnamed placeholders.
+   */
+  function testRangeQueryUnnamedPlaceholders() {
+    // Query should return 3 successful results, but we just fetch 2 of it.
+    $count = 2;
+    $results = db_query_range("SELECT * FROM {test} WHERE age >= ?", array(26), 0, $count);
+    $rows = count($results->fetchAll());
+    $this->assertEqual($rows, $count, t('Range query is functioning with unnamed placeholders.'));
+  }
+}
