You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Michael Watzek (JIRA)" <ji...@apache.org> on 2005/12/09 15:48:10 UTC

[jira] Created: (JDO-248) JPOX generates illegal SQL for queries using result class java.util.Map.

JPOX generates illegal SQL for queries using result class java.util.Map.
------------------------------------------------------------------------

         Key: JDO-248
         URL: http://issues.apache.org/jira/browse/JDO-248
     Project: JDO
        Type: Bug
  Components: tck20  
    Reporter: Michael Watzek
 Assigned to: Erik Bengtson 


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)


-- 
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


[jira] Resolved: (JDO-248) JPOX generates illegal SQL for queries using result class java.util.Map.

Posted by "Craig Russell (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/JDO-248?page=all ]
     
Craig Russell resolved JDO-248:
-------------------------------

    Fix Version: JDO 2 beta
     Resolution: Fixed
      Assign To: Craig Russell  (was: Erik Bengtson)

Committed revision 360562.

I changed the query to return named fields to be put into the Map.

The test still fails due to JDO-247 and JDO-249 but this case is closed.

> JPOX generates illegal SQL for queries using result class java.util.Map.
> ------------------------------------------------------------------------
>
>          Key: JDO-248
>          URL: http://issues.apache.org/jira/browse/JDO-248
>      Project: JDO
>         Type: Bug
>   Components: tck20
>     Reporter: Michael Watzek
>     Assignee: Craig Russell
>      Fix For: JDO 2 beta

>
> 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)

-- 
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


[jira] Commented: (JDO-248) JPOX generates illegal SQL for queries using result class java.util.Map.

Posted by "Andy Jefferson (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/JDO-248?page=comments#action_12361484 ] 

Andy Jefferson commented on JDO-248:
------------------------------------

The test has  a query "SELECT phoneNumbers FROM FullTimeEmployee INTO java.util.Map
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.

> JPOX generates illegal SQL for queries using result class java.util.Map.
> ------------------------------------------------------------------------
>
>          Key: JDO-248
>          URL: http://issues.apache.org/jira/browse/JDO-248
>      Project: JDO
>         Type: Bug
>   Components: tck20
>     Reporter: Michael Watzek
>     Assignee: Erik Bengtson

>
> 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)

-- 
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