Triggers FennelWindowRule
.
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isDistinct, onRegister, recomputeDigest, register, registerCorrelVariable, setCorrelVariable, toString |
program
public final RexProgram program
WindowedAggregateRel
public WindowedAggregateRel(RelOptCluster cluster,
RelTraitSet traits,
RelNode child,
RexProgram program,
RelDataType rowType)
- Creates a WindowedAggregateRel.
- Parameters:
cluster
- traits
- child
- program
- Program containing an array of expressions. The program
must not have a condition, and each expression must be either a RexLocalRef
, or a RexOver
whose arguments are all RexLocalRef
.rowType
-
isValid
public boolean isValid(boolean fail)
- Description copied from interface:
RelNode
- Returns whether this relational expression is valid.
If assertions are enabled, this method is typically called with
fail
= true
, as follows:
assert rel.isValid(true)
This signals that the method can throw an AssertionError
if it is
not valid.
- Specified by:
isValid
in interface RelNode
- Overrides:
isValid
in class AbstractRelNode
- Parameters:
fail
- Whether to fail if invalid
- Returns:
- Whether relational expression is valid
getProgram
public RexProgram getProgram()
explain
public void explain(RelOptPlanWriter pw)
- Specified by:
explain
in interface RelNode
- Overrides:
explain
in class SingleRel
clone
public WindowedAggregateRel 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