You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by ht...@apache.org on 2013/07/23 00:27:15 UTC
svn commit: r1505837 - in /openjpa/branches/2.1.x: ./
openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/
openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/
openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/ openjpa-...
Author: hthomann
Date: Mon Jul 22 22:27:15 2013
New Revision: 1505837
URL: http://svn.apache.org/r1505837
Log:
OPENJPA-2355: Allow more than two input argument to CONCAT() - back ported to 2.1.x Pinaki Poddar's trunk changes.
Modified:
openjpa/branches/2.1.x/ (props changed)
openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
openjpa/branches/2.1.x/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt
openjpa/branches/2.1.x/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/localizer.properties
openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/jointable/onetomany/ (props changed)
Propchange: openjpa/branches/2.1.x/
------------------------------------------------------------------------------
Merged /openjpa/trunk:r1459091,1504282
Modified: openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java?rev=1505837&r1=1505836&r2=1505837&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java (original)
+++ openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java Mon Jul 22 22:27:15 2013
@@ -1295,11 +1295,22 @@ public class JPQLExpressionBuilder
return factory.trim(val1, trimChar, trimWhere);
case JJTCONCAT:
- val1 = getValue(left(node));
- val2 = getValue(right(node));
+ if (node.children.length < 2)
+ throw parseException(EX_USER, "less-child-count",
+ new Object[]{ Integer.valueOf(2), node,
+ Arrays.asList(node.children) }, null);
+
+ val1 = getValue(firstChild(node));
+ val2 = getValue(secondChild(node));
setImplicitType(val1, TYPE_STRING);
setImplicitType(val2, TYPE_STRING);
- return factory.concat(val1, val2);
+ Value concat = factory.concat(val1, val2);
+ for (int i = 2; i < node.children.length; i++) {
+ val2 = getValue(node.children[i]);
+ setImplicitType(val2, TYPE_STRING);
+ concat = factory.concat(concat, val2);
+ }
+ return concat;
case JJTSUBSTRING:
if (node.children.length == 3) {
Modified: openjpa/branches/2.1.x/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt?rev=1505837&r1=1505836&r2=1505837&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt (original)
+++ openjpa/branches/2.1.x/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt Mon Jul 22 22:27:15 2013
@@ -1195,7 +1195,7 @@ void functions_returning_strings() : { }
void concat() #CONCAT : { }
{
- <CONCAT> "(" string_expression() <COMMA> string_expression() ")"
+ <CONCAT> "(" string_expression() <COMMA> string_expression() [ <COMMA> string_expression() ] ")"
}
Modified: openjpa/branches/2.1.x/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/localizer.properties?rev=1505837&r1=1505836&r2=1505837&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/localizer.properties (original)
+++ openjpa/branches/2.1.x/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/jpql/localizer.properties Mon Jul 22 22:27:15 2013
@@ -40,6 +40,9 @@ unknown-comp: Unknown comparison operato
wrong-child-count: Wrong number of arguments to expression \
of type "{1}": should have been {0}, but the following arguments \
were specified: "{2}".
+less-child-count:There are an insufficient number of arguments for the expression \
+ of type "{1}". The expression requires at least {0} arguments, and the \
+ following arguments were provided: "{2}"
not-schema-name: The name "{0}" is not a recognized entity or identifier. \
Known entity names: {1}
not-schema-name-hint: The name "{0}" is not a recognized entity or identifier. \
Propchange: openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/jointable/onetomany/
------------------------------------------------------------------------------
Merged /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/jointable/onetomany:r1459091,1504282