This commit is contained in:
parent
b116d3ad3f
commit
bf4429d69d
@ -47,6 +47,7 @@ class Doctrine_Query_Subquery_TestCase extends Doctrine_UnitTestCase
|
||||
$this->assertEqual($users->count(), 7);
|
||||
$this->assertEqual($users[0]->name, 'Arnold Schwarzenegger');
|
||||
}
|
||||
|
||||
public function testSubqueryAllowsSelectingOfAnyField()
|
||||
{
|
||||
$q = new Doctrine_Query();
|
||||
@ -84,27 +85,28 @@ class Doctrine_Query_Subquery_TestCase extends Doctrine_UnitTestCase
|
||||
$this->assertNotEqual($q->getQuery(), "SELECT e.id AS e__id, e.name AS e__name, (SELECT COUNT(e.id) AS e__0 FROM entity e WHERE e.id = e.id AND (e.type = 0)) AS e__0 FROM entity e WHERE e.name = 'zYne' AND (e.type = 0) LIMIT 1");
|
||||
|
||||
}
|
||||
|
||||
public function testGetLimitSubqueryOrderBy()
|
||||
{
|
||||
$query = new Doctrine_Query();
|
||||
$query->select('u.*, COUNT(DISTINCT a.id) num_albums');
|
||||
$query->from('User u, u.Album a');
|
||||
$query->orderby('num_albums');
|
||||
|
||||
public function testGetLimitSubqueryOrderBy2()
|
||||
{
|
||||
$q = new Doctrine_Query();
|
||||
$q->select('u.name, COUNT(DISTINCT a.id) num_albums');
|
||||
$q->from('User u, u.Album a');
|
||||
$q->orderby('num_albums');
|
||||
$q->groupby('u.id');
|
||||
|
||||
try {
|
||||
// this causes getLimitSubquery() to be used, and it fails
|
||||
$query->limit(5);
|
||||
$q->limit(5);
|
||||
|
||||
$users = $q->execute();
|
||||
|
||||
$users = $query->execute();
|
||||
|
||||
$count = $users->count();
|
||||
} catch (Doctrine_Exception $e) {
|
||||
|
||||
$this->fail();
|
||||
}
|
||||
|
||||
$this->assertEqual($count, 1);
|
||||
|
||||
$this->assertEqual($q->getSql(), 'SELECT e.id AS e__id, e.name AS e__name, COUNT(DISTINCT a.id) AS a__0 FROM entity e LEFT JOIN album a ON e.id = a.user_id WHERE e.id IN (SELECT DISTINCT e2.id FROM entity e2 LEFT JOIN album a2 ON e2.id = a2.user_id WHERE (e2.type = 0) GROUP BY e2.id ORDER BY a__0 LIMIT 5) AND (e.type = 0) GROUP BY e.id ORDER BY a__0');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
Loading…
Reference in New Issue
Block a user