Affects Version/s: 2.0.2
Fix Version/s: 2.0.4
Security Level: All
will not work, whereas they should.
Assume that there are potentially millions of b's per a, so this should not be joined, just simply left as-is as a correlated subquery within an exists expression. Actually, a "LIMIT 1" at the end of the subquery would come in handy here, too.
Doctrine 2 will give an error message
[Syntax Error] line 0, col [...]: Error: Expected known function, got '0''
when parsing the DQL statement.
According to the EBNF definition, 0 qualifies as a Literal, which qualifies as an ArithmeticPrimary, which qualifies as an ArithmeticFactor, which qualifies as an ArithmeticTerm, which qualifies as a SimpleArithmeticExpression, which qualifies as a ScalarExpression, which qualifies as a SimpleSelectExpression, which should be perfectly legitimate in that position.
This is yet another annoying case of the Doctrine 2 documentation not matching the behavior of the actual implementation.
Fortunately, it is easy to work around this defect by selecting some field and sacrificing a bit of performance, but then again, it sucks to have to continuously implement workarounds.