You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mp...@apache.org on 2006/12/12 01:40:23 UTC
svn commit: r485967 -
/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
Author: mprudhom
Date: Mon Dec 11 16:40:22 2006
New Revision: 485967
URL: http://svn.apache.org/viewvc?view=rev&rev=485967
Log:
Allow the parameter to an IN(?) expression to be a Collection type, which allows variable-length IN parameters. The spec is a little vague about whether this should be allowed or not, but there's no reason not to support it.
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java?view=diff&rev=485967&r1=485966&r2=485967
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java Mon Dec 11 16:40:22 2006
@@ -822,8 +822,9 @@
while (inIterator.hasNext()) {
val2 = getValue((JPQLNode) inIterator.next());
- // special case for <value> IN (<subquery>)
- if (val2 instanceof Subquery && node.getChildCount() == 2)
+ // special case for <value> IN (<subquery>) or
+ // <value> IN (<single value>)
+ if (!(val2 instanceof Literal) && node.getChildCount() == 2)
return factory.contains(val2, val1);
// this is currently a sequence of OR expressions, since we