Class InnodbFilter
java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.SingleRel
org.apache.calcite.rel.core.Filter
org.apache.calcite.adapter.innodb.InnodbFilter
- All Implemented Interfaces:
Cloneable
,InnodbRel
,RelOptNode
,Hintable
,RelNode
Implementation of a
Filter
relational expression for an InnoDB data source.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.calcite.adapter.innodb.InnodbRel
InnodbRel.Implementor
Nested classes/interfaces inherited from interface org.apache.calcite.rel.RelNode
RelNode.Context
-
Field Summary
Fields inherited from class org.apache.calcite.rel.AbstractRelNode
digest, id, rowType, traitSet
Fields inherited from interface org.apache.calcite.adapter.innodb.InnodbRel
CONVENTION
-
Method Summary
Modifier and TypeMethodDescription@Nullable RelOptCost
computeSelfCost
(RelOptPlanner planner, RelMetadataQuery mq) Returns the cost of this plan (not including children).copy
(RelTraitSet traitSet, RelNode input, RexNode condition) static InnodbFilter
create
(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, RexNode condition, IndexCondition indexCondition, com.alibaba.innodb.java.reader.schema.TableDef tableDef, @Nullable String forceIndexName) Creates an InnodbFilter.Describes the inputs and attributes of this relational expression.Returns the resulting collation by the primary or secondary indexes after filtering.void
implement
(InnodbRel.Implementor implementor) Methods inherited from class org.apache.calcite.rel.core.Filter
accept, containsOver, copy, deepEquals0, deepHashCode0, estimateFilteredRows, estimateFilteredRows, estimateRowCount, getCondition, getHints, isValid
Methods inherited from class org.apache.calcite.rel.SingleRel
childrenAccept, deriveRowType, getInput, getInputs, replaceInput
Methods inherited from class org.apache.calcite.rel.AbstractRelNode
accept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, getVariablesSet, hashCode, isEnforcer, metadata, onRegister, recomputeDigest, register, sole, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.calcite.rel.hint.Hintable
attachHints, withHints
Methods inherited from interface org.apache.calcite.rel.RelNode
accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, copy, deepEquals, deepHashCode, estimateRowCount, explain, explain, fieldIsNullable, getConvention, getCorrelVariable, getDigest, getExpectedInputRowType, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTable, getVariablesSet, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput, stripped
Methods inherited from interface org.apache.calcite.plan.RelOptNode
getCluster, getDescription, getId, getTraitSet
-
Field Details
-
indexCondition
-
-
Method Details
-
create
public static InnodbFilter create(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, RexNode condition, IndexCondition indexCondition, com.alibaba.innodb.java.reader.schema.TableDef tableDef, @Nullable String forceIndexName) Creates an InnodbFilter. -
computeSelfCost
Description copied from interface:RelNode
Returns the cost of this plan (not including children). The base implementation throws an error; derived classes should override.NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode)
, which gives plugins a chance to override the rel's default ideas about cost.- Specified by:
computeSelfCost
in interfaceRelNode
- Overrides:
computeSelfCost
in classFilter
- Parameters:
planner
- Planner for cost calculationmq
- Metadata query- Returns:
- Cost of this plan (not including children)
-
copy
-
implement
-
explainTerms
Description copied from class:AbstractRelNode
Describes the inputs and attributes of this relational expression. Each node should callsuper.explainTerms
, then call theRelWriter.input(String, RelNode)
andRelWriter.item(String, Object)
methods for each input and attribute.- Overrides:
explainTerms
in classFilter
- Parameters:
pw
- Plan writer- Returns:
- Plan writer for fluent-explain pattern
-
getImplicitCollation
Returns the resulting collation by the primary or secondary indexes after filtering.- Returns:
- the implicit collation based on the natural sorting by specific index
-