You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2006/01/05 19:20:48 UTC
svn commit: r366237 - in /db/jdo/trunk/tck20/test: conf/alltests.conf
java/org/apache/jdo/tck/query/jdoql/Having.java
java/org/apache/jdo/tck/query/result/Having.java
Author: mbo
Date: Thu Jan 5 10:20:39 2006
New Revision: 366237
URL: http://svn.apache.org/viewcvs?rev=366237&view=rev
Log:
JDO-245: Changed query test class Having:
- Added a new positive test
SELECT department, AVG(weeklyhours) FROM Employee GROUP BY department HAVING COUNT(personid) > 1
- Added a new negative test
SELECT department, AVG(weeklyhours) FROM Employee GROUP BY department HAVING firstname == 'emp1First'
- Moved class Having from package query.result to query.jdoql
Added:
db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/Having.java
- copied, changed from r366180, db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/result/Having.java
Removed:
db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/result/Having.java
Modified:
db/jdo/trunk/tck20/test/conf/alltests.conf
Modified: db/jdo/trunk/tck20/test/conf/alltests.conf
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/test/conf/alltests.conf?rev=366237&r1=366236&r2=366237&view=diff
==============================================================================
--- db/jdo/trunk/tck20/test/conf/alltests.conf (original)
+++ db/jdo/trunk/tck20/test/conf/alltests.conf Thu Jan 5 10:20:39 2006
@@ -312,6 +312,7 @@
org.apache.jdo.tck.query.jdoql.ExecuteQueryWhenPersistenceManagerIsClosed \
org.apache.jdo.tck.query.jdoql.ExecutingMultipleQueriesSimultaneouslyIsThreadSafe \
org.apache.jdo.tck.query.jdoql.ExecutingQueryWhenNoTransactionNoNontransactionalRead \
+org.apache.jdo.tck.query.jdoql.Having \
org.apache.jdo.tck.query.jdoql.IdentifiersEqualFieldNames \
org.apache.jdo.tck.query.jdoql.IgnoreCacheFalse \
org.apache.jdo.tck.query.jdoql.MultipleActiveQueryInstanceInSamePersistenceManager \
@@ -389,7 +390,6 @@
org.apache.jdo.tck.query.result.DistinctCandidateInstances \
org.apache.jdo.tck.query.result.DistinctQuery \
org.apache.jdo.tck.query.result.Grouping \
-org.apache.jdo.tck.query.result.Having \
org.apache.jdo.tck.query.result.ImmutableQueryResult \
org.apache.jdo.tck.query.result.NPEInResultExpr \
org.apache.jdo.tck.query.result.NullResults \
Copied: db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/Having.java (from r366180, db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/result/Having.java)
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/Having.java?p2=db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/Having.java&p1=db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/result/Having.java&r1=366180&r2=366237&rev=366237&view=diff
==============================================================================
--- db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/result/Having.java (original)
+++ db/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/Having.java Thu Jan 5 10:20:39 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.jdo.tck.query.result;
+package org.apache.jdo.tck.query.jdoql;
import java.util.Arrays;
@@ -60,6 +60,21 @@
/*GROUP BY*/ "department HAVING COUNT(department) > 0",
/*ORDER BY*/ null,
/*FROM*/ null,
+ /*TO*/ null),
+ // HAVING clause uses field that isn't contained in the SELECT clause.
+ new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "department, AVG(weeklyhours)",
+ /*INTO*/ null,
+ /*FROM*/ Employee.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ null,
+ /*VARIABLES*/ null,
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ "department HAVING COUNT(personid) > 1",
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
/*TO*/ null)
};
@@ -68,6 +83,7 @@
* single string queries and as API queries.
*/
private static final QueryElementHolder[] INVALID_QUERIES = {
+ // HAVING clause is not a boolean expression
new QueryElementHolder(
/*UNIQUE*/ null,
/*RESULT*/ "department, AVG(weeklyhours)",
@@ -81,6 +97,21 @@
/*GROUP BY*/ "department HAVING firstname",
/*ORDER BY*/ null,
/*FROM*/ null,
+ /*TO*/ null),
+ // HAVING clause is a non-aggregate expression using a non-grouping field
+ new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "department, AVG(weeklyhours)",
+ /*INTO*/ null,
+ /*FROM*/ Employee.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ null,
+ /*VARIABLES*/ null,
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ "department HAVING firstname == 'emp1First'",
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
/*TO*/ null)
};
@@ -88,6 +119,13 @@
* The expected results of valid queries.
*/
private Object[] expectedResult = {
+ Arrays.asList(new Object[] {
+ new Object[] {
+ getTransientCompanyModelInstance("dept1"),
+ new Double(33.0)},
+ new Object[] {
+ getTransientCompanyModelInstance("dept2"),
+ new Double(0.0)}}),
Arrays.asList(new Object[] {
new Object[] {
getTransientCompanyModelInstance("dept1"),