| org.apache.derby.impl.sql.compile.AggregateDefinition
All known Subclasses: org.apache.derby.impl.sql.compile.MaxMinAggregateDefinition, org.apache.derby.impl.sql.compile.CountAggregateDefinition, org.apache.derby.impl.sql.compile.SumAvgAggregateDefinition,
AggregateDefinition | interface AggregateDefinition (Code) | | An AggregateDefinition defines an aggregate.
It is used
by Cloudscape during query compilation to determine what
Aggregator is used to aggregate a particular data type
and what datatype the Aggregator will emit. A single
AggregateDefinition may map to one or more Aggregators
depending on the input type. For example, a user defined
STDEV aggregate may use one aggregator implementation for the
INTEGER type and another for a user defined type that implements
a point. In this case, both the aggregators would have a
single AggregateDefinition that would chose the appropriate
aggregator based on the input type. On the other hand, if
only a single aggregator is needed to aggregate over all
of the input types (e.g. COUNT()), then it may be convenient
to implement both the AggregateDefinition and the Aggregator
interfaces by the same class.
See Also: org.apache.derby.catalog.TypeDescriptor |
getAggregator | public TypeDescriptor getAggregator(TypeDescriptor inputType, StringBuffer aggregatorClassName) throws SQLException(Code) | | Get the aggregator that performs the aggregation on the
input datatype at execution time. If the input type can be handled,
return a type descriptor with the resultant type information and
fill in the string buffer with the name of the class that
is used to perform the aggregation over the input type.
If the aggregate cannot be performed on this type, then
a null should be returned.
The aggregator class must implement a zero argument
constructor. The aggregator class can be the same class
as the AggregateDefinition if it implements both interfaces.
The result datatype may be the same as the input datatype
or a different datatype. To create your own type descriptor
to return to this method, see com.ibm.db2j.types.TypeFactory.
Parameters: inputType - the input type descriptor Parameters: aggregatorClassName - output parameter, filled inwith the class name that implements com.ibm.db2j.aggregates.Aggregator the output type descriptor (which may or may notbe the same as the input type -- it is ok to simplyreturn the input type). Null is returnedif the aggregate cannot process the input type.Note that the output type may be a type that mapsdirectly to a standard SQL (e.g. java.lang.Integer)or any other java type (e.g. java.sql.ResultSet,java.util.Vector, java.util.TimeZone or whatever).To construct a type descriptor see com.ibm.db2j.types.TypeFactory. See Also: org.apache.derby.catalog.TypeDescriptor exception: SQLException - Thrown on error. |
|
|