Changeset 4560
- Timestamp:
- 06/25/08 18:58:06 (7 months ago)
- Location:
- branches/0.11
- Files:
-
- 2 modified
-
lib/Doctrine/Query/JoinCondition.php (modified) (3 diffs)
-
tests/Query/JoinTestCase.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/0.11/lib/Doctrine/Query/JoinCondition.php
r4509 r4560 79 79 } 80 80 81 // FIX: Issues with "(" XXX ")" 82 if ($hasRightAggExpression) { 83 $value = '(' . $value . ')'; 84 } 85 81 86 if (substr($value, 0, 1) == '(') { 82 87 // trim brackets … … 86 91 // subquery found 87 92 $q = $this->query->createSubquery(); 88 $value = '(' . $q->parseQuery($trimmed)->getQuery() . ')'; 93 94 // Change due to bug "(" XXX ")" 95 //$value = '(' . $q->parseQuery($trimmed)->getQuery() . ')'; 96 $value = $q->parseQuery($trimmed)->getQuery(); 89 97 } elseif (substr($trimmed, 0, 4) == 'SQL:') { 90 $value = '(' . substr($trimmed, 4) . ')'; 98 // Change due to bug "(" XXX ")" 99 //$value = '(' . substr($trimmed, 4) . ')'; 100 $value = substr($trimmed, 4); 91 101 } else { 92 102 // simple in expression found … … 107 117 } 108 118 } 109 $value = '(' . implode(', ', $value) . ')'; 119 120 // Change due to bug "(" XXX ")" 121 //$value = '(' . implode(', ', $value) . ')'; 122 $value = implode(', ', $value); 110 123 } 111 124 } else { -
branches/0.11/tests/Query/JoinTestCase.php
r4558 r4560 95 95 ->innerJoin('c.City c2 WITH (c2.name = ? OR c2.id IN (SELECT c3.id FROM Record_City c3 WHERE c3.id = ? OR c3.id = ?))'); 96 96 $sql = $q->getSql(); 97 $this->assertEqual($sql, 'SELECT r.id AS r__id, r.name AS r__name, r2.id AS r2__id, r2.name AS r2__name, r2.country_id AS r2__country_id, r2.district_id AS r2__district_id FROM record__country r INNER JOIN record__city r2 ON r.id = r2.country_id AND (r2.name = ? OR c2.id IN (SELECT c3.id FROM Record_City c3 WHERE c3.id = ? OR c3.id = ?))'); 97 $this->assertEqual($sql, 'SELECT r.id AS r__id, r.name AS r__name, r2.id AS r2__id, r2.name AS r2__name, r2.country_id AS r2__country_id, r2.district_id AS r2__district_id FROM record__country r INNER JOIN record__city r2 ON r.id = r2.country_id AND (r2.name = ? OR r2.id IN (SELECT r3.id AS r3__id FROM record__city r3 WHERE (r3.id = ? OR r3.id = ?)))'); 98 98 99 $this->pass(); 99 100 } catch (Exception $e) { … … 124 125 ->where('c.id = ?', array(1)); 125 126 126 $this->assertEqual($q->getSql(), 'SELECT r.id AS r__id, r.name AS r__name, r2.id AS r2__id, r2.name AS r2__name, r2.country_id AS r2__country_id, r2.district_id AS r2__district_id FROM record__country r INNER JOIN record__city r2 ON r.id = r2.country_id AND r2.id IN (?, ?) WHERE r.id = ?');127 $this->assertEqual($q->getSql(), 'SELECT r.id AS r__id, r.name AS r__name, r2.id AS r2__id, r2.name AS r2__name, r2.country_id AS r2__country_id, r2.district_id AS r2__district_id FROM record__country r INNER JOIN record__city r2 ON r.id = r2.country_id AND r2.id IN (?, ?) WHERE r.id = ?'); 127 128 } 128 129