added parseSubquery()
This commit is contained in:
parent
108403f3b8
commit
e5d43b2fcc
@ -727,18 +727,7 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable, Seria
|
|||||||
}
|
}
|
||||||
$term[0] = $expr;
|
$term[0] = $expr;
|
||||||
} else {
|
} else {
|
||||||
$trimmed = trim($this->_tokenizer->bracketTrim($term[0]));
|
$term[0] = $this->parseSubquery($term[0]);
|
||||||
|
|
||||||
// check for possible subqueries
|
|
||||||
if (substr($trimmed, 0, 4) == 'FROM' || substr($trimmed, 0, 6) == 'SELECT') {
|
|
||||||
// parse subquery
|
|
||||||
$trimmed = $this->createSubquery()->parseDqlQuery($trimmed)->getQuery();
|
|
||||||
} else {
|
|
||||||
// parse normal clause
|
|
||||||
$trimmed = $this->parseClause($trimmed);
|
|
||||||
}
|
|
||||||
|
|
||||||
$term[0] = '(' . $trimmed . ')';
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (substr($term[0], 0, 1) !== "'" && substr($term[0], -1) !== "'") {
|
if (substr($term[0], 0, 1) !== "'" && substr($term[0], -1) !== "'") {
|
||||||
@ -849,7 +838,21 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable, Seria
|
|||||||
}
|
}
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
public function parseSubquery($subquery)
|
||||||
|
{
|
||||||
|
$trimmed = trim($this->_tokenizer->bracketTrim($subquery));
|
||||||
|
|
||||||
|
// check for possible subqueries
|
||||||
|
if (substr($trimmed, 0, 4) == 'FROM' || substr($trimmed, 0, 6) == 'SELECT') {
|
||||||
|
// parse subquery
|
||||||
|
$trimmed = $this->createSubquery()->parseDqlQuery($trimmed)->getQuery();
|
||||||
|
} else {
|
||||||
|
// parse normal clause
|
||||||
|
$trimmed = $this->parseClause($trimmed);
|
||||||
|
}
|
||||||
|
|
||||||
|
return '(' . $trimmed . ')';
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* parseAggregateFunction
|
* parseAggregateFunction
|
||||||
* parses an aggregate function and returns the parsed form
|
* parses an aggregate function and returns the parsed form
|
||||||
|
Loading…
x
Reference in New Issue
Block a user