Package org.apache.calcite.rel.rules
Interface FilterProjectTransposeRule.Config
- All Superinterfaces:
RelRule.Config
- Enclosing class:
FilterProjectTransposeRule
Rule configuration.
If copyFilter is true, creates the same kind of Filter as
matched in the rule, otherwise it creates a Filter using the RelBuilder
obtained by the relBuilderFactory.
Similarly for copyProject.
Defining predicates for the Filter (using filterPredicate)
and/or the Project (using projectPredicate allows making the rule
more restrictive.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault intbloat()Limit how much complexity can increase during merging.default booleanWhether to create aFilterof the same convention as the matched Filter.default booleanWhether to create aProjectof the same convention as the matched Project.default FilterProjectTransposeRuletoRule()Creates a rule that uses this configuration.withBloat(int bloat) Setsbloat().withCopyFilter(boolean copyFilter) SetsisCopyFilter().withCopyProject(boolean copyProject) SetsisCopyProject().withOperandFor(Class<? extends Filter> filterClass, Class<? extends Project> projectClass, Class<? extends RelNode> relClass) Defines an operand tree for the given 3 classes.withOperandFor(Class<? extends Filter> filterClass, Predicate<Filter> filterPredicate, Class<? extends Project> projectClass, Predicate<Project> projectPredicate) Defines an operand tree for the given 2 classes.Methods inherited from interface org.apache.calcite.plan.RelRule.Config
as, description, operandSupplier, relBuilderFactory, withDescription, withOperandSupplier, withRelBuilderFactory
-
Field Details
-
DEFAULT
-
-
Method Details
-
toRule
Description copied from interface:RelRule.ConfigCreates a rule that uses this configuration. Sub-class must override.- Specified by:
toRulein interfaceRelRule.Config
-
isCopyFilter
@Default default boolean isCopyFilter()Whether to create aFilterof the same convention as the matched Filter. -
withCopyFilter
SetsisCopyFilter(). -
isCopyProject
@Default default boolean isCopyProject()Whether to create aProjectof the same convention as the matched Project. -
withCopyProject
SetsisCopyProject(). -
withOperandFor
default FilterProjectTransposeRule.Config withOperandFor(Class<? extends Filter> filterClass, Predicate<Filter> filterPredicate, Class<? extends Project> projectClass, Predicate<Project> projectPredicate) Defines an operand tree for the given 2 classes. -
withOperandFor
default FilterProjectTransposeRule.Config withOperandFor(Class<? extends Filter> filterClass, Class<? extends Project> projectClass, Class<? extends RelNode> relClass) Defines an operand tree for the given 3 classes. -
bloat
@Default default int bloat()Limit how much complexity can increase during merging. Default isRelOptUtil.DEFAULT_BLOAT. -
withBloat
Setsbloat().
-