net.sf.farrago.fennel.rel
Class LhxAggRel
java.lang.Object
org.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.SingleRel
org.eigenbase.rel.AggregateRelBase
net.sf.farrago.fennel.rel.LhxAggRel
- All Implemented Interfaces:
- Cloneable, FennelRel, RelNode
public class LhxAggRel
- extends AggregateRelBase
- implements FennelRel
LhxAggRel represents hash aggregation.
- Version:
- $Id: //open/dev/farrago/src/net/sf/farrago/fennel/rel/LhxAggRel.java#1 $
- Author:
- Rushan Chen
Field Summary |
(package private) long |
cndGroupByKey
cardinality of the group by key |
(package private) long |
numInputRows
row count of the input |
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, setCorrelVariable, toString |
Methods inherited from interface org.eigenbase.rel.RelNode |
childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraits, getVariablesStopped, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, registerCorrelVariable, replaceInput, setCorrelVariable |
numInputRows
long numInputRows
- row count of the input
cndGroupByKey
long cndGroupByKey
- cardinality of the group by key
LhxAggRel
public LhxAggRel(RelOptCluster cluster,
RelNode child,
int groupCount,
List<AggregateCall> aggCalls,
long numInputRows,
long cndGroupByKey)
- Creates a LhxAggRel.
- Parameters:
cluster
- Clusterchild
- ChildgroupCount
- Size of grouping keyaggCalls
- Collection of calls to aggregate functionsnumInputRows
- Row count of the inputcndGroupByKey
- Cardinality of the grouping key
clone
public LhxAggRel clone()
- Description copied from interface:
RelNode
- Clones this RelNode.
Traits of the RelNode must be explicitly cloned, using AbstractRelNode.inheritTraitsFrom(AbstractRelNode)
, as the RelNode may
have traits of which it has no knowledge. Example implementation:
public MyRelNode clone()
{
MyRelNode clone = new MyRelNode(...);
clone.inheritTraitsFrom(this);
return clone;
}
N.B.: This method must be overridden whenever an existing,
concrete RelNode is extended. Otherwise, calling clone() will produce a
differently typed RelNode, resulting in invalid or incorrect query plans.
- Specified by:
clone
in interface RelNode
- Specified by:
clone
in class AbstractRelNode
- Returns:
- a clone of this RelNode
getCollations
public RelFieldCollation[] getCollations()
- Description copied from interface:
FennelRel
TODO: jhyde, 2006/3/28: unify with RelNode.getCollationList()
- Specified by:
getCollations
in interface FennelRel
- Returns:
- the sort order produced by this FennelRel, or an empty array if
the output is not guaranteed to be in any particular order.
implementFennelChild
public Object implementFennelChild(FennelRelImplementor implementor)
- Description copied from interface:
FennelRel
- Visits this relational expression as part of the implementation process.
Fennel relational expressions are implemented in a two-phase process:
first call this method, then call
FennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor)
.
- Specified by:
implementFennelChild
in interface FennelRel
toStreamDef
public FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
- Description copied from interface:
FennelRel
- Converts this relational expression to
FemExecutionStreamDef
form. In the process, the relational expression will almost certainly
call FennelRelImplementor.visitFennelChild(net.sf.farrago.query.FennelRel, int)
on each of its
children.
- Specified by:
toStreamDef
in interface FennelRel
- Parameters:
implementor
- for generating Java code
- Returns:
- generated FemExecutionStreamDef