[
http://issues.apache.org/jira/browse/JDO-310?page=comments#action_12371020 ]
Craig Russell commented on JDO-310:
-----------------------------------
Runnning with this patch, the tests fail but not because of Derby. It appears
that JPOX is not constructing the right SQL for this query.
[echo] Starting configuration="clr.conf" with database="derby"
identitytype="datastoreidentity" mapping="".
[java] RUN VariableInResult.testDistinctNoNavigation FAILURE
[java] RUN VariableInResult.testNoNavigation FAILURE
[java] RUN VariableInResult.testDistinctNavigation
[java] RUN VariableInResult.testNavigation
[java] Description: Special Test
[java] Time: 026
[java] There were 2 failures:
[java] 1)
testDistinctNoNavigation(org.apache.jdo.tck.query.result.VariableInResult)junit.framework.AssertionFailedError:
Assertion A14.6.9-3 (VariableInResult) failed:
[java] Wrong query result:
[java] query: SELECT distinct e FROM
org.apache.jdo.tck.pc.company.Department WHERE deptid==2 &
employees.contains(e) VARIABLES Employee e
[java] expected: [PartTimeEmployee(4, emp4Last, emp4First, born 5/Sep/1973,
phone {work=124456-3, home=3343}, hired 14/Apr/2001, weeklyhours 0.0, $13.0),
FullTimeEmployee(5, emp5Last, emp5First, born 4/Jul/1962, phone {work=126456-3,
home=3363}, hired 14/Aug/1998, weeklyhours 0.0, $45000.0)]
[java] got: [FullTimeEmployee(1, emp1Last, emp1First, born 9/Jun/1970,
phone {work=123456-1,home=1111}, hired 31/Dec/1998, weeklyhours 40.0,
$20000.0), FullTimeEmployee(5, emp5Last, emp5First, born 4/Jul/1962, phone
{work=126456-3,home=3363}, hired 14/Aug/1998, weeklyhours 0.0, $45000.0),
PartTimeEmployee(3, emp3Last, emp3First, born 4/Sep/1972, phone
{work=123456-3,home=3333}, hired 14/Aug/2002, weeklyhours 19.0, $15.0),
FullTimeEmployee(2, emp2Last, emp2First, born 21/Dec/1975, phone
{work=123456-2,home=2222}, hired 30/Jun/2003, weeklyhours 40.0, $10000.0),
PartTimeEmployee(4, emp4Last, emp4First, born 5/Sep/1973, phone
{work=124456-3,home=3343}, hired 14/Apr/2001, weeklyhours 0.0, $13.0)]
[java] at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:583)
[java] at
org.apache.jdo.tck.query.QueryTest.queryFailed(QueryTest.java:508)
[java] at
org.apache.jdo.tck.query.QueryTest.checkQueryResultWithoutOrder(QueryTest.java:536)
[java] at
org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1230)
[java] at
org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1070)
[java] at
org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1007)
[java] at
org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:987)
[java] at
org.apache.jdo.tck.query.result.VariableInResult.testDistinctNoNavigation(VariableInResult.java:141)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:232)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:105)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:143)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:118)
[java] 2)
testNoNavigation(org.apache.jdo.tck.query.result.VariableInResult)junit.framework.AssertionFailedError:
Assertion A14.6.9-3 (VariableInResult) failed:
[java] Wrong query result:
[java] query: SELECT e FROM org.apache.jdo.tck.pc.company.Department WHERE
deptid==2 & employees.contains(e) VARIABLES Employee e
[java] expected: [PartTimeEmployee(4, emp4Last, emp4First, born 5/Sep/1973,
phone {work=124456-3, home=3343}, hired 14/Apr/2001, weeklyhours 0.0, $13.0),
FullTimeEmployee(5, emp5Last, emp5First, born 4/Jul/1962, phone {work=126456-3,
home=3363}, hired 14/Aug/1998, weeklyhours 0.0, $45000.0)]
[java] got: [FullTimeEmployee(1, emp1Last, emp1First, born 9/Jun/1970,
phone {work=123456-1,home=1111}, hired 31/Dec/1998, weeklyhours 40.0,
$20000.0), FullTimeEmployee(5, emp5Last, emp5First, born 4/Jul/1962, phone
{work=126456-3,home=3363}, hired 14/Aug/1998, weeklyhours 0.0, $45000.0),
PartTimeEmployee(3, emp3Last, emp3First, born 4/Sep/1972, phone
{work=123456-3,home=3333}, hired 14/Aug/2002, weeklyhours 19.0, $15.0),
FullTimeEmployee(2, emp2Last, emp2First, born 21/Dec/1975, phone
{work=123456-2,home=2222}, hired 30/Jun/2003, weeklyhours 40.0, $10000.0),
PartTimeEmployee(4, emp4Last, emp4First, born 5/Sep/1973, phone
{work=124456-3,home=3343}, hired 14/Apr/2001, weeklyhours 0.0, $13.0)]
[java] at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:583)
[java] at
org.apache.jdo.tck.query.QueryTest.queryFailed(QueryTest.java:508)
[java] at
org.apache.jdo.tck.query.QueryTest.checkQueryResultWithoutOrder(QueryTest.java:536)
[java] at
org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1230)
[java] at
org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1070)
[java] at
org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1007)
[java] at
org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:987)
[java] at
org.apache.jdo.tck.query.result.VariableInResult.testNoNavigation(VariableInResult.java:150)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:232)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:105)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:143)
[java] at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:118)
[java] FAILURES!!!
[java] derby-dsid-clr-junit.txt:
[java] ** Tests run: 004, Time: 026 seconds. Failures: 2, Errors: 0
[java] Excluded tests: [org.apache.jdo.tck.enhancement.FieldAccessModified,
org.apache.jdo.tck.enhancement.ImplementsPersistenceCapable]
[java] [ERROR] Java Result: 1
[echo] Finished configuration="clr.conf" with database="derby"
identitytype="datastoreidentity" mapping="".
> JPOX fails test VariableInResult.testDistinctNoNavigation with
> JDODataStoreException from Derby
> -----------------------------------------------------------------------------------------------
>
> Key: JDO-310
> URL: http://issues.apache.org/jira/browse/JDO-310
> Project: JDO
> Type: Bug
> Components: tck20
> Reporter: Michael Bouschen
> Assignee: Erik Bengtson
> Fix For: JDO 2 final
> Attachments: variables.patch
>
> Test methods testDistinctNoNavigation and testNoNavigation of
> org.apache.jdo.tck.query.result.VariableInResult fail throwing a
> JDODataStoreException. The error messages says: "ERROR 42972: An ON clause
> associated with a JOIN operator is not valid.".
> Here is the stacktace for method testDistinctNoNavigation, the other
> stacktrace is the same:
> 1)
> testDistinctNoNavigation(org.apache.jdo.tck.query.result.VariableInResult)javax.jdo.JDODataStoreException:
> Error executing JDOQL query "SELECT DISTINCT UNBOUND_P.PROJID FROM
> applicationidentity0.PERSONS THIS,applicationidentity0.PROJECTS UNBOUND_P
> WHERE EXISTS (SELECT 1 FROM applicationidentity0.PROJECT_MEMBER
> THIS_PROJECTS_P LEFT OUTER JOIN applicationidentity0.PROJECTS UNBOUND_P_NAME
> ON UNBOUND_P.PROJID = UNBOUND_P_NAME.PROJID WHERE THIS_PROJECTS_P."MEMBER" =
> THIS.PERSONID AND THIS_PROJECTS_P."MEMBER" = THIS.PERSONID AND
> UNBOUND_P.PROJID = THIS_PROJECTS_P.PROJID AND UNBOUND_P_NAME."NAME" = ? AND
> (THIS.DISCRIMINATOR = ? OR THIS.DISCRIMINATOR = ? OR THIS.DISCRIMINATOR =
> ?))" : An ON clause associated with a JOIN operator is not valid.
> ERROR 42972: An ON clause associated with a JOIN operator is not valid.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> org.apache.derby.impl.sql.compile.JoinNode.deferredBindExpressions(Unknown
> Source)
> at org.apache.derby.impl.sql.compile.JoinNode.bindResultColumns(Unknown
> Source)
> at org.apache.derby.impl.sql.compile.FromList.bindResultColumns(Unknown
> Source)
> at
> org.apache.derby.impl.sql.compile.SelectNode.bindResultColumns(Unknown Source)
> at
> org.apache.derby.impl.sql.compile.SubqueryNode.bindExpression(Unknown Source)
> at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(Unknown
> Source)
> at
> org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(Unknown
> Source)
> at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown
> Source)
> at org.apache.derby.impl.sql.compile.ReadCursorNode.bind(Unknown Source)
> at org.apache.derby.impl.sql.compile.CursorNode.bind(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown
> Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown
> Source)
> at
> com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:241)
> at org.jpox.store.rdbms.RDBMSManager.getStatement(RDBMSManager.java:355)
> at org.jpox.store.StatementText.prepareStatement(StatementText.java:204)
> at org.jpox.store.query.Query.getStatement(Query.java:797)
> at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:516)
> at org.jpox.store.query.Query.executeWithMap(Query.java:1113)
> at org.jpox.store.query.Query.executeWithArray(Query.java:1086)
> at org.jpox.store.query.Query.execute(Query.java:1009)
> at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1192)
> at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1070)
> at
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1007)
> at
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:987)
> at
> org.apache.jdo.tck.query.result.VariableInResult.testDistinctNoNavigation(VariableInResult.java:138)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
> at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
> .
> at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:570)
> at org.jpox.store.query.Query.executeWithMap(Query.java:1113)
> at org.jpox.store.query.Query.executeWithArray(Query.java:1086)
> at org.jpox.store.query.Query.execute(Query.java:1009)
> at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1192)
> at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1070)
> at
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1007)
> at
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:987)
> at
> org.apache.jdo.tck.query.result.VariableInResult.testDistinctNoNavigation(VariableInResult.java:138)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
> at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira