Closed bog-walk closed 6 months ago
If a Pair/Triple is used with inList()/notInList() and the right-side list contains multiple elements, the SQL generated is:
Pair
Triple
inList()
notInList()
WHERE (col1, col2) IN ((?, ?), (?, ?), ...)
If the right-side list only contains a single element, the SQL generated is:
WHERE (col1, col2) = (?, ?)
The latter works correctly for all supported databases except Oracle, which throws:
java.sql.SQLSyntaxErrorException: ORA-00920: invalid relational operator
This fix ensures that the IN and NOT IN operators are always used with Oracle regardless of the number of list elements.
IN
NOT IN
Existing tests that excluded Oracle for this reason have been adjusted.
If a
Pair
/Triple
is used withinList()
/notInList()
and the right-side list contains multiple elements, the SQL generated is:If the right-side list only contains a single element, the SQL generated is:
The latter works correctly for all supported databases except Oracle, which throws:
This fix ensures that the
IN
andNOT IN
operators are always used with Oracle regardless of the number of list elements.Existing tests that excluded Oracle for this reason have been adjusted.