db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig Russell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-243) JPOX must throw JDOUserException for group by queries which select non-grouped fields.
Date Wed, 14 Dec 2005 02:20:46 GMT
    [ http://issues.apache.org/jira/browse/JDO-243?page=comments#action_12360385 ] 

Craig Russell commented on JDO-243:

Here's the specification:

When grouping is specified, each result expression must be one of:
an expression contained in the grouping expression; or,
an aggregate expression evaluated once per group.
The query groups all elements where all expressions specified in setGrouping have the same
values. The query result consists of one element per group.

I think that automatically adding fields to the grouping clause is likely to change the expected
result, and therefore won't be what the user expects. So I believe the spec is correct in
requiring an exception to be thrown.

> JPOX must throw JDOUserException for group by queries which select non-grouped fields.
> --------------------------------------------------------------------------------------
>          Key: JDO-243
>          URL: http://issues.apache.org/jira/browse/JDO-243
>      Project: JDO
>         Type: Bug
>   Components: tck20
>     Reporter: Michael Watzek
>     Assignee: Erik Bengtson

> Test case Grouping fails for the query below. The query is expected to throw a JDOUserException
because field salary is contained in the result clause and not contained in the group by clause.
> 14:22:49,328 (main) DEBUG [org.apache.jdo.tck] - Compiling API query: SELECT department,
salary FROM org.apache.jdo.tck.pc.company.Employee GROUP BY department 
> 14:22:49,328 (main) DEBUG [org.apache.jdo.tck] - Query compilation must throw JDOUserException:
> 14:22:49,328 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or runtest: 
> junit.framework.AssertionFailedError: Assertion A14.6.10-1 (Grouping) failed: 
> Query compilation must throw JDOUserException: null
> 	at junit.framework.Assert.fail(Assert.java:47)
> 	at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:546)
> 	at org.apache.jdo.tck.query.QueryTest.compile(QueryTest.java:915)
> 	at org.apache.jdo.tck.query.QueryTest.compile(QueryTest.java:878)
> 	at org.apache.jdo.tck.query.QueryTest.compileAPIQuery(QueryTest.java:793)
> 	at org.apache.jdo.tck.query.result.Grouping.testNegative(Grouping.java:122)
> 	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:
For more information on JIRA, see:

View raw message