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 "Andy Jefferson (JIRA)" <ji...@apache.org> on 2010/03/19 19:08:27 UTC

[jira] Commented: (JDO-573) RI creates bad SQL for navigational queries

    [ https://issues.apache.org/jira/browse/JDO-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847486#action_12847486 ] 

Andy Jefferson commented on JDO-573:
------------------------------------

For reference, DataNucleus 2.1.x passes this test, using the replacement JDOQL implementation. 
Since DN 2.1 is not yet released this can wait until after JDO2.3 release for enabling of these excluded tests.

> RI creates bad SQL for navigational queries
> -------------------------------------------
>
>                 Key: JDO-573
>                 URL: https://issues.apache.org/jira/browse/JDO-573
>             Project: JDO
>          Issue Type: Bug
>          Components: tck2, tck2-legacy
>    Affects Versions: JDO 2 maintenance release 1, JDO 2 maintenance release 2
>            Reporter: Craig L Russell
>            Assignee: Andy Jefferson
>
> The test org.apache.jdo.tck.query.result.VariableInResultNavigation fails with incorrect SQL generated.
>     [java] 1) testNavigationWithThisAndCompany(org.apache.jdo.tck.query.result.VariableInResultNavigation)javax.jdo.JDOException: JDOException thrown while executing query:
>     [java] SELECT this, e, p FROM org.apache.jdo.tck.pc.company.Company WHERE name == "Sun Microsystems, Inc." && departments.contains(d) && d.employees.contains(e) && e.projects.contains(p) VARIABLES Department d; Employee e; Project p 
>     [java] 	at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1314)
>     [java] 	at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1135)
>     [java] 	at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1071)
>     [java] 	at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:1051)
>     [java] 	at org.apache.jdo.tck.query.result.VariableInResultNavigation.testNavigationWithThisAndCompany(VariableInResultNavigation.java:251)
>     [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:254)
>     [java] 	at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
>     [java] 	at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
>     [java] 	at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)
>     [java] NestedThrowablesStackTrace:
>     [java] javax.jdo.JDODataStoreException: [JPOX-042007] Error executing JDOQL query "SELECT THIS.DATASTORE_IDENTITY,UNBOUND_E.DATASTORE_IDENTITY,UNBOUND_P.DATASTORE_IDENTITY FROM datastoreidentity0.COMPANIES THIS , datastoreidentity0.PERSONS UNBOUND_E , datastoreidentity0.PROJECTS UNBOUND_P WHERE EXISTS (SELECT 1 FROM datastoreidentity0.DEPARTMENTS THIS_DEPARTMENTS_D WHERE EXISTS (SELECT 1 FROM datastoreidentity0.PERSONS THIS_DEPARTMENTS_D_EMPLOYEES_E WHERE THIS_DEPARTMENTS_D_EMPLOYEES_E.DEPARTMENT = THIS_DEPARTMENTS_D.DATASTORE_IDENTITY AND THIS_DEPARTMENTS_D.COMPANYID = THIS.DATASTORE_IDENTITY AND THIS."NAME" = ?)) AND EXISTS (SELECT 1 FROM datastoreidentity0.PROJECT_MEMBER THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P WHERE THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P."MEMBER" = THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY AND UNBOUND_P.DATASTORE_IDENTITY = THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P.PROJID)" : Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY' is not a column in the target table..

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


Re: [jira] Commented: (JDO-573) RI creates bad SQL for navigational queries

Posted by Craig L Russell <Cr...@Sun.COM>.
Hi Andy,

This is good news. Congratulations.

Craig

On Mar 19, 2010, at 11:08 AM, Andy Jefferson (JIRA) wrote:

>
>    [ https://issues.apache.org/jira/browse/JDO-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847486 
> #action_12847486 ]
>
> Andy Jefferson commented on JDO-573:
> ------------------------------------
>
> For reference, DataNucleus 2.1.x passes this test, using the  
> replacement JDOQL implementation.
> Since DN 2.1 is not yet released this can wait until after JDO2.3  
> release for enabling of these excluded tests.
>
>> RI creates bad SQL for navigational queries
>> -------------------------------------------
>>
>>                Key: JDO-573
>>                URL: https://issues.apache.org/jira/browse/JDO-573
>>            Project: JDO
>>         Issue Type: Bug
>>         Components: tck2, tck2-legacy
>>   Affects Versions: JDO 2 maintenance release 1, JDO 2 maintenance  
>> release 2
>>           Reporter: Craig L Russell
>>           Assignee: Andy Jefferson
>>
>> The test org.apache.jdo.tck.query.result.VariableInResultNavigation  
>> fails with incorrect SQL generated.
>>    [java] 1)  
>> testNavigationWithThisAndCompany 
>> (org 
>> .apache 
>> .jdo 
>> .tck 
>> .query.result.VariableInResultNavigation)javax.jdo.JDOException:  
>> JDOException thrown while executing query:
>>    [java] SELECT this, e, p FROM  
>> org.apache.jdo.tck.pc.company.Company WHERE name == "Sun  
>> Microsystems, Inc." && departments.contains(d) &&  
>> d.employees.contains(e) && e.projects.contains(p) VARIABLES  
>> Department d; Employee e; Project p
>>    [java] 	at  
>> org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1314)
>>    [java] 	at  
>> org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1135)
>>    [java] 	at  
>> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 
>> 1071)
>>    [java] 	at  
>> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 
>> 1051)
>>    [java] 	at  
>> org 
>> .apache 
>> .jdo 
>> .tck 
>> .query 
>> .result 
>> .VariableInResultNavigation 
>> .testNavigationWithThisAndCompany(VariableInResultNavigation.java: 
>> 251)
>>    [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:254)
>>    [java] 	at  
>> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java: 
>> 108)
>>    [java] 	at  
>> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java: 
>> 148)
>>    [java] 	at  
>> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java: 
>> 123)
>>    [java] NestedThrowablesStackTrace:
>>    [java] javax.jdo.JDODataStoreException: [JPOX-042007] Error  
>> executing JDOQL query "SELECT  
>> THIS 
>> .DATASTORE_IDENTITY 
>> ,UNBOUND_E.DATASTORE_IDENTITY,UNBOUND_P.DATASTORE_IDENTITY FROM  
>> datastoreidentity0.COMPANIES THIS , datastoreidentity0.PERSONS  
>> UNBOUND_E , datastoreidentity0.PROJECTS UNBOUND_P WHERE EXISTS  
>> (SELECT 1 FROM datastoreidentity0.DEPARTMENTS THIS_DEPARTMENTS_D  
>> WHERE EXISTS (SELECT 1 FROM datastoreidentity0.PERSONS  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E WHERE  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E.DEPARTMENT =  
>> THIS_DEPARTMENTS_D.DATASTORE_IDENTITY AND  
>> THIS_DEPARTMENTS_D.COMPANYID = THIS.DATASTORE_IDENTITY AND  
>> THIS."NAME" = ?)) AND EXISTS (SELECT 1 FROM  
>> datastoreidentity0.PROJECT_MEMBER  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P WHERE  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P."MEMBER" =  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY AND  
>> UNBOUND_P.DATASTORE_IDENTITY =  
>> THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P.PROJID)" : Column  
>> 'THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY' is either not  
>> in any table in the FROM list or appears within a join  
>> specification and is outside the scope of the join specification or  
>> appears in a HAVING clause and is not in the GROUP BY list. If this  
>> is a CREATE or ALTER TABLE  statement then  
>> 'THIS_DEPARTMENTS_D_EMPLOYEES_E.DATASTORE_IDENTITY' is not a column  
>> in the target table..
>
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>

Craig L Russell
Architect, Oracle
http://db.apache.org/jdo
408 276-5638 mailto:Craig.Russell@oracle.com
P.S. A good JDO? O, Gasp!