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.
| 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.
|
List<RelNode> |
getInputs()
Returns an array of this relational expression's inputs.
|
RelNode |
getLeft() |
RelNode |
getRight() |
void |
replaceInput(int ordinalInParent,
RelNode p)
Replaces the
ordinalInParentth input. |
accept, accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, copy, deriveRowType, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toStringpublic BiRel(RelOptCluster cluster, RelTraitSet traitSet, RelNode left, RelNode right)
public void childrenAccept(RelVisitor visitor)
RelNodeRelVisitor in a
visitor pattern to
traverse the tree of relational expressions.childrenAccept in interface RelNodechildrenAccept in class AbstractRelNodevisitor - Visitor that will traverse the tree of relational
expressionspublic List<RelNode> getInputs()
RelNodenull.getInputs in interface RelOptNodegetInputs in interface RelNodegetInputs in class AbstractRelNodepublic RelNode getLeft()
public RelNode getRight()
public void replaceInput(int ordinalInParent,
RelNode p)
RelNodeordinalInParentth input. You must
override this method if you override RelNode.getInputs().replaceInput in interface RelNodereplaceInput in class AbstractRelNodeordinalInParent - Position of the child input, 0 is the firstp - New node that should be put at position ordinalInParentpublic RelWriter explainTerms(RelWriter pw)
AbstractRelNodesuper.explainTerms, then call the
RelWriterImpl.input(String, RelNode)
and
RelWriterImpl.item(String, Object)
methods for each input and attribute.explainTerms in class AbstractRelNodepw - Plan writerCopyright © 2012–2015 The Apache Software Foundation. All rights reserved.