1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Merge pull request #5599 from zeroedin-bill/fix/5598-having-regression-fix

Fix #5598 issue with /, * in DQL not translating query components properly
This commit is contained in:
Marco Pivetta 2016-01-16 10:29:49 -06:00
commit a4d84e0cd8
2 changed files with 24 additions and 1 deletions

View File

@ -2272,7 +2272,9 @@ class SqlWalker implements TreeWalker
public function walkArithmeticFactor($factor) public function walkArithmeticFactor($factor)
{ {
if (is_string($factor)) { if (is_string($factor)) {
return $factor; return (isset($this->queryComponents[$factor]))
? $this->walkResultVariable($this->queryComponents[$factor]['token']['value'])
: $factor;
} }
// Phase 2 AST optimization: Skip processing of ArithmeticFactor // Phase 2 AST optimization: Skip processing of ArithmeticFactor

View File

@ -2271,6 +2271,27 @@ class SelectSqlGenerationTest extends \Doctrine\Tests\OrmTestCase
'SELECT COUNT(c0_.name) AS sclr_0 FROM cms_users c0_ HAVING sclr_0 IS NULL' 'SELECT COUNT(c0_.name) AS sclr_0 FROM cms_users c0_ HAVING sclr_0 IS NULL'
); );
} }
/**
* GitHub issue #4764: https://github.com/doctrine/doctrine2/issues/4764
* @group DDC-3907
* @dataProvider mathematicOperatorsProvider
*/
public function testHavingRegressionUsingVariableWithMathOperatorsExpression($operator)
{
$this->assertSqlGeneration(
'SELECT COUNT(u.name) AS countName FROM Doctrine\Tests\Models\CMS\CmsUser u HAVING 1 ' . $operator . ' countName > 0',
'SELECT COUNT(c0_.name) AS sclr_0 FROM cms_users c0_ HAVING 1 ' . $operator . ' sclr_0 > 0'
);
}
/**
* @return array
*/
public function mathematicOperatorsProvider()
{
return [['+'], ['-'], ['*'], ['/']];
}
} }
class MyAbsFunction extends \Doctrine\ORM\Query\AST\Functions\FunctionNode class MyAbsFunction extends \Doctrine\ORM\Query\AST\Functions\FunctionNode