openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Lee (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-312) derby fails with duplicate primary key(s) in group by list
Date Wed, 15 Aug 2007 19:15:30 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12520068
] 

Daniel Lee commented on OPENJPA-312:
------------------------------------

Per discussion conclusion, attached here is the patch of fix using a ListArray to keep track
of the columns in _grouping.  StringTokenizer has been removed.

Thanks,
Daniel

> derby fails with duplicate primary key(s) in group by list
> ----------------------------------------------------------
>
>                 Key: OPENJPA-312
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-312
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 1.0.0
>            Reporter: Daniel Lee
>            Assignee: Daniel Lee
>            Priority: Minor
>             Fix For: 1.0.0
>
>         Attachments: OPENJPA-312.patch, OPENJPA-312.patch
>
>
> derby fails with duplicate primary key(s) in group by list
> With query "select o.customer, avg(o.amount) from Order o group by o.customer" the push-down
query contains duplicate columns in the group by clause.  This is okay when DB2 and other
DB that tolerate the duplicates but Derby returns error.
> Of course, we can ask fix on Derby but we can also easy fix in OpenJPA to avoid duplicates
in the group by list.  Please refer to the following for the error result and the attach patch
for the fix.
> Output from running the query that generate duplicate in the group by list:
> 6429  demo  TRACE  [main] openjpa.Query - Executing query: select o.customer, avg(o.amount)
from Order o group by o.customer
> 6639  demo  TRACE  [main] openjpa.jdbc.SQL - <t 1094861122, conn 1639735740> executing
prepstmnt 1405375428 SELECT t1.countryCode, t1.id, t1.version, t1.city, t1.state, t1.street,
t1.zip, t1.creditRating, t1.name, AVG(t0.amount) FROM Order t0 INNER JOIN Customer t1 ON t0.customer_countryCode
= t1.countryCode AND t0.customer_id = t1.id GROUP BY t1.countryCode, t1.id, t1.version, t1.countryCode,
t1.id, t1.city, t1.state, t1.street, t1.zip, t1.countryCode, t1.id, t1.creditRating, t1.name


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