Changeset 4683

Show
Ignore:
Timestamp:
07/13/08 01:48:01 (5 months ago)
Author:
jwage
Message:

fixes #939

Location:
branches/1.0
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/1.0/lib/Doctrine/Query/Condition.php

    r4252 r4683  
    4343    { 
    4444        $tmp = trim($str); 
    45  
    46         $parts = $this->_tokenizer->bracketExplode($str, array(' \&\& ', ' AND '), '(', ')'); 
     45         
     46        $parts = $this->_tokenizer->bracketExplode($str, array(' \|\| ', ' OR '), '(', ')'); 
    4747 
    4848        if (count($parts) > 1) { 
     
    5252                $ret[] = $this->parse($part); 
    5353            } 
    54             $r = implode(' AND ', $ret); 
     54            $r = implode(' OR ', $ret); 
    5555        } else { 
    5656 
    57             $parts = $this->_tokenizer->bracketExplode($str, array(' \|\| ', ' OR '), '(', ')'); 
     57            $parts = $this->_tokenizer->bracketExplode($str, array(' \&\& ', ' AND '), '(', ')'); 
    5858            if (count($parts) > 1) { 
    5959                $ret = array(); 
     
    6262                    $ret[] = $this->parse($part); 
    6363                } 
    64                 $r = implode(' OR ', $ret); 
     64                $r = implode(' AND ', $ret); 
    6565            } else { 
    6666                // Fix for #710 
     
    7777            } 
    7878        } 
    79  
     79         
    8080        return '(' . $r . ')'; 
    8181    } 
  • branches/1.0/tests/Query/ConditionTestCase.php

    r3884 r4683  
    6969        $query->where("(User.name LIKE 'z%') || User.name LIKE 's%' && User.name LIKE 'a%'"); 
    7070 
    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)"); 
    7472 
    7573        $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)"); 
    7775 
    7876        $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)"); 
    8078 
    8179        $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)"); 
    8381 
    8482    } 
     
    109107        $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)"; 
    110108 
    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)"); 
    112110 
    113111        $query->where("(((User.name LIKE 'z%') OR User.name LIKE 's%')) AND User.name LIKE 'a%'");