Class HepRelVertex
- All Implemented Interfaces:
- Cloneable,- RelOptNode,- DelegatingMetadataRel,- RelNode
RelNode as a vertex in a DAG representing
 the entire query expression.- 
Nested Class SummaryNested classes/interfaces inherited from interface org.apache.calcite.rel.RelNodeRelNode.Context
- 
Field SummaryFields inherited from class org.apache.calcite.rel.AbstractRelNodedigest, id, rowType, traitSet
- 
Method SummaryModifier and TypeMethodDescription@Nullable RelOptCostcomputeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) Returns the cost of this plan (not including children).copy(RelTraitSet traitSet, List<RelNode> inputs) Creates a copy of this relational expression, perhaps changing traits and inputs.booleandeepEquals(@Nullable Object obj) Equality check for RelNode digest.intCompute hash code for RelNode digest.protected RelDataTypedoubleReturns an estimate of the number of rows this relational expression will return.voidDescribes the inputs and attributes of this relational expression.Returns current implementation chosen for this vertex.Returns a digest string of thisRelNode.ReturnsRelNodefor metadata.stripped()Returns this node without any wrapper added by the planner.Methods inherited from class org.apache.calcite.rel.AbstractRelNodeaccept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, equals, explainTerms, getCluster, getConvention, getCorrelVariable, getDescription, getExpectedInputRowType, getId, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, getVariablesSet, hashCode, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput, sole, toStringMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.calcite.rel.RelNodeexplain, fieldIsNullable
- 
Method Details- 
explainDescription copied from interface:RelNodeDescribes the inputs and attributes of this relational expression. Each node should callsuper.explain, then call theRelWriter.input(String, RelNode)andRelWriter.item(String, Object)methods for each input and attribute.- Specified by:
- explainin interface- RelNode
- Overrides:
- explainin class- AbstractRelNode
- Parameters:
- pw- Plan writer
 
- 
copyDescription copied from interface:RelNodeCreates a copy of this relational expression, perhaps changing traits and inputs.Sub-classes with other important attributes are encouraged to create variants of this method with more parameters. - Specified by:
- copyin interface- RelNode
- Overrides:
- copyin class- AbstractRelNode
- Parameters:
- traitSet- Trait set
- inputs- Inputs
- Returns:
- Copy of this relational expression, substituting traits and inputs
 
- 
computeSelfCostDescription copied from interface:RelNodeReturns the cost of this plan (not including children). The base implementation throws an error; derived classes should override.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.- Specified by:
- computeSelfCostin interface- RelNode
- Overrides:
- computeSelfCostin class- AbstractRelNode
- Parameters:
- planner- Planner for cost calculation
- mq- Metadata query
- Returns:
- Cost of this plan (not including children)
 
- 
estimateRowCountDescription copied from interface:RelNodeReturns an estimate of the number of rows this relational expression will return.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.- Specified by:
- estimateRowCountin interface- RelNode
- Overrides:
- estimateRowCountin class- AbstractRelNode
- Parameters:
- mq- Metadata query
- Returns:
- Estimate of the number of rows this relational expression will return
 
- 
deriveRowType- Overrides:
- deriveRowTypein class- AbstractRelNode
 
- 
getCurrentRelReturns current implementation chosen for this vertex.
- 
strippedDescription copied from interface:RelNodeReturns this node without any wrapper added by the planner.
- 
getMetadataDelegateRelReturnsRelNodefor metadata.- Specified by:
- getMetadataDelegateRelin interface- DelegatingMetadataRel
 
- 
deepEqualsDescription copied from class:AbstractRelNodeEquality check for RelNode digest.By default this method collects digest attributes from AbstractRelNode.explainTerms(RelWriter), then compares each attribute pair. This should work well for most cases. If this method is a performance bottleneck for your project, or the default behavior can't handle your scenario properly, you can choose to override this method andAbstractRelNode.deepHashCode(). SeeLogicalJoinas an example.- Specified by:
- deepEqualsin interface- RelNode
- Overrides:
- deepEqualsin class- AbstractRelNode
- Returns:
- Whether the 2 RelNodes are equivalent or have the same digest.
- See Also:
 
- 
deepHashCodepublic int deepHashCode()Description copied from class:AbstractRelNodeCompute hash code for RelNode digest.- Specified by:
- deepHashCodein interface- RelNode
- Overrides:
- deepHashCodein class- AbstractRelNode
- See Also:
 
- 
getDigestDescription copied from interface:RelNodeReturns a digest string of thisRelNode.Each call creates a new digest string, so don't forget to cache the result if necessary. - Specified by:
- getDigestin interface- RelNode
- Specified by:
- getDigestin interface- RelOptNode
- Overrides:
- getDigestin class- AbstractRelNode
- Returns:
- Digest string of this RelNode
- See Also:
 
 
-