org.apache.calcite.rel.core.Project.FlagsOLAPRel.JavaImplementor, OLAPRel.OLAPImplementor, OLAPRel.RewriteImplementor| Modifier and Type | Field and Description |
|---|---|
List<org.apache.calcite.rex.RexNode> |
rewriteProjects |
CONVENTION, logger| Constructor and Description |
|---|
OLAPProjectRel(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelTraitSet traitSet,
org.apache.calcite.rel.RelNode child,
List<org.apache.calcite.rex.RexNode> exps,
org.apache.calcite.rel.type.RelDataType rowType) |
| Modifier and Type | Method and Description |
|---|---|
org.apache.calcite.plan.RelOptCost |
computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner,
org.apache.calcite.rel.metadata.RelMetadataQuery mq)
Since the project under aggregate maybe reduce expressions by
AggregateProjectReduceRule,
consider the count of expressions into cost, the reduced project will be used. |
org.apache.calcite.rel.core.Project |
copy(org.apache.calcite.plan.RelTraitSet traitSet,
org.apache.calcite.rel.RelNode child,
List<org.apache.calcite.rex.RexNode> exps,
org.apache.calcite.rel.type.RelDataType rowType) |
org.apache.calcite.rel.RelWriter |
explainTerms(org.apache.calcite.rel.RelWriter pw) |
List<org.apache.calcite.rex.RexNode> |
getChildExps() |
ColumnRowType |
getColumnRowType()
get the row type of ColumnDesc
|
OLAPContext |
getContext()
get olap context
|
List<org.apache.calcite.rex.RexNode> |
getProjects() |
boolean |
hasSubQuery()
whether has sub query
|
EnumerableRel |
implementEnumerable(List<EnumerableRel> inputs) |
void |
implementOLAP(OLAPRel.OLAPImplementor implementor) |
void |
implementRewrite(OLAPRel.RewriteImplementor implementor) |
boolean |
isMerelyPermutation() |
org.apache.calcite.plan.RelTraitSet |
replaceTraitSet(org.apache.calcite.plan.RelTrait trait)
replace RelTraitSet
|
accept, copy, copy, getFlags, getMapping, getMapping, getNamedProjects, getPartialMapping, getPermutation, getPermutation, isBoxed, isMapping, isValidchildrenAccept, deriveRowType, estimateRowCount, getInput, getInputs, replaceInputaccept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, explain, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaccept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, copy, estimateRowCount, explain, getCollationList, getConvention, getCorrelVariable, getExpectedInputRowType, getInput, getInputs, getQuery, getRelTypeName, getRows, getRowType, getTable, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, isValid, metadata, onRegister, recomputeDigest, register, replaceInputpublic List<org.apache.calcite.rex.RexNode> rewriteProjects
public OLAPProjectRel(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelTraitSet traitSet,
org.apache.calcite.rel.RelNode child,
List<org.apache.calcite.rex.RexNode> exps,
org.apache.calcite.rel.type.RelDataType rowType)
public List<org.apache.calcite.rex.RexNode> getChildExps()
getChildExps in interface org.apache.calcite.rel.RelNodegetChildExps in class org.apache.calcite.rel.core.Projectpublic List<org.apache.calcite.rex.RexNode> getProjects()
getProjects in class org.apache.calcite.rel.core.Projectpublic org.apache.calcite.plan.RelOptCost computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner,
org.apache.calcite.rel.metadata.RelMetadataQuery mq)
AggregateProjectReduceRule,
consider the count of expressions into cost, the reduced project will be used.
Made RexOver much more expensive so we can transform into OLAPWindowRel
by rules in ProjectToWindowRulecomputeSelfCost in interface org.apache.calcite.rel.RelNodecomputeSelfCost in class org.apache.calcite.rel.core.Projectpublic org.apache.calcite.rel.core.Project copy(org.apache.calcite.plan.RelTraitSet traitSet,
org.apache.calcite.rel.RelNode child,
List<org.apache.calcite.rex.RexNode> exps,
org.apache.calcite.rel.type.RelDataType rowType)
copy in class org.apache.calcite.rel.core.Projectpublic void implementOLAP(OLAPRel.OLAPImplementor implementor)
implementOLAP in interface OLAPRelpublic EnumerableRel implementEnumerable(List<EnumerableRel> inputs)
implementEnumerable in interface OLAPRelpublic ColumnRowType getColumnRowType()
OLAPRelgetColumnRowType in interface OLAPRelpublic void implementRewrite(OLAPRel.RewriteImplementor implementor)
implementRewrite in interface OLAPRelpublic OLAPContext getContext()
OLAPRelgetContext in interface OLAPRelpublic boolean hasSubQuery()
OLAPRelhasSubQuery in interface OLAPRelpublic org.apache.calcite.plan.RelTraitSet replaceTraitSet(org.apache.calcite.plan.RelTrait trait)
OLAPRelreplaceTraitSet in interface OLAPRelpublic boolean isMerelyPermutation()
public org.apache.calcite.rel.RelWriter explainTerms(org.apache.calcite.rel.RelWriter pw)
explainTerms in class org.apache.calcite.rel.core.ProjectCopyright © 2014–2018 Apache Software Foundation. All rights reserved.