Class Filter
- All Implemented Interfaces:
Cloneable,RelOptNode,Hintable,RelNode
- Direct Known Subclasses:
Bindables.BindableFilter,CassandraFilter,ElasticsearchFilter,EnumerableFilter,GeodeFilter,InnodbFilter,JdbcRules.JdbcFilter,LogicalFilter,MongoFilter,PigFilter
condition evaluates to
true.
If the condition allows nulls, then a null value is treated the same as false.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.calcite.rel.RelNode
RelNode.Context -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final RexNodeprotected final com.google.common.collect.ImmutableList<RelHint>Fields inherited from class org.apache.calcite.rel.AbstractRelNode
digest, id, rowType, traitSet -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFilter(RelOptCluster cluster, RelTraitSet traits, List<RelHint> hints, RelNode child, RexNode condition) Creates a filter.protectedFilter(RelOptCluster cluster, RelTraitSet traits, RelNode child, RexNode condition) Creates a filter.protectedCreates a Filter by parsing serialized output. -
Method Summary
Modifier and TypeMethodDescriptionaccept(RexShuttle shuttle) Accepts a visit from a shuttle.@Nullable RelOptCostcomputeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) Returns the cost of this plan (not including children).final booleanReturns whether this Filter contains any windowed-aggregate functions.final RelNodecopy(RelTraitSet traitSet, List<RelNode> inputs) Creates a copy of this relational expression, perhaps changing traits and inputs.abstract Filtercopy(RelTraitSet traitSet, RelNode input, RexNode condition) protected booleandeepEquals0(@Nullable Object obj) protected intstatic doubleestimateFilteredRows(RelNode child, RexNode condition) Deprecated.static doubleestimateFilteredRows(RelNode child, RexProgram program) Deprecated.doubleReturns an estimate of the number of rows this relational expression will return.Describes the inputs and attributes of this relational expression.com.google.common.collect.ImmutableList<RelHint>getHints()Returns the hints of this relational expressions as an immutable list.booleanisValid(Litmus litmus, @Nullable RelNode.Context context) Returns whether this relational expression is valid.Methods inherited from class org.apache.calcite.rel.SingleRel
childrenAccept, deriveRowType, getInput, getInputs, replaceInputMethods 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, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.calcite.rel.hint.Hintable
attachHints, withHintsMethods inherited from interface org.apache.calcite.rel.RelNode
explain, fieldIsNullable, stripped
-
Field Details
-
condition
-
hints
-
-
Constructor Details
-
Filter
protected Filter(RelOptCluster cluster, RelTraitSet traits, List<RelHint> hints, RelNode child, RexNode condition) Creates a filter.- Parameters:
cluster- Cluster that this relational expression belongs totraits- the traits of this relhints- Hints for this nodechild- input relational expressioncondition- boolean expression which determines whether a row is allowed to pass
-
Filter
Creates a filter.- Parameters:
cluster- Cluster that this relational expression belongs totraits- the traits of this relchild- input relational expressioncondition- boolean expression which determines whether a row is allowed to pass
-
Filter
Creates a Filter by parsing serialized output.
-
-
Method Details
-
copy
Description copied from interface:RelNodeCreates a copy of this relational expression, perhaps changing traits and inputs.Sub-classes with other important attributes are encouraged to create variants of this method with more parameters.
- Specified by:
copyin interfaceRelNode- Overrides:
copyin classAbstractRelNode- Parameters:
traitSet- Trait setinputs- Inputs- Returns:
- Copy of this relational expression, substituting traits and inputs
-
copy
-
accept
Description copied from interface:RelNodeAccepts a visit from a shuttle. If the shuttle updates expression, then a copy of the relation should be created. This new relation might have a different row-type.- Specified by:
acceptin interfaceRelNode- Overrides:
acceptin classAbstractRelNode- Parameters:
shuttle- Shuttle- Returns:
- A copy of this node incorporating changes made by the shuttle to this node's children
-
getCondition
-
containsOver
public final boolean containsOver()Returns whether this Filter contains any windowed-aggregate functions. -
isValid
Description copied from interface:RelNodeReturns whether this relational expression is valid.If assertions are enabled, this method is typically called with
litmus=THROW, as follows:assert rel.isValid(Litmus.THROW)
This signals that the method can throw an
AssertionErrorif it is not valid.- Specified by:
isValidin interfaceRelNode- Overrides:
isValidin classAbstractRelNode- Parameters:
litmus- What to do if invalidcontext- Context for validity checking- Returns:
- Whether relational expression is valid
-
computeSelfCost
Description copied from interface:RelNodeReturns 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:
computeSelfCostin interfaceRelNode- Overrides:
computeSelfCostin classAbstractRelNode- Parameters:
planner- Planner for cost calculationmq- Metadata query- Returns:
- Cost of this plan (not including children)
-
estimateRowCount
Description copied from interface:RelNodeReturns an estimate of the number of rows this relational expression will return.NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode), which gives plugins a chance to override the rel's default ideas about row count.- Specified by:
estimateRowCountin interfaceRelNode- Overrides:
estimateRowCountin classSingleRel- Parameters:
mq- Metadata query- Returns:
- Estimate of the number of rows this relational expression will return
-
estimateFilteredRows
Deprecated. -
estimateFilteredRows
Deprecated. -
explainTerms
Description copied from class:AbstractRelNodeDescribes 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:
explainTermsin classSingleRel- Parameters:
pw- Plan writer- Returns:
- Plan writer for fluent-explain pattern
-
deepEquals0
@API(since="1.24", status=INTERNAL) @EnsuresNonNullIf(expression="#1", result=true) protected boolean deepEquals0(@Nullable Object obj) -
deepHashCode0
@API(since="1.24", status=INTERNAL) protected int deepHashCode0() -
getHints
Description copied from interface:HintableReturns the hints of this relational expressions as an immutable list.
-