saffron
Class BuiltinAggregation.Count
java.lang.Object
|
+--saffron.BuiltinAggregation
|
+--saffron.BuiltinAggregation.Count
- All Implemented Interfaces:
- Aggregation
- Enclosing class:
- BuiltinAggregation
- static class BuiltinAggregation.Count
- extends BuiltinAggregation
Count
is an aggregator which returns the number of rows
which have gone into it. With one argument (or more), it returns the
number of rows for which that argument (or all) is not
null
.
Methods inherited from class saffron.BuiltinAggregation |
count, count, count, count, create, implementMerge, implementStartAndNext, lookup, max, max, max, min, min, min, sum, sum |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
argTypes
OJClass[] argTypes
type
static final OJClass type
BuiltinAggregation.Count
BuiltinAggregation.Count()
getName
String getName()
- Specified by:
getName
in class BuiltinAggregation
canMerge
public boolean canMerge()
- Description copied from interface:
Aggregation
- Whether this aggregation can merge together two
accumulators.
count
can (you just add the accumulators);
avg
and Nth
cannot.
- Specified by:
canMerge
in interface Aggregation
- Overrides:
canMerge
in class BuiltinAggregation
getReturnType
public OJClass getReturnType()
getStartParameterTypes
public OJClass[] getStartParameterTypes()
getParameterTypes
public OJClass[] getParameterTypes()
implementStart
public Expression implementStart(Implementor implementor,
Rel rel,
int[] args)
- Description copied from interface:
Aggregation
- Generates the expression which gets called when a new total is
created. For
sum(x)
, this looks like new
saffron.runtime.Holder.int_Holder(0)
.
implementNext
public void implementNext(Implementor implementor,
Rel rel,
Expression accumulator,
int[] args)
- Description copied from interface:
Aggregation
- Generates (into the current statement list, gleaned by calling
implementor
's Implementor.getStatementList()
method) the piece of code
which gets called each time an extra row is seen. For
sum(x)
, this looks like
((saffron.runtime.Holder.int_Holder) accumulator).value +=
x
.
- Parameters:
implementor
- a callback object which knows how to generate thingsrel
- the relational expression which is generating this codeaccumulator
- the expression which holds the totalargs
- the ordinals of the fields of the child row which are
arguments to this aggregation
implementResult
public Expression implementResult(Expression accumulator)
- Description copied from interface:
Aggregation
- Generates the expression which gets called when a total is complete. For
sum(x)
, this looks like
((saffron.runtime.Holder.int_Holder) accumulator).value
.