Author: ppoddar
Date: Wed Apr  8 09:06:11 2009
New Revision: 763149

URL: http://svn.apache.org/viewvc?rev=763149&view=rev
Log:
OPENJPA-1024: Scalar expression in SubQuery requires subquery expression be 
enclosed in parentheses

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestCriteria.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/BinaryExpressionPredicate.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestCriteria.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestCriteria.java?rev=763149&r1=763148&r2=763149&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestCriteria.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestCriteria.java
 Wed Apr  8 09:06:11 2009
@@ -31,7 +31,6 @@
 import org.apache.openjpa.persistence.query.QueryBuilderImpl;
 import org.apache.openjpa.persistence.query.QueryDefinition;
 import org.apache.openjpa.persistence.query.SelectItem;
-import org.apache.openjpa.persistence.test.AllowFailure;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 
@@ -270,7 +269,6 @@
                compare(jpql, o);
        }
 
-       @AllowFailure
        public void testNonCorrelatedSubQuery() {
                QueryDefinition q1 = qb.createQueryDefinition();
                DomainObject goodCustomer = q1.addRoot(Customer.class);
@@ -416,7 +414,6 @@
                compare(jpql, q1);
        }
        
-       @AllowFailure
        public void testCreateSubquery() {
                DomainObject customer = 
qb.createQueryDefinition(Customer.class);
                DomainObject order = 
qb.createSubqueryDefinition(customer.get("orders"));

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/BinaryExpressionPredicate.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/BinaryExpressionPredicate.java?rev=763149&r1=763148&r2=763149&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/BinaryExpressionPredicate.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/BinaryExpressionPredicate.java
 Wed Apr  8 09:06:11 2009
@@ -67,8 +67,15 @@
        }
 
        public String asExpression(AliasContext ctx) {
-               return ((Visitable)_e1).asExpression(ctx) 
+               return asExpression((Visitable)_e1, ctx)  
                     + SPACE + _op + SPACE
-                    + ((Visitable)_e2).asExpression(ctx);
+                    + asExpression((Visitable)_e2, ctx);
+       }
+       
+       String asExpression(Visitable v, AliasContext ctx) {
+               String result = v.asExpression(ctx);
+               if (v instanceof QueryDefinitionImpl)
+                   return "(" + result + ")";
+               return result;
        }
 }


Reply via email to