public function walkSelectStatement(\Doctrine\ORM\Query\AST\SelectStatement $AST)
{
$parent = null;
$parentName = null;
foreach ($this->_getQueryComponents() as $dqlAlias => $qComp) {
if ($qComp['parent'] === null && $qComp['nestingLevel'] == 0) {
$parent = $qComp;
$parentName = $dqlAlias;
break;
}
}
$pathExpression = new PathExpression(PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $parentName, $parent['metadata']->getSingleIdentifierFieldName());
$pathExpression->type = PathExpression::TYPE_STATE_FIELD;
$AST->selectClause->selectExpressions = [new \Doctrine\ORM\Query\AST\SelectExpression(new \Doctrine\ORM\Query\AST\AggregateExpression('count', $pathExpression, true), null)];
// ORDER BY is not needed, only increases query execution through unnecessary sorting.
$AST->orderByClause = null;
}