summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/database_test.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-09 17:23:50 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-09 17:23:50 +0000
commit8de2de0206929c9e72cd07dc987e3263970e0829 (patch)
tree72e59f428440e3a10a8ea6ab3dff9734cf97e8ab /modules/simpletest/tests/database_test.test
parent620a306ea42e24af211d41257fcc35d41eb33ab0 (diff)
downloadbrdo-8de2de0206929c9e72cd07dc987e3263970e0829.tar.gz
brdo-8de2de0206929c9e72cd07dc987e3263970e0829.tar.bz2
- Patch #653926 by Damien Tournoud: fixed range of sub-queries not being honored.
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-rw-r--r--modules/simpletest/tests/database_test.test28
1 files changed, 27 insertions, 1 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test
index bcba352d5..cf9217ebb 100644
--- a/modules/simpletest/tests/database_test.test
+++ b/modules/simpletest/tests/database_test.test
@@ -1532,7 +1532,33 @@ class DatabaseSelectSubqueryTestCase extends DatabaseTestCase {
}
/**
- * Test that we can use a subquery in a FROM clause.
+ * Test that we can use a subquery in a FROM clause with a limit.
+ */
+ function testFromSubquerySelectWithLimit() {
+ // Create a subquery, which is just a normal query object.
+ $subquery = db_select('test_task', 'tt');
+ $subquery->addField('tt', 'pid', 'pid');
+ $subquery->addField('tt', 'task', 'task');
+ $subquery->orderBy('priority', 'DESC');
+ $subquery->range(0, 1);
+
+ // Create another query that joins against the virtual table resulting
+ // from the subquery.
+ $select = db_select($subquery, 'tt2');
+ $select->join('test', 't', 't.id=tt2.pid');
+ $select->addField('t', 'name');
+
+ // The resulting query should be equivalent to:
+ // SELECT t.name
+ // FROM (SELECT tt.pid AS pid, tt.task AS task FROM test_task tt ORDER BY priority DESC LIMIT 1 OFFSET 0) tt
+ // INNER JOIN test t ON t.id=tt.pid
+ $people = $select->execute()->fetchCol();
+
+ $this->assertEqual(count($people), 1, t('Returned the correct number of rows.'));
+ }
+
+ /**
+ * Test that we can use a subquery in a WHERE clause.
*/
function testConditionSubquerySelect() {
// Create a subquery, which is just a normal query object.