public abstract class BiRel extends AbstractRelNode
It is not required that two-input relational expressions use this class as a base class. However, default implementations of methods make life easier.
RelNode.Context
Modifier and Type | Field and Description |
---|---|
protected RelNode |
left |
protected RelNode |
right |
digest, id, rowType, traitSet
Constructor and Description |
---|
BiRel(RelOptCluster cluster,
RelTraitSet traitSet,
RelNode left,
RelNode right) |
Modifier and Type | Method and Description |
---|---|
void |
childrenAccept(RelVisitor visitor)
Interacts with the
RelVisitor in a
visitor pattern to
traverse the tree of relational expressions. |
RelWriter |
explainTerms(RelWriter pw)
Describes the inputs and attributes of this relational expression.
|
java.util.List<RelNode> |
getInputs()
Returns an array of this relational expression's inputs.
|
RelNode |
getLeft() |
RelNode |
getRight() |
void |
replaceInput(int ordinalInParent,
RelNode p)
Replaces the
ordinalInParent th input. |
accept, accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, computeSelfCost, copy, deriveRowType, estimateRowCount, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, isValid, metadata, onRegister, recomputeDigest, register, sole, toString
public BiRel(RelOptCluster cluster, RelTraitSet traitSet, RelNode left, RelNode right)
public void childrenAccept(RelVisitor visitor)
RelNode
RelVisitor
in a
visitor pattern
to
traverse the tree of relational expressions.childrenAccept
in interface RelNode
childrenAccept
in class AbstractRelNode
visitor
- Visitor that will traverse the tree of relational
expressionspublic java.util.List<RelNode> getInputs()
RelNode
null
.getInputs
in interface RelOptNode
getInputs
in interface RelNode
getInputs
in class AbstractRelNode
public RelNode getLeft()
public RelNode getRight()
public void replaceInput(int ordinalInParent, RelNode p)
RelNode
ordinalInParent
th input. You must
override this method if you override RelNode.getInputs()
.replaceInput
in interface RelNode
replaceInput
in class AbstractRelNode
ordinalInParent
- Position of the child input, 0 is the firstp
- New node that should be put at position ordinalInParent
public 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 AbstractRelNode
pw
- Plan writerCopyright © 2012–2019 The Apache Software Foundation. All rights reserved.