1
0
mirror of synced 2025-02-01 13:01:45 +03:00
This commit is contained in:
zYne 2007-05-24 14:19:44 +00:00
parent 82da462265
commit e03ef62527

View File

@ -48,6 +48,8 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable
*/
protected $isSubquery;
protected $isLimitSubqueryUsed = false;
protected $neededTables = array();
/**
* @var array $pendingFields
@ -128,6 +130,15 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable
{
return $this->_enumParams;
}
/**
* limitSubqueryUsed
*
* @return boolean
*/
public function isLimitSubqueryUsed()
{
return $this->isLimitSubqueryUsed;
}
/**
* convertEnums
* convert enum parameters to their integer equivalents
@ -564,6 +575,7 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable
$rootAlias = key($this->_aliasMap);
if ( ! empty($this->parts['limit']) && $this->needsSubquery && $table->getAttribute(Doctrine::ATTR_QUERY_LIMIT) == Doctrine::LIMIT_RECORDS) {
$this->isLimitSubqueryUsed = true;
$needsSubQuery = true;
}
@ -702,7 +714,7 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable
continue;
}
if($this->aliasHandler->hasAliasFor($part)) {
if($this->aliasHandler->hasAlias($part)) {
$parts[$k] = $this->aliasHandler->generateNewAlias($part);
}
@ -896,6 +908,11 @@ class Doctrine_Query extends Doctrine_Query_Abstract implements Countable
$componentAlias = $prevPath;
}
// if the current alias already exists, skip it
if (isset($this->_aliasMap[$componentAlias])) {
continue;
}
if ( ! isset($table)) {
// process the root of the path