diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-09 17:23:50 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-09 17:23:50 +0000 |
commit | 8de2de0206929c9e72cd07dc987e3263970e0829 (patch) | |
tree | 72e59f428440e3a10a8ea6ab3dff9734cf97e8ab /modules/simpletest/tests/database_test.test | |
parent | 620a306ea42e24af211d41257fcc35d41eb33ab0 (diff) | |
download | brdo-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.test | 28 |
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. |