diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-06-27 09:41:56 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-06-27 09:41:56 +0000 |
commit | 7613aa590880c0ed2397e04cc7b17efdca2169e3 (patch) | |
tree | 204ad08b719d976e2603792775d8eeeac29f3cf6 /modules/simpletest/tests/database_test.test | |
parent | c25f3ac5dfb862def561937319bef45a2264ede8 (diff) | |
download | brdo-7613aa590880c0ed2397e04cc7b17efdca2169e3.tar.gz brdo-7613aa590880c0ed2397e04cc7b17efdca2169e3.tar.bz2 |
- Patch #369314 by Berdir: make sub-selects work.
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-rw-r--r-- | modules/simpletest/tests/database_test.test | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index 6256ff22c..1ecf9c536 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1365,6 +1365,29 @@ class DatabaseSelectSubqueryTestCase extends DatabaseTestCase { } /** + * Test that we can use a subquery in a FROM clause. + */ + function testConditionSubquerySelect() { + // Create a subquery, which is just a normal query object. + $subquery = db_select('test_task', 'tt'); + $subquery->addField('tt', 'pid', 'pid'); + $subquery->condition('tt.priority', 1); + + // Create another query that joins against the virtual table resulting + // from the subquery. + $select = db_select('test_task', 'tt2'); + $select->addField('tt2', 'task'); + $select->condition('tt2.pid', $subquery, 'IN'); + + // The resulting query should be equivalent to: + // SELECT tt2.name + // FROM test tt2 + // WHERE tt2.pid IN (SELECT tt.pid AS pid FROM test_task tt WHERE tt.priority=1) + $people = $select->execute()->fetchCol(); + $this->assertEqual(count($people), 5, t('Returned the correct number of rows.')); + } + + /** * Test that we can use a subquery in a JOIN clause. */ function testJoinSubquerySelect() { |