Implement new JDO 2 query tests cases concerning result handling.
-----------------------------------------------------------------
Key: JDO-164
URL: http://issues.apache.org/jira/browse/JDO-164
Project: JDO
Type: New Feature
Components: tck20
Reporter: Michael Watzek
Assigned to: Michael Watzek
We need 14 new test classes, one for each of the following assertions:
- A14.6.9-1: If distinct is specified, the query result does not include any
duplicates. If the result parameter specifies more than one result expression,
duplicates are those with matching values for each result expression.
- A14.6.9-2: Queries against an extent always consider only distinct candidate
instances, regardless of whether distinct is specified. Queries against a
collection might contain duplicate candidate instances; the distinct keyword
removes duplicates from the candidate collection in this case.
- A14.6.9-3: If a variable or a field of a variable is included in the result,
either directly or via navigation through the variable, then the semantics of
the contains clause that include the variable change. In this case, all values
of the variable that satisfy the filter are included in the result.
- A14.6.9-4: If any result is a navigational expression, and a non-terminal
field or variable has a null value for a particular set of conditions (the
result calculation would throw NullPointerException), then the result is null
for that result expression.
- A14.6.9-5: The result expressions include: ... The result expression can be
explicitly cast using the (cast) operator.
- A14.6.9-6: Count returns Long. Sum returns Long for integral types and the
field's type for other Number types (BigDecimal, BigInteger, Float, and
Double). Sum is invalid if applied to non-Number types. Avg, min, and max
return the type of the expression.
- A14.6.9-7: If the returned value from a query specifying a result is null,
this indicates that the expression specified as the result was null.
- A14.6.9-8: If not specified, the result defaults to distinct this as C.
- A14.6.10-1: 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.
- A14.6.10-2: When having is specified, the having expression consists of
arithmetic and boolean expressions containing aggregate expressions.
- A14.6.11-1: When the value of the Unique flag is true, then the result of a
query is a single value, with null used to indicate that none of the instances
in the candidates satisfied the filter. If more than one instance satisfies the
filter, and the range is not limited to one result, then execute throws a
JDOUserException.
- A14.6.11-2: The default Unique setting is true for aggregate results without
a grouping expression, and false otherwise.
- A14.6.12-1:The result class may be one of the java.lang classes Character,
Boolea, Byte, Short, Integer, Long, Float, Double, String, or Object[]; or one
of the java.math classes BigInteger or BigDecimal; or the java.util class Date;
or the java.util interface Map; or one of the java.sql classes Date, Time, or
Timestamp; or a user-defined class.
- A14.6.12-2: Table 6: Shape of Result (C is the candidate class).
Details can be found on Wiki page
http://wiki.apache.org/jdo/QueryTests#ResultHandling.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira