org.eigenbase.rel
Class SetOpRel
java.lang.Object
org.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.SetOpRel
- All Implemented Interfaces:
- Cloneable, RelNode
- Direct Known Subclasses:
- IntersectRel, MinusRel, UnionRelBase
public abstract class SetOpRel
- extends AbstractRelNode
SetOpRel
is an abstract base for relational set operators such
as union, minus, and intersect.
- Version:
- $Id: //open/dev/farrago/src/org/eigenbase/rel/SetOpRel.java#9 $
- Author:
- John V. Sichi
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
childrenAccept, clone, cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, setCorrelVariable, toString |
inputs
protected RelNode[] inputs
all
protected boolean all
SetOpRel
protected SetOpRel(RelOptCluster cluster,
RelTraitSet traits,
RelNode[] inputs,
boolean all)
clone
public abstract SetOpRel clone(RelNode[] inputs,
boolean all)
isDistinct
public boolean isDistinct()
- Description copied from interface:
RelNode
- Returns whether the same value will not come out twice. Default value is
false
, derived classes should override.
- Specified by:
isDistinct
in interface RelNode
- Overrides:
isDistinct
in class AbstractRelNode
getInputs
public RelNode[] getInputs()
- Description copied from interface:
RelNode
- Returns an array of this relational expression's inputs. If there are no
inputs, returns an empty array, not
null
.
- Specified by:
getInputs
in interface RelNode
- Overrides:
getInputs
in class AbstractRelNode
explain
public void explain(RelOptPlanWriter pw)
- Specified by:
explain
in interface RelNode
- Overrides:
explain
in class AbstractRelNode
replaceInput
public void replaceInput(int ordinalInParent,
RelNode p)
- Description copied from interface:
RelNode
- Replaces the
ordinalInParent
th input. You must
override this method if you override RelNode.getInputs()
.
- Specified by:
replaceInput
in interface RelNode
- Overrides:
replaceInput
in class AbstractRelNode
deriveRowType
protected RelDataType deriveRowType()
- Overrides:
deriveRowType
in class AbstractRelNode
isHomogeneous
public boolean isHomogeneous(boolean compareNames)
- Returns whether all the inputs of this set operator have the same row
type as its output row.
- Parameters:
compareNames
- whether or not column names are important in the
homogeneity comparison
isHomogeneous
public boolean isHomogeneous()
- Returns whether all the inputs of this set operator have the same row
type as its output row. Equivalent to
isHomogeneous(true)
.