Changeset 4683
- Timestamp:
- 07/13/08 00:48:01 (12 months ago)
- Location:
- branches/1.0
- Files:
-
- 2 modified
-
lib/Doctrine/Query/Condition.php (modified) (4 diffs)
-
tests/Query/ConditionTestCase.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0/lib/Doctrine/Query/Condition.php
r4252 r4683 43 43 { 44 44 $tmp = trim($str); 45 46 $parts = $this->_tokenizer->bracketExplode($str, array(' \ &\& ', ' AND'), '(', ')');45 46 $parts = $this->_tokenizer->bracketExplode($str, array(' \|\| ', ' OR '), '(', ')'); 47 47 48 48 if (count($parts) > 1) { … … 52 52 $ret[] = $this->parse($part); 53 53 } 54 $r = implode(' AND', $ret);54 $r = implode(' OR ', $ret); 55 55 } else { 56 56 57 $parts = $this->_tokenizer->bracketExplode($str, array(' \ |\| ', ' OR'), '(', ')');57 $parts = $this->_tokenizer->bracketExplode($str, array(' \&\& ', ' AND '), '(', ')'); 58 58 if (count($parts) > 1) { 59 59 $ret = array(); … … 62 62 $ret[] = $this->parse($part); 63 63 } 64 $r = implode(' OR', $ret);64 $r = implode(' AND ', $ret); 65 65 } else { 66 66 // Fix for #710 … … 77 77 } 78 78 } 79 79 80 80 return '(' . $r . ')'; 81 81 } -
branches/1.0/tests/Query/ConditionTestCase.php
r3884 r4683 69 69 $query->where("(User.name LIKE 'z%') || User.name LIKE 's%' && User.name LIKE 'a%'"); 70 70 71 $sql = "SELECT e.id AS e__id FROM entity e WHERE ((e.name LIKE 'z%' OR e.name LIKE 's%') AND e.name LIKE 'a%') AND (e.type = 0)"; 72 73 $this->assertEqual($query->getQuery(), $sql); 71 $this->assertEqual($query->getQuery(), "SELECT e.id AS e__id FROM entity e WHERE (e.name LIKE 'z%' OR (e.name LIKE 's%' AND e.name LIKE 'a%')) AND (e.type = 0)"); 74 72 75 73 $query->where("(((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%'"); 76 $this->assertEqual($query->getQuery(), $sql);74 $this->assertEqual($query->getQuery(), "SELECT e.id AS e__id FROM entity e WHERE ((e.name LIKE 'z%' OR e.name LIKE 's%') AND e.name LIKE 'a%') AND (e.type = 0)"); 77 75 78 76 $query->where("((((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%')"); 79 $this->assertEqual($query->getQuery(), $sql);77 $this->assertEqual($query->getQuery(), "SELECT e.id AS e__id FROM entity e WHERE ((e.name LIKE 'z%' OR e.name LIKE 's%') AND e.name LIKE 'a%') AND (e.type = 0)"); 80 78 81 79 $query->where("(((((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%'))"); 82 $this->assertEqual($query->getQuery(), $sql);80 $this->assertEqual($query->getQuery(), "SELECT e.id AS e__id FROM entity e WHERE ((e.name LIKE 'z%' OR e.name LIKE 's%') AND e.name LIKE 'a%') AND (e.type = 0)"); 83 81 84 82 } … … 109 107 $sql = "SELECT e.id AS e__id FROM entity e WHERE ((e.name LIKE 'z%' OR e.name LIKE 's%') AND e.name LIKE 'a%') AND (e.type = 0)"; 110 108 111 $this->assertEqual($query->getQuery(), $sql);109 $this->assertEqual($query->getQuery(), "SELECT e.id AS e__id FROM entity e WHERE (e.name LIKE 'z%' OR (e.name LIKE 's%' AND e.name LIKE 'a%')) AND (e.type = 0)"); 112 110 113 111 $query->where("(((User.name LIKE 'z%') OR User.name LIKE 's%')) AND User.name LIKE 'a%'");