Changeset 6834

Show
Ignore:
Timestamp:
12/01/09 14:02:56 (8 months ago)
Author:
jwage
Message:

[1.2][DC-302] Fixing issue with relationship ordering

Location:
branches/1.2
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • branches/1.2/lib/Doctrine/Relation/Nest.php

    r6508 r6834  
    6666            $q->select('{'.$tableName.'.*}, {'.$assocTable.'.*}') 
    6767              ->from($tableName . ' INNER JOIN ' . $assocTable . ' ON ' . implode(' OR ', $joinCondition)) 
    68               ->where(implode(' OR ', $condition)) 
    69               ->orderBy($tableName . '.' . $identifier . ' ASC'); 
     68              ->where(implode(' OR ', $condition)); 
    7069            if ($orderBy = $this->getOrderByStatement($tableName, true)) { 
    7170                $q->addOrderBy($orderBy); 
     71            } else { 
     72                $q->addOrderBy($tableName . '.' . $identifier . ' ASC'); 
    7273            } 
    7374            $q->addComponent($tableName,  $this->getClass()); 
  • branches/1.2/tests/Relation/OrderByTestCase.php

    r6613 r6834  
    9090 
    9191        $friends = $user->Friends; 
    92         $this->assertEqual($this->profiler->pop()->getQuery(), 'SELECT order_by_test__user.id AS order_by_test__user__id, order_by_test__user.login AS order_by_test__user__login, order_by_test__user.password AS order_by_test__user__password, order_by_test__user.parent_user_id AS order_by_test__user__parent_user_id, order_by_test__friend.user_id1 AS order_by_test__friend__user_id1, order_by_test__friend.user_id2 AS order_by_test__friend__user_id2 FROM order_by_test__user INNER JOIN order_by_test__friend ON order_by_test__user.id = order_by_test__friend.user_id2 OR order_by_test__user.id = order_by_test__friend.user_id1 WHERE order_by_test__user.id IN (SELECT user_id2 FROM order_by_test__friend WHERE user_id1 = ?) OR order_by_test__user.id IN (SELECT user_id1 FROM order_by_test__friend WHERE user_id2 = ?) ORDER BY order_by_test__user.id ASC, order_by_test__user.login ASC'); 
     92        $this->assertEqual($this->profiler->pop()->getQuery(), 'SELECT order_by_test__user.id AS order_by_test__user__id, order_by_test__user.login AS order_by_test__user__login, order_by_test__user.password AS order_by_test__user__password, order_by_test__user.parent_user_id AS order_by_test__user__parent_user_id, order_by_test__friend.user_id1 AS order_by_test__friend__user_id1, order_by_test__friend.user_id2 AS order_by_test__friend__user_id2 FROM order_by_test__user INNER JOIN order_by_test__friend ON order_by_test__user.id = order_by_test__friend.user_id2 OR order_by_test__user.id = order_by_test__friend.user_id1 WHERE order_by_test__user.id IN (SELECT user_id2 FROM order_by_test__friend WHERE user_id1 = ?) OR order_by_test__user.id IN (SELECT user_id1 FROM order_by_test__friend WHERE user_id2 = ?) ORDER BY order_by_test__user.login ASC'); 
    9393 
    9494        $childrenUsers = $user->ChildrenUsers;