$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$a['orderby']=array('u.name ASC');
$a['orderby']=array('u.name ASC');
...
@@ -48,7 +52,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
...
@@ -48,7 +52,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
$hook->hookOrderBy($a['orderby']);
$hook->hookOrderBy($a['orderby']);
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0) ORDER BY e.name ASC');
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0) ORDER BY e.name ASC');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$a['orderby']=array('u.name DESC');
$a['orderby']=array('u.name DESC');
...
@@ -56,7 +62,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
...
@@ -56,7 +62,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
$hook->hookOrderBy($a['orderby']);
$hook->hookOrderBy($a['orderby']);
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0) ORDER BY e.name DESC');
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0) ORDER BY e.name DESC');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$a['orderby']=array('u.unknown DESC');
$a['orderby']=array('u.unknown DESC');
...
@@ -64,7 +72,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
...
@@ -64,7 +72,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
$hook->hookOrderBy($a['orderby']);
$hook->hookOrderBy($a['orderby']);
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0)');
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0)');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$a['orderby']=array('u.name ASC','u.id DESC');
$a['orderby']=array('u.name ASC','u.id DESC');
...
@@ -74,7 +84,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
...
@@ -74,7 +84,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
$users=$hook->getQuery()->execute();
$users=$hook->getQuery()->execute();
}
}
publicfunctiontestHookWhereAcceptsArrays(){
publicfunctiontestHookWhereAcceptsArrays()
{
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$hook=newDoctrine_Hook('SELECT u.name FROM User u LEFT JOIN u.Phonenumber p');
$a['where']=array('u.name'=>'Jack Daniels',
$a['where']=array('u.name'=>'Jack Daniels',
...
@@ -84,7 +96,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
...
@@ -84,7 +96,9 @@ class Doctrine_Hook_TestCase extends Doctrine_UnitTestCase {
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.name LIKE ? OR e.name LIKE ?) AND e.loginname LIKE ? AND (e.type = 0)');
$this->assertEqual($hook->getQuery()->getQuery(),'SELECT e.id AS e__id, e.name AS e__name FROM entity e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.name LIKE ? OR e.name LIKE ?) AND e.loginname LIKE ? AND (e.type = 0)');
$this->assertEqual($q->getQuery(),'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE e.id = 4 AND (e.type = 0)');
$this->tables[]="Resource";
$this->tables[]="ResourceType";
try{
// test consequent calls
$this->dbh->query("DROP TABLE test_items");
$this->assertEqual($q->getQuery(),'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE e.id = 4 AND (e.type = 0)');
$this->assertEqual($q->getQuery(), "SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e e WHERE e.id = ? AND (e.type = 0)");
$this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e e LEFT JOIN phonenumber ON e.id = p.entity_id WHERE e.id IN (SELECT entity_id FROM phonenumber WHERE phonenumber = ?) AND (e.type = 0)');
$this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e e LEFT JOIN phonenumber ON e.id = p.entity_id WHERE e.id IN (SELECT entity_id FROM phonenumber WHERE phonenumber LIKE ?) AND e.id IN (SELECT entity_id FROM phonenumber WHERE phonenumber LIKE ?) AND (e.type = 0)');
$this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e e LEFT JOIN phonenumber ON e.id = p.entity_id WHERE e.id IN (SELECT entity_id FROM phonenumber WHERE phonenumber LIKE ?) AND (e.type = 0)');
public function testManyToManyFetchingWithColumnAggregationInheritance2() {
$query = new Doctrine_Query();
$users = $query->query("FROM User-b WHERE User.Group.name = 'Action Actors'");
$this->assertEqual(trim($query->getQuery()),
"SELECT e.id AS e__id FROM entity e e LEFT JOIN groupuser ON e.id = groupuser.user_id LEFT JOIN entity e2 ON e2.id = groupuser.group_id WHERE e2.name = 'Action Actors' AND (e.type = 0 AND (e2.type = 1 OR e2.type IS NULL))");
public function testManyToManyFetchingWithColumnAggregationInheritance3() {
$query = new Doctrine_Query();
$users = $query->query("FROM User-b WHERE User.Group.Phonenumber.phonenumber LIKE '123 123'");
$this->assertEqual(trim($query->getQuery()),
"SELECT e.id AS e__id FROM entity e e LEFT JOIN groupuser ON e.id = groupuser.user_id LEFT JOIN entity e2 ON e2.id = groupuser.group_id LEFT JOIN phonenumber ON e2.id = p.entity_id WHERE p.phonenumber LIKE '123 123' AND (e.type = 0 AND (e2.type = 1 OR e2.type IS NULL))");
$this->assertEqual($q->getQuery(), "SELECT COUNT(1) FROM phonenumber p");
$q = new Doctrine_Query();
$q->from("User.Phonenumber(COUNT(id))");
$array = $q->execute();
$this->assertTrue(is_array($array));
$this->assertEqual($array[0]['COUNT(p.id)'], 14);
$this->assertEqual($q->getQuery(), "SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id, COUNT(p.id) FROM entity e e LEFT JOIN phonenumber p ON e.id = p.entity_id WHERE (e.type = 0)");
$q = new Doctrine_Query();
$q->select('MAX(u.id), MIN(e.address)')->from("User u INNER JOIN u.Email e");
"SELECT t.id AS t__id, t.name AS t__name, t.parent_id AS t__parent_id, t2.id AS t2__id, t2.name AS t2__name, t2.parent_id AS t2__parent_id, t3.id AS t3__id, t3.name AS t3__name, t3.parent_id AS t3__parent_id FROM task t LEFT JOIN task t2 ON t.id = t2.parent_id LEFT JOIN task t3 ON t2.id = t3.parent_id");
$this->assertEqual($q->getQuery(),"SELECT f.id AS f__id, f2.id AS f2__id FROM forum__board f LEFT JOIN forum__thread f2 ON f.id = f2.board_id");
$coll=$q->execute();
$this->assertEqual($coll->count(),1);
$q->from("Forum_Board-l.Threads-l");
$this->assertEqual($q->getQuery(),"SELECT f.id AS f__id, f2.id AS f2__id FROM forum__board f LEFT JOIN forum__thread f2 ON f.id = f2.board_id");
//$this->connection->clear();
$q->from("Forum_Board-l.Threads-l.Entries-l");
$this->assertEqual($q->getQuery(),"SELECT f.id AS f__id, f2.id AS f2__id, f3.id AS f3__id FROM forum__board f LEFT JOIN forum__thread f2 ON f.id = f2.board_id LEFT JOIN forum__entry f3 ON f2.id = f3.thread_id");
"SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0)");