public class Uncollect extends SingleRel
The input may have multiple columns, but each must be a multiset or
array. If withOrdinality
, the output contains an extra
ORDINALITY
column.
Like its inverse operation Collect
, Uncollect is generally
invoked in a nested loop, driven by
LogicalCorrelate
or similar.
RelNode.Context
Modifier and Type | Field and Description |
---|---|
boolean |
withOrdinality |
digest, id, rowType, traitSet
Constructor and Description |
---|
Uncollect(RelInput input)
Creates an Uncollect by parsing serialized output.
|
Uncollect(RelOptCluster cluster,
RelTraitSet traitSet,
RelNode child)
Deprecated.
|
Uncollect(RelOptCluster cluster,
RelTraitSet traitSet,
RelNode input,
boolean withOrdinality)
Creates an Uncollect.
|
Modifier and Type | Method and Description |
---|---|
RelNode |
copy(RelTraitSet traitSet,
java.util.List<RelNode> inputs)
Creates a copy of this relational expression, perhaps changing traits and
inputs.
|
RelNode |
copy(RelTraitSet traitSet,
RelNode input) |
static Uncollect |
create(RelTraitSet traitSet,
RelNode input,
boolean withOrdinality)
Creates an Uncollect.
|
protected RelDataType |
deriveRowType() |
static RelDataType |
deriveUncollectRowType(RelNode rel,
boolean withOrdinality)
Returns the row type returned by applying the 'UNNEST' operation to a
relational expression.
|
RelWriter |
explainTerms(RelWriter pw)
Describes the inputs and attributes of this relational expression.
|
childrenAccept, estimateRowCount, getInput, getInputs, replaceInput
accept, accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, computeSelfCost, 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
@Deprecated public Uncollect(RelOptCluster cluster, RelTraitSet traitSet, RelNode child)
public Uncollect(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, boolean withOrdinality)
Use create(org.apache.calcite.plan.RelTraitSet, org.apache.calcite.rel.RelNode, boolean)
unless you know what you're doing.
public Uncollect(RelInput input)
public static Uncollect create(RelTraitSet traitSet, RelNode input, boolean withOrdinality)
Each field of the input relational expression must be an array or multiset.
traitSet
- Trait setinput
- Input relational expressionwithOrdinality
- Whether output should contain an ORDINALITY columnpublic 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 final RelNode 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 RelNode copy(RelTraitSet traitSet, RelNode input)
protected RelDataType deriveRowType()
deriveRowType
in class SingleRel
public static RelDataType deriveUncollectRowType(RelNode rel, boolean withOrdinality)
Each column in the relational expression must be a multiset of structs
or an array. The return type is the type of that column, plus an ORDINALITY
column if withOrdinality
.
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.