1
0
mirror of synced 2025-02-02 13:31:45 +03:00

DDC-3336 - applied hotfix: only PathExpression instances have a $field property

This commit is contained in:
Marco Pivetta 2014-12-05 14:56:47 +01:00
parent 34fad084a7
commit 060bbb1366

View File

@ -13,6 +13,7 @@
namespace Doctrine\ORM\Tools\Pagination; namespace Doctrine\ORM\Tools\Pagination;
use Doctrine\ORM\Query\AST\PathExpression;
use Doctrine\ORM\Query\SqlWalker; use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\AST\SelectStatement; use Doctrine\ORM\Query\AST\SelectStatement;
use Doctrine\DBAL\Platforms\PostgreSqlPlatform; use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
@ -196,12 +197,14 @@ class LimitSubqueryOutputWalker extends SqlWalker
$orderBy = array(); $orderBy = array();
if (isset($AST->orderByClause)) { if (isset($AST->orderByClause)) {
foreach ($AST->orderByClause->orderByItems as $item) { foreach ($AST->orderByClause->orderByItems as $item) {
$possibleAliases = (is_object($item->expression)) $expression = $item->expression;
? array_keys($this->rsm->fieldMappings, $item->expression->field)
: array_keys($this->rsm->scalarMappings, $item->expression); $possibleAliases = $expression instanceof PathExpression
? array_keys($this->rsm->fieldMappings, $expression->field)
: array_keys($this->rsm->scalarMappings, $expression);
foreach ($possibleAliases as $alias) { foreach ($possibleAliases as $alias) {
if (!is_object($item->expression) || $this->rsm->columnOwnerMap[$alias] == $item->expression->identificationVariable) { if (!is_object($expression) || $this->rsm->columnOwnerMap[$alias] == $expression->identificationVariable) {
$sqlOrderColumns[] = $alias; $sqlOrderColumns[] = $alias;
$orderBy[] = $alias . ' ' . $item->type; $orderBy[] = $alias . ' ' . $item->type;
break; break;