Class MaxMinAggregator

    • Field Detail

      • isMax

        private boolean isMax
    • Constructor Detail

      • MaxMinAggregator

        public MaxMinAggregator()
    • Method Detail

      • setup

        public void setup​(ClassFactory cf,
                          java.lang.String aggregateName,
                          DataTypeDescriptor returnType)
        Description copied from interface: ExecAggregator
        Set's up the aggregate for processing.
        Specified by:
        setup in interface ExecAggregator
        Overrides:
        setup in class OrderableAggregator
        Parameters:
        cf - 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.
        returnType - The type returned by the getResult() method.
      • 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.
        Returns:
        ExecAggregator the new aggregator
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Description copied from class: OrderableAggregator
        Although we are not expected to be persistent per se, we may be written out by the sorter temporarily. So we need to be able to write ourselves out and read ourselves back in. We rely on formatable to handle situations where value is null.

        Why would we be called to write ourselves out if we are null? For scalar aggregates, we don't bother setting up the aggregator since we only need a single row. So for a scalar aggregate that needs to go to disk, the aggregator might be null.

        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class OrderableAggregator
        Throws:
        java.io.IOException - on error
        See Also:
        Externalizable.writeExternal(java.io.ObjectOutput)
      • readExternal

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

        public int getTypeFormatId()
        Get the formatID which corresponds to this class.
        Returns:
        the formatID of this class