The test case AggregateResult fails throwing the exception below when DISTINCT is specified inside an aggregate function. The exception is thrown for COUNT, SUM, and AVG.
14:22:43,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT AVG(DISTINCT manager.salary) FROM org.apache.jdo.tck.pc.company.FullTimeEmployee
14:22:43,625 (main) INFO [org.apache.jdo.tck] - Exception during setUp or runtest:
org.jpox.store.query.JDOQLQuery$Compiler$ExpressionSyntaxException: ')' expected at character 14 in "AVG(DISTINCT manager.salary)"
at org.jpox.store.query.JDOQLQuery$Compiler.compilePrimary(JDOQLQuery.java:1667)
at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpressionNotPlusMinus(JDOQLQuery.java:1598)
at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpression(JDOQLQuery.java:1579)
at org.jpox.store.query.JDOQLQuery$Compiler.compileMultiplicativeExpression(JDOQLQuery.java:1532)
at org.jpox.store.query.JDOQLQuery$Compiler.compileAdditiveExpression(JDOQLQuery.java:1509)
at org.jpox.store.query.JDOQLQuery$Compiler.compileRelationalExpression(JDOQLQuery.java:1469)
at org.jpox.store.query.JDOQLQuery$Compiler.compileEqualityExpression(JDOQLQuery.java:1446)
at org.jpox.store.query.JDOQLQuery$Compiler.compileAndExpression(JDOQLQuery.java:1434)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExclusiveOrExpression(JDOQLQuery.java:1422)
at org.jpox.store.query.JDOQLQuery$Compiler.compileInclusiveOrExpression(JDOQLQuery.java:1410)
at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalAndExpression(JDOQLQuery.java:1398)
at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalOrExpression(JDOQLQuery.java:1380)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpression(JDOQLQuery.java:1357)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionFromString(JDOQLQuery.java:1287)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionsFromString(JDOQLQuery.java:1341)
at org.jpox.store.query.JDOQLQuery$Compiler.compileResult(JDOQLQuery.java:1044)
at org.jpox.store.query.JDOQLQuery$Compiler.performCompile(JDOQLQuery.java:917)
at org.jpox.store.query.JDOQLQuery$Compiler.executionCompile(JDOQLQuery.java:905)
at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:622)
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.AggregateResult.executeQuery(AggregateResult.java:627)
at org.apache.jdo.tck.query.result.AggregateResult.testAVG(AggregateResult.java:613)
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)
Description
The test case AggregateResult fails throwing the exception below when DISTINCT is specified inside an aggregate function. The exception is thrown for COUNT, SUM, and AVG.
14:22:43,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT AVG(DISTINCT manager.salary) FROM org.apache.jdo.tck.pc.company.FullTimeEmployee
14:22:43,625 (main) INFO [org.apache.jdo.tck] - Exception during setUp or runtest:
org.jpox.store.query.JDOQLQuery$Compiler$ExpressionSyntaxException: ')' expected at character 14 in "AVG(DISTINCT manager.salary)"
at org.jpox.store.query.JDOQLQuery$Compiler.compilePrimary(JDOQLQuery.java:1667)
at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpressionNotPlusMinus(JDOQLQuery.java:1598)
at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpression(JDOQLQuery.java:1579)
at org.jpox.store.query.JDOQLQuery$Compiler.compileMultiplicativeExpression(JDOQLQuery.java:1532)
at org.jpox.store.query.JDOQLQuery$Compiler.compileAdditiveExpression(JDOQLQuery.java:1509)
at org.jpox.store.query.JDOQLQuery$Compiler.compileRelationalExpression(JDOQLQuery.java:1469)
at org.jpox.store.query.JDOQLQuery$Compiler.compileEqualityExpression(JDOQLQuery.java:1446)
at org.jpox.store.query.JDOQLQuery$Compiler.compileAndExpression(JDOQLQuery.java:1434)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExclusiveOrExpression(JDOQLQuery.java:1422)
at org.jpox.store.query.JDOQLQuery$Compiler.compileInclusiveOrExpression(JDOQLQuery.java:1410)
at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalAndExpression(JDOQLQuery.java:1398)
at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalOrExpression(JDOQLQuery.java:1380)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpression(JDOQLQuery.java:1357)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionFromString(JDOQLQuery.java:1287)
at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionsFromString(JDOQLQuery.java:1341)
at org.jpox.store.query.JDOQLQuery$Compiler.compileResult(JDOQLQuery.java:1044)
at org.jpox.store.query.JDOQLQuery$Compiler.performCompile(JDOQLQuery.java:917)
at org.jpox.store.query.JDOQLQuery$Compiler.executionCompile(JDOQLQuery.java:905)
at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:622)
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.AggregateResult.executeQuery(AggregateResult.java:627)
at org.apache.jdo.tck.query.result.AggregateResult.testAVG(AggregateResult.java:613)
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)
JPOX CVS now has support for COUNT(DISTINCT ...), AVG(DISTINCT ...), SUM(DISTINCT ...). Builds dated 01/01/2006 or later will have it. Happy New Year.
Another 3 TCK tests now pass.
Andy Jefferson added a comment - 01/Jan/06 03:12 AM JPOX CVS now has support for COUNT(DISTINCT ...), AVG(DISTINCT ...), SUM(DISTINCT ...). Builds dated 01/01/2006 or later will have it. Happy New Year.
Another 3 TCK tests now pass.
Another 3 TCK tests now pass.