public abstract class Calc extends SingleRel
Calc
is an abstract base class for implementations of
LogicalCalc
.RelNode.Context
Modifier and Type | Field and Description |
---|---|
protected RexProgram |
program |
digest, id, rowType, traitSet
Modifier | Constructor and Description |
---|---|
protected |
Calc(RelOptCluster cluster,
RelTraitSet traits,
RelNode child,
RexProgram program)
Creates a Calc.
|
protected |
Calc(RelOptCluster cluster,
RelTraitSet traits,
RelNode child,
RexProgram program,
java.util.List<RelCollation> collationList)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
RelNode |
accept(RexShuttle shuttle)
Accepts a visit from a shuttle.
|
RelOptCost |
computeSelfCost(RelOptPlanner planner,
RelMetadataQuery mq)
Returns the cost of this plan (not including children).
|
Calc |
copy(RelTraitSet traitSet,
java.util.List<RelNode> inputs)
Creates a copy of this relational expression, perhaps changing traits and
inputs.
|
abstract Calc |
copy(RelTraitSet traitSet,
RelNode child,
RexProgram program)
Creates a copy of this
Calc . |
Calc |
copy(RelTraitSet traitSet,
RelNode child,
RexProgram program,
java.util.List<RelCollation> collationList)
Deprecated.
|
double |
estimateRowCount(RelMetadataQuery mq)
Returns an estimate of the number of rows this relational expression will
return.
|
RelWriter |
explainTerms(RelWriter pw)
Describes the inputs and attributes of this relational expression.
|
RexProgram |
getProgram() |
boolean |
isValid(Litmus litmus,
RelNode.Context context)
Returns whether this relational expression is valid.
|
childrenAccept, deriveRowType, getInput, getInputs, replaceInput
accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toString
protected final RexProgram program
protected Calc(RelOptCluster cluster, RelTraitSet traits, RelNode child, RexProgram program)
cluster
- Clustertraits
- Traitschild
- Input relationprogram
- Calc program@Deprecated protected Calc(RelOptCluster cluster, RelTraitSet traits, RelNode child, RexProgram program, java.util.List<RelCollation> collationList)
public final Calc copy(RelTraitSet traitSet, java.util.List<RelNode> inputs)
RelNode
Sub-classes with other important attributes are encouraged to create variants of this method with more parameters.
copy
in interface RelNode
copy
in class AbstractRelNode
traitSet
- Trait setinputs
- Inputspublic abstract Calc copy(RelTraitSet traitSet, RelNode child, RexProgram program)
Calc
.traitSet
- Traitschild
- Input relationprogram
- Calc programCalc
if any parameter differs from the value of this
Calc
, or just this
if all the parameters are the samecopy(org.apache.calcite.plan.RelTraitSet, java.util.List)
@Deprecated public Calc copy(RelTraitSet traitSet, RelNode child, RexProgram program, java.util.List<RelCollation> collationList)
public boolean isValid(Litmus litmus, RelNode.Context context)
RelNode
If assertions are enabled, this method is typically called with
litmus
= THROW
, as follows:
assert rel.isValid(Litmus.THROW)
This signals that the method can throw an AssertionError
if it
is not valid.
isValid
in interface RelNode
isValid
in class AbstractRelNode
litmus
- What to do if invalidcontext
- Context for validity checkingpublic RexProgram getProgram()
public double estimateRowCount(RelMetadataQuery mq)
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode)
, which gives plugins a chance to
override the rel's default ideas about row count.
estimateRowCount
in interface RelNode
estimateRowCount
in class SingleRel
mq
- Metadata querypublic RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq)
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode)
, which gives plugins a
chance to override the rel's default ideas about cost.
computeSelfCost
in interface RelNode
computeSelfCost
in class AbstractRelNode
planner
- Planner for cost calculationmq
- Metadata querypublic RelWriter explainTerms(RelWriter pw)
AbstractRelNode
super.explainTerms
, then call the
RelWriter.input(String, RelNode)
and
RelWriterImpl.item(String, Object)
methods for each input and attribute.explainTerms
in class SingleRel
pw
- Plan writerpublic RelNode accept(RexShuttle shuttle)
RelNode
accept
in interface RelNode
accept
in class AbstractRelNode
shuttle
- ShuttleCopyright © 2012–2019 The Apache Software Foundation. All rights reserved.