summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/database_test.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-06-27 09:41:56 +0000
committerDries Buytaert <dries@buytaert.net>2009-06-27 09:41:56 +0000
commit7613aa590880c0ed2397e04cc7b17efdca2169e3 (patch)
tree204ad08b719d976e2603792775d8eeeac29f3cf6 /modules/simpletest/tests/database_test.test
parentc25f3ac5dfb862def561937319bef45a2264ede8 (diff)
downloadbrdo-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.test23
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() {