Documentation of 'org.apache.derby.impl.sql.execute.UserDefinedAggregator' Java class
UserDefinedAggregator
org.apache.derby.impl.sql.execute

Class UserDefinedAggregator

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, Formatable, TypedFormat, ExecAggregator


    public final class UserDefinedAggregator
    extends java.lang.Object
    implements ExecAggregator
    Aggregator for user-defined aggregates. Wraps the application-supplied implementation of org.apache.derby.agg.Aggregator.
    See Also:
    Serialized Form
    • Constructor Detail

      • UserDefinedAggregator

        public UserDefinedAggregator()
        0-arg constructor for Formatable interface
    • Method Detail

      • setup

        public void setup(ClassFactory classFactory,
                          java.lang.String aggregateName,
                          DataTypeDescriptor resultType)
        Description copied from interface: ExecAggregator
        Set's up the aggregate for processing.
        Specified by:
        setup in interface ExecAggregator
        Parameters:
        classFactory - Database-specific class factory.
        aggregateName - For builtin aggregates, this is a SQL aggregate name like MAX. For user-defined aggregates, this is the name of the user-written class which implements org.apache.derby.agg.Aggregator.
        resultType - The type returned by the getResult() method.
      • didEliminateNulls

        public boolean didEliminateNulls()
        Description copied from interface: ExecAggregator
        Return true if the aggregation eliminated at least one null from the input data set.
        Specified by:
        didEliminateNulls in interface ExecAggregator
      • accumulate

        public void accumulate(DataValueDescriptor addend,
                               java.lang.Object ga)
                        throws StandardException
        Description copied from interface: ExecAggregator
        Iteratively accumulates the addend into the aggregator. Called on each member of the set of values that is being aggregated.
        Specified by:
        accumulate in interface ExecAggregator
        Parameters:
        addend - the DataValueDescriptor addend (current input to the aggregation)
        ga - a result set getter
        Throws:
        StandardException - on error
      • merge

        public void merge(ExecAggregator addend)
                   throws StandardException
        Description copied from interface: ExecAggregator
        Merges one aggregator into a another aggregator. Merges two partial aggregates results into a single result. Needed for:
        • parallel aggregation
        • vector aggregation (GROUP BY)
        • distinct aggregates (e.g. MAX(DISTINCT Col))

        An example of a merge would be: given two COUNT() aggregators, C1 and C2, a merge of C1 into C2 would set C1.count += C2.count. So, given a CountAggregator with a getCount() method that returns its counts, its merge method might look like this:

        
                        public void merge(ExecAggregator inputAggregator) throws StandardException
                        {
                           count += ((CountAccgregator)inputAggregator).getCount();
                        } 
        Specified by:
        merge in interface ExecAggregator
        Parameters:
        addend - the other Aggregator (input partial aggregate)
        Throws:
        StandardException - on error
      • newAggregator

        public ExecAggregator newAggregator()
        Description copied from interface: ExecAggregator
        Return a new initialized copy of this aggregator, any state set by the setup() method of the original Aggregator must be copied into the new aggregator.
        Specified by:
        newAggregator in interface ExecAggregator
        Returns:
        ExecAggregator the new aggregator
      • writeExternal

        public void writeExternal(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException - on error
      • readExternal

        public void readExternal(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException - on error
        java.lang.ClassNotFoundException
        See Also:
        Externalizable.readExternal(java.io.ObjectInput)
      • getTypeFormatId

        public int getTypeFormatId()
        Get the formatID which corresponds to this class.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        the formatID of this class

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.