
|
If you were logged in you would be able to see more operations.
|
|
|
| Resolution Date: |
02/Jan/06 07:00 AM
|
|
Test case ResultClassRequirements fails because JPOX generates illegal SQL for the query below. The query uses result class java.util.Map. The FROM caluse of the generated SQL is empty.
14:23:04,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT phoneNumbers INTO java.util.Map FROM org.apache.jdo.tck.pc.company.FullTimeEmployee
14:23:04,687 (main) INFO [org.apache.jdo.tck] - Exception during setUp or runtest:
javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT FROM applicationidentity0.PERSONS THIS WHERE THIS.DISCRIMINATOR = ?" : Syntax error: Encountered "FROM" at line 1, column 9.
ERROR 42X01: Syntax error: Encountered "FROM" at line 1, column 9.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(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:190)
at org.jpox.store.StatementText.prepareStatement(StatementText.java:199)
at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:678)
at org.jpox.store.query.Query.executeWithMap(Query.java:966)
at org.jpox.store.query.Query.executeWithArray(Query.java:939)
at org.jpox.store.query.Query.execute(Query.java:862)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
at org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
at org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
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:747)
at org.jpox.store.query.Query.executeWithMap(Query.java:966)
at org.jpox.store.query.Query.executeWithArray(Query.java:939)
at org.jpox.store.query.Query.execute(Query.java:862)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
at org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
at org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
|
|
Description
|
Test case ResultClassRequirements fails because JPOX generates illegal SQL for the query below. The query uses result class java.util.Map. The FROM caluse of the generated SQL is empty.
14:23:04,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT phoneNumbers INTO java.util.Map FROM org.apache.jdo.tck.pc.company.FullTimeEmployee
14:23:04,687 (main) INFO [org.apache.jdo.tck] - Exception during setUp or runtest:
javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT FROM applicationidentity0.PERSONS THIS WHERE THIS.DISCRIMINATOR = ?" : Syntax error: Encountered "FROM" at line 1, column 9.
ERROR 42X01: Syntax error: Encountered "FROM" at line 1, column 9.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(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:190)
at org.jpox.store.StatementText.prepareStatement(StatementText.java:199)
at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:678)
at org.jpox.store.query.Query.executeWithMap(Query.java:966)
at org.jpox.store.query.Query.executeWithArray(Query.java:939)
at org.jpox.store.query.Query.execute(Query.java:862)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
at org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
at org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
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:747)
at org.jpox.store.query.Query.executeWithMap(Query.java:966)
at org.jpox.store.query.Query.executeWithArray(Query.java:939)
at org.jpox.store.query.Query.execute(Query.java:862)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
at org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
at org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
|
Show » |
|
where "phoneNumbers" is a Map field.
The test seems to think that selecting a field that is a Map will mean that this will be loaded into the result class Map for each result row. That is not my understanding of why java.util.Map was added to the JDO2 spec as a valid result class. It was added so that all fields/columns in the result spec can be added to the Map using the put(key, value) method with the key being the field name. Perhaps the test should be changed to select some real fields and then test that they have been loaded into the result Map correctly.