You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2009/06/27 01:29:59 UTC
svn commit: r788903 - in /openjpa/branches/subquery:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/
openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/
openjpa-kernel/src...
Author: fancy
Date: Fri Jun 26 23:29:58 2009
New Revision: 788903
URL: http://svn.apache.org/viewvc?rev=788903&view=rev
Log:
fix for subqueries in TestEmbeddable
Modified:
openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.java
openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Magazine_.java
openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Publisher_.java
Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java (original)
+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java Fri Jun 26 23:29:58 2009
@@ -497,9 +497,8 @@
isCorrelatedPath =
pstate.joins.isCorrelatedVariable(action.var);
}
- if (!isCorrelatedPath)
- pstate.joins = pstate.joins.
- setVariable((String) action.data);
+ pstate.joins = pstate.joins.
+ setVariable((String) action.data);
}
else if (action.op == Action.SUBQUERY) {
pstate.joins = pstate.joins.setSubselect((String) action.data);
Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java (original)
+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java Fri Jun 26 23:29:58 2009
@@ -2608,10 +2608,9 @@
public boolean isCorrelatedVariable(String var) {
boolean isCorrelated = getSelect().ctx().getVariable(var) == null;
- if (isCorrelated) {
- setVariable(var);
+ if (isCorrelated)
this.correlatedVar = var;
- }
+
return isCorrelated;
}
Modified: openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.java (original)
+++ openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.java Fri Jun 26 23:29:58 2009
@@ -156,6 +156,10 @@
* Returns a value for the given id.
*/
protected Value getVariable(String id, boolean bind) {
+ // check for already constructed var
+ if (isSeenVariable(id))
+ return (Value) _seenVars.get(id);
+
// create and cache var
Class<?> type = getDeclaredVariableType(id);
Modified: openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java (original)
+++ openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java Fri Jun 26 23:29:58 2009
@@ -794,10 +794,7 @@
if (id == null)
return null;
- if (bind)
- return super.getVariable(id.toLowerCase(), bind);
- else
- return ctx().findVariable(id);
+ return super.getVariable(id.toLowerCase(), bind);
}
protected Value getDefinedVariable(String id) {
@@ -1564,14 +1561,14 @@
if (cmd != null) {
// handle the case where the class name is the alias
// for the candidate (we don't use variables for this)
- Value thiz = factory.getThis();
-// Value thiz = null;
-// if (ctx().subquery == null ||
-// ctx().getSchema(name.toLowerCase()) == null) {
-// thiz = factory.getThis();
-// } else {
-// thiz = factory.newPath(ctx().subquery);
-// }
+ //Value thiz = factory.getThis();
+ Value thiz = null;
+ if (ctx().subquery == null ||
+ ctx().getSchema(name.toLowerCase()) == null) {
+ thiz = factory.getThis();
+ } else {
+ thiz = factory.newPath(ctx().subquery);
+ }
((Path)thiz).setSchemaAlias(name);
thiz.setMetaData(cmd);
return thiz;
Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Magazine_.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Magazine_.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Magazine_.java (original)
+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Magazine_.java Fri Jun 26 23:29:58 2009
@@ -14,5 +14,4 @@
public static volatile SingularAttribute<Magazine,Integer> id;
public static volatile SingularAttribute<Magazine,Publisher> idPublisher;
public static volatile SingularAttribute<Magazine,String> name;
- public static volatile SingularAttribute<Magazine,Long> serialVersionUID;
}
Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Publisher_.java
URL: http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Publisher_.java?rev=788903&r1=788902&r2=788903&view=diff
==============================================================================
--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Publisher_.java (original)
+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Publisher_.java Fri Jun 26 23:29:58 2009
@@ -13,5 +13,4 @@
public static volatile SingularAttribute<Publisher,Integer> id;
public static volatile SetAttribute<Publisher,Magazine> magazineCollection;
public static volatile SingularAttribute<Publisher,String> name;
- public static volatile SingularAttribute<Publisher,Long> serialVersionUID;
}