Fennel: ExtremeAggComputer Class Reference (original) (raw)

ExtremeAggComputer computes MIN/MAX, ignoring null values but returning null if the input is empty. More...

#include <[AggComputerImpl.h](AggComputerImpl%5F8h-source.html)>

Inheritance diagram for ExtremeAggComputer:

List of all members.

Public Member Functions
ExtremeAggComputer (AggFunction aggFunctionInit, TupleAttributeDescriptor const &attrDesc)
virtual void clearAccumulator (TupleDatum &accumulatorDatum)
Clears an accumulator.
virtual void updateAccumulator (TupleDatum &accumulatorDatum, TupleData const &inputTuple)
Updates an accumulator with a new input tuple.
virtual void computeOutput (TupleDatum &outputDatum, TupleDatum const &accumulatorDatum)
Computes an output based on accumulator state.
virtual void initAccumulator (TupleDatum &accumulatorDatumDest, TupleData const &inputTuple)
Initializes a new accumulator datum from an input tuple.
virtual void initAccumulator (TupleDatum &accumulatorDatumSrc, TupleDatum &accumulatorDatumDest)
Initializes a new accumulator datum from an existing accumulator datum.
virtual void updateAccumulator (TupleDatum &accumulatorDatumSrc, TupleDatum &accumulatorDatumDest, TupleData const &inputTuple)
Computes a new accumulator from an existing accumulator dataum and a new input tuple.
virtual void setInputAttrIndex (uint iInputAttrIndex)
Sets the attribute index from which this computer should read input values in source tuples.
Static Public Member Functions
static AggComputer * newAggComputer (AggFunction aggFunction, TupleAttributeDescriptor const *pAttrDesc)
Virtual constructor.
Protected Attributes
int iInputAttr
Private Member Functions
void copyInputToAccumulator (TupleDatum &accumulatorDatum, TupleDatum const &inputDatum)
Private Attributes
StoredTypeDescriptor const * pTypeDescriptor
Type descriptor used as comparison functor.
AggFunction aggFunction
Agg function implemented by this agg computer.
bool isResultNull
True until a non-null input value is seen.

Detailed Description

ExtremeAggComputer computes MIN/MAX, ignoring null values but returning null if the input is empty.

Definition at line 120 of file AggComputerImpl.h.


Constructor & Destructor Documentation


Member Function Documentation

void ExtremeAggComputer::copyInputToAccumulator ( TupleDatum & accumulatorDatum,
TupleDatum const & inputDatum
) [inline, private]
void ExtremeAggComputer::clearAccumulator ( TupleDatum & accumulatorDatum ) [virtual]
void ExtremeAggComputer::updateAccumulator ( TupleDatum & accumulatorDatum,
TupleData const & inputTuple
) [virtual]
void ExtremeAggComputer::computeOutput ( TupleDatum & outputDatum,
TupleDatum const & accumulatorDatum
) [virtual]

Computes an output based on accumulator state.

Parameters:

outputDatum receives reference to computed output in preparation for marshalling result
accumulatorDatum final in-memory accumulator state

Implements AggComputer.

Definition at line 284 of file AggComputer.cpp.

References isResultNull, and TupleDatum::pData.

00287 { 00288
00289 outputDatum = accumulatorDatum; 00290 if (isResultNull) { 00291 outputDatum.pData = NULL; 00292 } 00293 }

void ExtremeAggComputer::initAccumulator ( TupleDatum & accumulatorDatumDest,
TupleData const & inputTuple
) [virtual]
void ExtremeAggComputer::initAccumulator ( TupleDatum & accumulatorDatumSrc,
TupleDatum & accumulatorDatumDest
) [virtual]

Initializes a new accumulator datum from an existing accumulator datum.

Parameters:

accumulatorDatumSrc the existing accumulator datum
accumulatorDatumDest the new accumulator datum. Memory needs to be associated with this datum by the caller.

Implements AggComputer.

Definition at line 303 of file AggComputer.cpp.

References isResultNull, and TupleDatum::memCopyFrom().

void ExtremeAggComputer::updateAccumulator ( TupleDatum & accumulatorDatumSrc,
TupleDatum & accumulatorDatumDest,
TupleData const & inputTuple
) [virtual]

Virtual constructor.

Parameters:

aggFunction function for which to construct a computer
pAttrDesc descriptor for input attribute, or NULL for no input attribute (as in COUNT(*))

Definition at line 34 of file AggComputer.cpp.

References AGG_FUNC_COUNT, AGG_FUNC_MAX, AGG_FUNC_MIN, AGG_FUNC_SINGLE_VALUE, AGG_FUNC_SUM, STANDARD_TYPE_DOUBLE, STANDARD_TYPE_INT_16, STANDARD_TYPE_INT_32, STANDARD_TYPE_INT_64, STANDARD_TYPE_INT_8, STANDARD_TYPE_REAL, STANDARD_TYPE_UINT_16, STANDARD_TYPE_UINT_32, STANDARD_TYPE_UINT_64, and STANDARD_TYPE_UINT_8.

Referenced by SortedAggExecStream::newAggComputer(), and LhxAggExecStream::setAggComputers().

void AggComputer::setInputAttrIndex ( uint iInputAttrIndex ) [virtual, inherited]

Member Data Documentation


The documentation for this class was generated from the following files:


Generated on Mon Jun 22 04:00:32 2009 for Fennel by doxygen 1.5.1