openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Wisneski (JIRA)" <j...@apache.org>
Subject [jira] Closed: (OPENJPA-48) parsing error - cast of subselect does not work
Date Thu, 01 Feb 2007 01:50:05 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-48?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

David Wisneski closed OPENJPA-48.
---------------------------------

    Resolution: Fixed

fixed in recent code

>  parsing error - cast of subselect does not work
> ------------------------------------------------
>
>                 Key: OPENJPA-48
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-48
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: query
>         Environment: Windows xp, derby and db2
>            Reporter: George Hongell
>         Attachments: failureEntities.jar
>
>
> 163 - parsing error - cast of subselect does not work
>  TEST163; select e from EmpBean e where e.salary + 100 > all (select e1.salary  from
EmpBean e1 left join e1.dept d where d.no = 20)
> Syntax error: Encountered "ALL" at line 1, column 484. {SELECT t0.empid, t0.bonus, t3.deptno,
t3.budget, t3.name, t0.execLevel, t0.hireDate, t0.hireTime, t0.hireTimestamp, t4.street, t4.city,
t4.state, t4.zip, t0.isManager, t0.name, t0.salary, t5.street, t5.city, t5.state, t5.zip FROM
EmpBean t0 LEFT OUTER JOIN DeptBean t3 ON t0.dept_deptno = t3.deptno LEFT OUTER JOIN AddressBean
t4 ON t0.home_street = t4.street LEFT OUTER JOIN AddressBean t5 ON t0.work_street = t5.street
WHERE ((CAST(t0.salary AS DOUBLE) + CAST(? AS DOUBLE)) > CAST(ALL((SELECT t1.salary FROM
EmpBean t1, DeptBean t2 WHERE (CAST(t2.deptno AS BIGINT) = CAST(? AS BIGINT)) AND t1.dept_deptno
= t2.deptno)) AS DOUBLE))} [code=30000, state=42X01] 
>   {double 100, int 20}
> this works
> select t0.empid, t0.salary FROM EmpBean t0 LEFT OUTER JOIN DeptBean t3 ON t0.dept_deptno
= t3.deptno WHERE ((CAST(t0.salary AS DOUBLE) + CAST(? AS DOUBLE)) > ALL (SELECT t1.salary
FROM EmpBean t1, DeptBean t2 WHERE (CAST(t2.deptno AS BIGINT) = CAST(? AS BIGINT)) AND t1.dept_deptno
= t2.deptno))  {double 100, int 20}
> <0|false|0.0.0> org.apache.openjpa.persistence.PersistenceException: Syntax error:
Encountered "ALL" at line 1, column 484. {SELECT t0.empid, t0.bonus, t3.deptno, t3.budget,
t3.name, t0.execLevel, t0.hireDate, t0.hireTime, t0.hireTimestamp, t4.street, t4.city, t4.state,
t4.zip, t0.isManager, t0.name, t0.salary, t5.street, t5.city, t5.state, t5.zip FROM EmpBean
t0 LEFT OUTER JOIN DeptBean t3 ON t0.dept_deptno = t3.deptno LEFT OUTER JOIN AddressBean t4
ON t0.home_street = t4.street LEFT OUTER JOIN AddressBean t5 ON t0.work_street = t5.street
WHERE ((CAST(t0.salary AS DOUBLE) + CAST(? AS DOUBLE)) > CAST(ALL((SELECT t1.salary FROM
EmpBean t1, DeptBean t2 WHERE (CAST(t2.deptno AS BIGINT) = CAST(? AS BIGINT)) AND t1.dept_deptno
= t2.deptno)) AS DOUBLE))} [code=30000, state=42X01]
> 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3713)
> 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:94)
> 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:80)
> 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:56)
> 	at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:152)
> 	at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:37)
> 	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1161)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:936)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:746)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:716)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:712)
> 	at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:512)
> 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:216)
> 	at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:254)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.createAndRunQuery(JFLoopQueryTestcase.java:187)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.testFileQuery(JFLoopQueryTestcase.java:536)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.testRunQueryLoopImpl(JFLoopQueryTestcase.java:591)
> 	at com.ibm.ws.query.tests.JFLoopQueryTest.testRunQueryLoop(JFLoopQueryTest.java:265)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:615)
> 	at junit.extensions.jfunc.TestletWrapper.runBare(TestletWrapper.java:116)
> 	at junit.extensions.jfunc.TestletWrapper$1.protect(TestletWrapper.java:106)
> 	at junit.framework.TestResult.runProtected(Unknown Source)
> 	at junit.extensions.jfunc.TestletWrapper.run(TestletWrapper.java:109)
> 	at junit.framework.TestSuite.runTest(Unknown Source)
> 	at junit.framework.TestSuite.run(Unknown Source)
> 	at junit.extensions.jfunc.JFuncSuite.run(JFuncSuite.java:134)
> 	at junit.extensions.jfunc.textui.JFuncRunner.doRun(JFuncRunner.java:76)
> 	at junit.extensions.jfunc.textui.JFuncRunner.start(JFuncRunner.java:398)
> 	at junit.extensions.jfunc.textui.JFuncRunner.main(JFuncRunner.java:218)
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Syntax error: Encountered
"ALL" at line 1, column 484. {SELECT t0.empid, t0.bonus, t3.deptno, t3.budget, t3.name, t0.execLevel,
t0.hireDate, t0.hireTime, t0.hireTimestamp, t4.street, t4.city, t4.state, t4.zip, t0.isManager,
t0.name, t0.salary, t5.street, t5.city, t5.state, t5.zip FROM EmpBean t0 LEFT OUTER JOIN DeptBean
t3 ON t0.dept_deptno = t3.deptno LEFT OUTER JOIN AddressBean t4 ON t0.home_street = t4.street
LEFT OUTER JOIN AddressBean t5 ON t0.work_street = t5.street WHERE ((CAST(t0.salary AS DOUBLE)
+ CAST(? AS DOUBLE)) > CAST(ALL((SELECT t1.salary FROM EmpBean t1, DeptBean t2 WHERE (CAST(t2.deptno
AS BIGINT) = CAST(? AS BIGINT)) AND t1.dept_deptno = t2.deptno)) AS DOUBLE))} [code=30000,
state=42X01]
> 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:193)
> 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$6(LoggingConnectionDecorator.java:189)
> 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection.prepareStatement(LoggingConnectionDecorator.java:217)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:160)
> 	at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.prepareStatement(ConfiguringConnectionDecorator.java:137)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:160)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$RefCountConnection.prepareStatement(JDBCStoreManager.java:1305)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:149)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:463)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:443)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:322)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:295)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:397)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:208)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:198)
> 	at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:91)
> 	at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:31)
> 	... 26 more
> NestedThrowables:
> ERROR 42X01: Syntax error: Encountered "ALL" at line 1, column 484.
> 	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.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 org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:185)
> 	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:278)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:162)
> 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection.prepareStatement(LoggingConnectionDecorator.java:214)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:160)
> 	at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.prepareStatement(ConfiguringConnectionDecorator.java:137)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:160)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$RefCountConnection.prepareStatement(JDBCStoreManager.java:1305)
> 	at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:149)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:463)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:443)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:322)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:295)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:397)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:208)
> 	at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:198)
> 	at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:91)
> 	at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:31)
> 	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1161)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:936)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:746)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:716)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:712)
> 	at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:512)
> 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:216)
> 	at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:254)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.createAndRunQuery(JFLoopQueryTestcase.java:187)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.testFileQuery(JFLoopQueryTestcase.java:536)
> 	at com.ibm.ws.query.utils.JFLoopQueryTestcase.testRunQueryLoopImpl(JFLoopQueryTestcase.java:591)
> 	at com.ibm.ws.query.tests.JFLoopQueryTest.testRunQueryLoop(JFLoopQueryTest.java:265)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:615)
> 	at junit.extensions.jfunc.TestletWrapper.runBare(TestletWrapper.java:116)
> 	at junit.extensions.jfunc.TestletWrapper$1.protect(TestletWrapper.java:106)
> 	at junit.framework.TestResult.runProtected(Unknown Source)
> 	at junit.extensions.jfunc.TestletWrapper.run(TestletWrapper.java:109)
> 	at junit.framework.TestSuite.runTest(Unknown Source)
> 	at junit.framework.TestSuite.run(Unknown Source)
> 	at junit.extensions.jfunc.JFuncSuite.run(JFuncSuite.java:134)
> 	at junit.extensions.jfunc.textui.JFuncRunner.doRun(JFuncRunner.java:76)
> 	at junit.extensions.jfunc.textui.JFuncRunner.start(JFuncRunner.java:398)
> 	at junit.extensions.jfunc.textui.JFuncRunner.main(JFuncRunner.java:218)
>  TEST163; select e from EmpBean e where e.salary + 100 > all (select e1.salary  from
EmpBean e1 left join e1.dept d where d.no = 20)
>                                                                                     
                                                                                         
                                                                                         
                                                                                         
  e                                                                                      
                                                                                         
                                                                                         
                                                                                         
 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> Syntax error: Encountered "ALL" at line 1, column 484. {SELECT t0.empid, t0.bonus, t3.deptno,
t3.budget, t3.name, t0.execLevel, t0.hireDate, t0.hireTime, t0.hireTimestamp, t4.street, t4.city,
t4.state, t4.zip, t0.isManager, t0.name, t0.salary, t5.street, t5.city, t5.state, t5.zip FROM
EmpBean t0 LEFT OUTER JOIN DeptBean t3 ON t0.dept_deptno = t3.deptno LEFT OUTER JOIN AddressBean
t4 ON t0.home_street = t4.street LEFT OUTER JOIN AddressBean t5 ON t0.work_street = t5.street
WHERE ((CAST(t0.salary AS DOUBLE) + CAST(? AS DOUBLE)) > CAST(ALL((SELECT t1.salary FROM
EmpBean t1, DeptBean t2 WHERE (CAST(t2.deptno AS BIGINT) = CAST(? AS BIGINT)) AND t1.dept_deptno
= t2.deptno)) AS DOUBLE))} [code=30000, state=42X01] 
>  TEST163; 1 tuple

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message