Index: modules/simpletest/tests/database_test.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/database_test.test,v
retrieving revision 1.95
diff -u -p -r1.95 database_test.test
--- modules/simpletest/tests/database_test.test 28 Jul 2010 10:52:12 -0000  1.95
+++ modules/simpletest/tests/database_test.test 5 Aug 2010 17:13:18 -0000
@@ -1597,6 +1597,33 @@ class DatabaseSelectSubqueryTestCase ext
   }

   /**
+   * Test that subqueries also work correctly after calling __toString() on the
+   * query object.
+   */
+  function testFromSubquerySelectToString() {
+    // Create a subquery which filters on a certain value.
+    $subquery = db_select('test', 't');
+    $subquery->addField('t', 'name', 'name');
+    $subquery->addField('t', 'age', 'age');
+    $subquery->condition('age', 25);
+
+    // Create an outer query filtering on a different value for the same field.
+    $select = db_select($subquery, 't2');
+    $select->addField('t2', 'name', 'name');
+    $select->condition('age', 26);
+
+    // The resulting query should be equivalent to:
+    // SELECT t2.name
+    // FROM (SELECT t.name AS name, t.age AS age FROM test t WHERE age = 25) t2
+    // WHERE age = 26
+    (string) $select;
+    $people = $select->execute()->fetchAll();
+
+    // This should of course return no results.
+    $this->assertEqual(count($people), 0, t('Returned the correct number of rows.'));
+  }
+
+  /**
    * Test that we can use a subquery in a FROM clause with a limit.
    */
   function testFromSubquerySelectWithLimit() {
