My Project
|
#include <item_sum.h>
Public Member Functions | |
Aggregator_simple (Item_sum *sum) | |
Aggregator_type | Aggrtype () |
bool | setup (THD *thd) |
void | clear () |
bool | add () |
void | endup () |
virtual my_decimal * | arg_val_decimal (my_decimal *value) |
virtual double | arg_val_real () |
virtual bool | arg_is_null (bool use_null_value) |
The pass-through aggregator. Implements AGGFN (DISTINCT ..) by knowing it gets distinct data on input. So it just pumps them back to the Item_sum descendant class.
bool Aggregator_simple::add | ( | ) | [inline, virtual] |
Called when there's a new value to be aggregated. Updates the internal state of the aggregator to reflect the new value.
Implements Aggregator.
bool Aggregator_simple::arg_is_null | ( | bool | use_null_value | ) | [virtual] |
NULLness of being-aggregated argument.
use_null_value | Optimization: to determine if the argument is NULL we must, in the general case, call is_null() on it, which itself might call val_*() on it, which might be costly. If you just have called arg_val*(), you can pass use_null_value=true; this way, arg_is_null() might avoid is_null() and instead do a cheap read of the Item's null_value (updated by arg_val*()). |
Implements Aggregator.
my_decimal * Aggregator_simple::arg_val_decimal | ( | my_decimal * | value | ) | [virtual] |
Decimal value of being-aggregated argument
Implements Aggregator.
double Aggregator_simple::arg_val_real | ( | ) | [virtual] |
Floating point value of being-aggregated argument
Implements Aggregator.
void Aggregator_simple::clear | ( | ) | [inline, virtual] |
Called when we need to wipe out all the data from the aggregator : all the values acumulated and all the state. Cleans up the internal structures and resets them to their initial state.
Implements Aggregator.
void Aggregator_simple::endup | ( | ) | [inline, virtual] |
Called when there are no more data and the final value is to be retrieved. Finalises the state of the aggregator, so the final result can be retrieved.
Implements Aggregator.
bool Aggregator_simple::setup | ( | THD * | ) | [inline, virtual] |
Called before adding the first row. Allocates and sets up the internal aggregation structures used, e.g. the Unique instance used to calculate distinct.
Implements Aggregator.