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:

| 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:
- /home/pub/open/dev/fennel/exec/AggComputerImpl.h
- /home/pub/open/dev/fennel/exec/AggComputer.cpp
