|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.SingleRel
net.sf.farrago.fennel.rel.FennelSingleRel
net.sf.farrago.fennel.rel.FennelSortRel
public class FennelSortRel
FennelSortRel is the relational expression corresponding to a sort implemented inside of Fennel.
| Field Summary | |
|---|---|
private RelFieldCollation[] |
collations
|
private boolean |
discardDuplicates
Whether to discard tuples with duplicate keys. |
| Fields inherited from class org.eigenbase.rel.AbstractRelNode |
|---|
digest, id, rowType, traits |
| Fields inherited from interface net.sf.farrago.query.FennelRel |
|---|
FENNEL_EXEC_CONVENTION |
| Fields inherited from interface org.eigenbase.rel.RelNode |
|---|
emptyArray |
| Constructor Summary | |
|---|---|
FennelSortRel(RelOptCluster cluster,
RelNode child,
Integer[] keyProjection,
boolean discardDuplicates)
Creates a new FennelSortRel object. |
|
FennelSortRel(RelOptCluster cluster,
RelNode child,
RelFieldCollation[] collations,
boolean discardDuplicates)
Creates a new FennelSortRel object. |
|
| Method Summary | |
|---|---|
FennelSortRel |
clone()
Clones this RelNode. |
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
private static RelFieldCollation[] |
convertKeyProjection(Integer[] keyProjection)
|
void |
explain(RelOptPlanWriter pw)
|
RelFieldCollation[] |
getCollations()
TODO: jhyde, 2006/3/28: unify with RelNode.getCollationList() |
double |
getRows()
Returns an estimate of the number of rows this relational expression will return. |
boolean |
isDiscardDuplicates()
|
boolean |
isDistinct()
Returns whether the same value will not come out twice. |
FemExecutionStreamDef |
toStreamDef(FennelRelImplementor implementor)
Converts this relational expression to FemExecutionStreamDef
form. |
| Methods inherited from class net.sf.farrago.fennel.rel.FennelSingleRel |
|---|
getFarragoTypeFactory, implementFennelChild |
| Methods inherited from class org.eigenbase.rel.SingleRel |
|---|
childrenAccept, deriveRowType, getChild, getInputs, replaceInput |
| 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 class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.eigenbase.rel.RelNode |
|---|
childrenAccept, collectVariablesSet, collectVariablesUsed, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, isAccessTo, isValid, onRegister, recomputeDigest, registerCorrelVariable, replaceInput, setCorrelVariable |
| Field Detail |
|---|
private final RelFieldCollation[] collations
private final boolean discardDuplicates
| Constructor Detail |
|---|
public FennelSortRel(RelOptCluster cluster,
RelNode child,
Integer[] keyProjection,
boolean discardDuplicates)
cluster - RelOptCluster for this relchild - rel producing rows to be sortedkeyProjection - 0-based ordinals of fields making up sort key (all
ascending)discardDuplicates - whether to discard duplicates based on key
public FennelSortRel(RelOptCluster cluster,
RelNode child,
RelFieldCollation[] collations,
boolean discardDuplicates)
cluster - RelOptCluster for this relchild - rel producing rows to be sortedcollations - array of sort specificationsdiscardDuplicates - whether to discard duplicates based on key| Method Detail |
|---|
private static RelFieldCollation[] convertKeyProjection(Integer[] keyProjection)
public boolean isDistinct()
RelNodefalse, derived classes should override.
isDistinct in interface RelNodeisDistinct in class AbstractRelNodepublic boolean isDiscardDuplicates()
public FennelSortRel clone()
RelNodeTraits 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.
clone in interface RelNodeclone in class AbstractRelNodepublic double getRows()
RelNodeNOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.eigenbase.rel.RelNode), which gives plugins a chance to
override the rel's default ideas about row count.
getRows in interface RelNodegetRows in class SingleRelpublic RelOptCost computeSelfCost(RelOptPlanner planner)
RelNodeNOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.eigenbase.rel.RelNode), which gives plugins a
chance to override the rel's default ideas about cost.
computeSelfCost in interface RelNodecomputeSelfCost in class AbstractRelNodepublic void explain(RelOptPlanWriter pw)
explain in interface RelNodeexplain in class SingleRelpublic FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
FennelRelFemExecutionStreamDef
form. In the process, the relational expression will almost certainly
call FennelRelImplementor.visitFennelChild(net.sf.farrago.query.FennelRel, int) on each of its
children.
implementor - for generating Java code
public RelFieldCollation[] getCollations()
FennelRelTODO: jhyde, 2006/3/28: unify with RelNode.getCollationList()
getCollations in interface FennelRelgetCollations in class FennelSingleRel
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||