Affects Version/s: 1.2.3
Fix Version/s: None
Problem exists when Doctrine formulates a subquery to perform a limit when a join in included.
The problem is that the where clause that doctrine creates for the subquery (the WHERE IN clause) is inserted as the first where clause.
This will break the parameter duplicate done at Doctrine_Query_Abstract:969, as the order of the parameters is now wrong.
with parameters be (1, 2, 3)
Doctrine will translate this to
Doctrine will duplicate the params (Doctrine_Query_Abstract:969) to (1, 2, 3, 1, 2, 3), but now they are in the wrong order completely.
They should be (1,1,2,3,2,3).
The easy fix is to move the limit subquery to the LAST where clause, which would reuslt in a query like so:
Attached is a patch to fix this issue, along with a patch that fixes all unit tests referring to the old query format.