Package org.apache.flink.table.planner.plan.rules.logical
package org.apache.flink.table.planner.plan.rules.logical
-
ClassDescriptionPlanner rule that reduces unless grouping columns.Rule configuration.Defines split rules for async calc nodes.Splits nested call <- asyncCall chains so that nothing is immediately waiting on an async call in a single calc.Splits async calls if there are multiple across projections, so that there's one per calc.State object used to keep track of whether a match has been found yet.An Async implementation of
RemoteCalcCallFinderwhich finds uses ofAsyncScalarFunction.Rule will transpose the conditions after the Python correlate node if the join type is inner join.Planner rule that transposesFlinkLogicalCalcpastFlinkLogicalRankto reduce rank input fields.Rule configuration.TransposeFlinkLogicalCalcpast intoFlinkLogicalSnapshot.Rule configuration.Planner rule that removes the output column of rank number iff there is an equality condition for the rank column.Rule configuration.Planner rule that rewrites sort correlation to a Rank.Rule configuration.Rule that converts an EnumerableTableScan into a LogicalTableScan.Rule configuration.Traverses an event time temporal table joinRelNodetree and update the right child to setFlinkLogicalTableSourceScan's eventTimeSnapshot property to true which will prevent it generating a new StreamPhysicalChangelogNormalize later.Configuration forEventTimeTemporalJoinRewriteRule.Planner rule that expands distinct aggregates (such asCOUNT(DISTINCT x)) from aAggregate.Planner rule that pushes anAggregatepast aJoin.Extends calcite's AggregateProjectMergeRule, modification: consider the timeAttribute field when analyzing interesting fields for the LogicalWindowAggregate node while normal Aggregate node needn't.Planner rule that removes aAggregateif its aggregate functions are SUM, MIN, MAX, AUXILIARY_GROUP with no filterArgs, and the underlying relational expression is already distinct.Flink bushy join reorder rule, which will convertMultiJointo a bushy join tree.Rule configuration.Planner rule that merges aCalconto aCalc.Rule configuration.Extends calcite's FilterCalcMergeRule, modification: only merge the two neighbouringFilterandCalcif each non-deterministicRexNodeof bottomCalcshould appear at most once in the implicit project list and condition of topFilter.FlinkFilterJoinRule<C extends FlinkFilterJoinRule.Config>Planner rule that pushes filters above and within a join node into the join node and/or its children nodes.Rule configuration.Rule that tries to push filter expressions into a join condition and into the inputs of the join.Rule configuration.Rule that pushes parts of the join condition to its inputs.Rule configuration.Predicate that returns whether a filter is valid in the ON clause of a join for this particular kind of join.Extends calcite's FilterProjectTransposeRule for streaming scenario, modification: does not transpose the top filter references field which generated by non-deterministic function.Flink join reorder rule, which can change the join order of input relNode tree.Rule configuration.Flink Planner rule to flatten a tree ofLogicalJoins into a singleMultiJoinwith N inputs.Rule configuration.Rule to remove trivialFlinkLogicalCalc.Extends calcite's ProjectMergeRule, modification: only merge the two neighbouringProjectandCalcif each non-deterministicRexNodeof bottomCalcshould appear at most once in the project list of topProject.Planner rule that pushes aProjectpast aJoinby splitting the projection into a projection on top of each child of the join.Extends calcite's ProjectMergeRule, modification: only merge the two neighbouringProjects if each non-deterministicRexNodeof bottomProjectshould appear at most once in the project list of topProject.Planner rule that pushes semi-join down in a tree past aFilter.Planner rule that pushes aorg.apache.calcite.rel.core.SemiJoindown in a tree past aJoinin order to trigger other rules that will convertSemiJoins.Planner rule that pushes aorg.apache.calcite.rel.core.SemiJoindown in a tree past aProject.ImmutableAggregateReduceGroupingRulecontains immutable implementation classes generated from abstract value types defined as nested insideAggregateReduceGroupingRule.Immutable implementation ofAggregateReduceGroupingRule.AggregateReduceGroupingRuleConfig.Builds instances of typeAggregateReduceGroupingRuleConfig.ImmutableCalcRankTransposeRulecontains immutable implementation classes generated from abstract value types defined as nested insideCalcRankTransposeRule.Immutable implementation ofCalcRankTransposeRule.CalcRankTransposeRuleConfig.Builds instances of typeCalcRankTransposeRuleConfig.ImmutableCalcSnapshotTransposeRulecontains immutable implementation classes generated from abstract value types defined as nested insideCalcSnapshotTransposeRule.Immutable implementation ofCalcSnapshotTransposeRule.CalcSnapshotTransposeRuleConfig.Builds instances of typeCalcSnapshotTransposeRuleConfig.ImmutableConstantRankNumberColumnRemoveRulecontains immutable implementation classes generated from abstract value types defined as nested insideConstantRankNumberColumnRemoveRule.Immutable implementation ofConstantRankNumberColumnRemoveRule.ConstantRankNumberColumnRemoveRuleConfig.Builds instances of typeConstantRankNumberColumnRemoveRuleConfig.ImmutableCorrelateSortToRankRulecontains immutable implementation classes generated from abstract value types defined as nested insideCorrelateSortToRankRule.Immutable implementation ofCorrelateSortToRankRule.CorrelateSortToRankRuleConfig.Builds instances of typeCorrelateSortToRankRuleConfig.ImmutableEnumerableToLogicalTableScancontains immutable implementation classes generated from abstract value types defined as nested insideEnumerableToLogicalTableScan.Immutable implementation ofEnumerableToLogicalTableScan.EnumerableToLogicalTableScanConfig.Builds instances of typeEnumerableToLogicalTableScanConfig.ImmutableEventTimeTemporalJoinRewriteRulecontains immutable implementation classes generated from abstract value types defined as nested insideEventTimeTemporalJoinRewriteRule.Immutable implementation ofEventTimeTemporalJoinRewriteRule.Config.Builds instances of typeConfig.ImmutableFlinkBushyJoinReorderRulecontains immutable implementation classes generated from abstract value types defined as nested insideFlinkBushyJoinReorderRule.Immutable implementation ofFlinkBushyJoinReorderRule.Config.Builds instances of typeConfig.ImmutableFlinkCalcMergeRulecontains immutable implementation classes generated from abstract value types defined as nested insideFlinkCalcMergeRule.Immutable implementation ofFlinkCalcMergeRule.FlinkCalcMergeRuleConfig.Builds instances of typeFlinkCalcMergeRuleConfig.Immutable implementation ofFlinkFilterJoinRule.FlinkFilterIntoJoinRule.FlinkFilterIntoJoinRuleConfig.Builds instances of typeImmutableFlinkFilterIntoJoinRuleConfig.Immutable implementation ofFlinkFilterJoinRule.FlinkJoinConditionPushRule.FlinkFilterJoinRuleConfig.Builds instances of typeImmutableFlinkFilterJoinRuleConfig.ImmutableFlinkJoinReorderRulecontains immutable implementation classes generated from abstract value types defined as nested insideFlinkJoinReorderRule.Immutable implementation ofFlinkJoinReorderRule.Config.Builds instances of typeConfig.ImmutableFlinkJoinToMultiJoinRulecontains immutable implementation classes generated from abstract value types defined as nested insideFlinkJoinToMultiJoinRule.Immutable implementation ofFlinkJoinToMultiJoinRule.Config.Builds instances of typeConfig.ImmutableJoinConditionTypeCoerceRulecontains immutable implementation classes generated from abstract value types defined as nested insideJoinConditionTypeCoerceRule.Immutable implementation ofJoinConditionTypeCoerceRule.JoinConditionTypeCoerceRuleConfig.Builds instances of typeJoinConditionTypeCoerceRuleConfig.ImmutableJoinDeriveNullFilterRulecontains immutable implementation classes generated from abstract value types defined as nested insideJoinDeriveNullFilterRule.Immutable implementation ofJoinDeriveNullFilterRule.JoinDeriveNullFilterRuleConfig.Builds instances of typeJoinDeriveNullFilterRuleConfig.ImmutableJoinTableFunctionScanToCorrelateRulecontains immutable implementation classes generated from abstract value types defined as nested insideJoinTableFunctionScanToCorrelateRule.Immutable implementation ofJoinTableFunctionScanToCorrelateRule.Config.Builds instances of typeConfig.ImmutableLogicalUnnestRulecontains immutable implementation classes generated from abstract value types defined as nested insideLogicalUnnestRule.Immutable implementation ofLogicalUnnestRule.LogicalUnnestRuleConfig.Builds instances of typeLogicalUnnestRuleConfig.ImmutableProjectSemiAntiJoinTransposeRulecontains immutable implementation classes generated from abstract value types defined as nested insideProjectSemiAntiJoinTransposeRule.Immutable implementation ofProjectSemiAntiJoinTransposeRule.ProjectSemiAntiJoinTransposeRuleConfig.Builds instances of typeProjectSemiAntiJoinTransposeRuleConfig.ImmutableProjectSnapshotTransposeRulecontains immutable implementation classes generated from abstract value types defined as nested insideProjectSnapshotTransposeRule.Immutable implementation ofProjectSnapshotTransposeRule.Config.Builds instances of typeConfig.ImmutablePushFilterIntoLegacyTableSourceScanRulecontains immutable implementation classes generated from abstract value types defined as nested insidePushFilterIntoLegacyTableSourceScanRule.Immutable implementation ofPushFilterIntoLegacyTableSourceScanRule.PushFilterIntoLegacyTableSourceScanRuleConfig.Builds instances of typePushFilterIntoLegacyTableSourceScanRuleConfig.ImmutablePushLimitIntoLegacyTableSourceScanRulecontains immutable implementation classes generated from abstract value types defined as nested insidePushLimitIntoLegacyTableSourceScanRule.Immutable implementation ofPushLimitIntoLegacyTableSourceScanRule.PushLimitIntoLegacyTableSourceScanRuleConfig.ImmutablePushLimitIntoLegacyTableSourceScanRule.PushLimitIntoLegacyTableSourceScanRuleConfig.BuilderBuilds instances of typePushLimitIntoLegacyTableSourceScanRuleConfig.ImmutablePushProjectIntoTableSourceScanRulecontains immutable implementation classes generated from abstract value types defined as nested insidePushProjectIntoTableSourceScanRule.Immutable implementation ofPushProjectIntoTableSourceScanRule.Config.Builds instances of typeConfig.ImmutableRemoveUnreachableCoalesceArgumentsRulecontains immutable implementation classes generated from abstract value types defined as nested insideRemoveUnreachableCoalesceArgumentsRule.Immutable implementation ofRemoveUnreachableCoalesceArgumentsRule.Config.Builds instances of typeConfig.ImmutableReplaceIntersectWithSemiJoinRulecontains immutable implementation classes generated from abstract value types defined as nested insideReplaceIntersectWithSemiJoinRule.Immutable implementation ofReplaceIntersectWithSemiJoinRule.ReplaceIntersectWithSemiJoinRuleConfig.Builds instances of typeReplaceIntersectWithSemiJoinRuleConfig.ImmutableReplaceMinusWithAntiJoinRulecontains immutable implementation classes generated from abstract value types defined as nested insideReplaceMinusWithAntiJoinRule.Immutable implementation ofReplaceMinusWithAntiJoinRule.ReplaceMinusWithAntiJoinRuleConfig.Builds instances of typeReplaceMinusWithAntiJoinRuleConfig.ImmutableRewriteIntersectAllRulecontains immutable implementation classes generated from abstract value types defined as nested insideRewriteIntersectAllRule.Immutable implementation ofRewriteIntersectAllRule.RewriteIntersectAllRuleConfig.Builds instances of typeRewriteIntersectAllRuleConfig.ImmutableRewriteMinusAllRulecontains immutable implementation classes generated from abstract value types defined as nested insideRewriteMinusAllRule.Immutable implementation ofRewriteMinusAllRule.RewriteMinusAllRuleConfig.Builds instances of typeRewriteMinusAllRuleConfig.ImmutableRewriteMultiJoinConditionRulecontains immutable implementation classes generated from abstract value types defined as nested insideRewriteMultiJoinConditionRule.Immutable implementation ofRewriteMultiJoinConditionRule.RewriteMultiJoinConditionRuleConfig.Builds instances of typeRewriteMultiJoinConditionRuleConfig.ImmutableSimplifyJoinConditionRulecontains immutable implementation classes generated from abstract value types defined as nested insideSimplifyJoinConditionRule.Immutable implementation ofSimplifyJoinConditionRule.SimplifyJoinConditionRuleConfig.Builds instances of typeSimplifyJoinConditionRuleConfig.ImmutableSplitPythonConditionFromCorrelateRulecontains immutable implementation classes generated from abstract value types defined as nested insideSplitPythonConditionFromCorrelateRule.Immutable implementation ofSplitPythonConditionFromCorrelateRule.SplitPythonConditionFromCorrelateRuleConfig.Builds instances of typeSplitPythonConditionFromCorrelateRuleConfig.ImmutableTemporalJoinRewriteWithUniqueKeyRulecontains immutable implementation classes generated from abstract value types defined as nested insideTemporalJoinRewriteWithUniqueKeyRule.Immutable implementation ofTemporalJoinRewriteWithUniqueKeyRule.TemporalJoinRewriteWithUniqueKeyRuleConfig.Builds instances of typeTemporalJoinRewriteWithUniqueKeyRuleConfig.ImmutableUncollectToTableFunctionScanRulecontains immutable implementation classes generated from abstract value types defined as nested insideUncollectToTableFunctionScanRule.Immutable implementation ofUncollectToTableFunctionScanRule.UncollectToTableFunctionScanRuleConfig.Builds instances of typeUncollectToTableFunctionScanRuleConfig.ImmutableWindowGroupReorderRulecontains immutable implementation classes generated from abstract value types defined as nested insideWindowGroupReorderRule.Immutable implementation ofWindowGroupReorderRule.WindowGroupReorderRuleConfig.Builds instances of typeWindowGroupReorderRuleConfig.Immutable implementation ofWindowPropertiesRules.WindowPropertiesHavingRule.WindowPropertiesHavingRuleConfig.Builds instances of typeImmutableWindowPropertiesHavingRuleConfig.Immutable implementation ofWindowPropertiesRules.WindowPropertiesRule.WindowPropertiesRuleConfig.Builds instances of typeImmutableWindowPropertiesRuleConfig.ImmutableWrapJsonAggFunctionArgumentsRulecontains immutable implementation classes generated from abstract value types defined as nested insideWrapJsonAggFunctionArgumentsRule.Immutable implementation ofWrapJsonAggFunctionArgumentsRule.Config.Builds instances of typeConfig.Planner rule that coerces the both sides of EQUALS(`=`) operator in Join condition to the same type while sans nullability.Rule configuration.Planner rule that filters null values before join if the count null value from join input is greater than null filter threshold.Rule configuration.Rule that rewritesJoinonTableFunctionScantoCorrelate.Configuration forJoinTableFunctionScanToCorrelateRule.Planner rule that rewrites UNNEST to explode function.Rule configuration.Planner rule that pushes aProjectdown in a tree past a semi/antiJoinby splitting the projection into a projection on top of left child of the Join.Rule configuration.TransposeLogicalProjectpast intoLogicalSnapshot.Configuration forProjectSnapshotTransposeRule.Transpose between theLogicalWatermarkAssignerandLogicalProject.Planner rule that pushes aLogicalProjectinto aLogicalTableFunctionScanwhich contains a Window table function call by splitting the projection into a projection on top of child of the TableFunctionScan.Pushes a filter condition from theFlinkLogicalCalcand into aFlinkLogicalTableSourceScan.Planner rule that tries to push a filter into aFilterableTableSource.Rule configuration.Base class for rules that push down filters into table scan.Planner rule that tries to push a filter into aLogicalTableScan, which table is aTableSourceTable.Planner rule that tries to push limit into aLimitableTableSource.Configuration forPushLimitIntoLegacyTableSourceScanRule.Planner rule that tries to push limit into aFlinkLogicalTableSourceScan, which table is aTableSourceTable.Planner rule that tries to push partition evaluated by filter condition into aLogicalTableScan.Pushes aLogicalProjectinto aLogicalTableScan.Configuration forPushProjectIntoTableSourceScanRule.Rule to push theFlinkLogicalWatermarkAssigneracross theFlinkLogicalCalcto theFlinkLogicalTableSourceScan.Rule to push theFlinkLogicalWatermarkAssignerinto theFlinkLogicalTableSourceScan.Base rule for interfaceSupportsWatermarkPushDownandSupportsSourceWatermark.Rule will split the PythonFlinkLogicalTableFunctionScanwith Java calls or the JavaFlinkLogicalTableFunctionScanwith Python calls into aFlinkLogicalCalcwhich will be the left input of the newFlinkLogicalCorrelateand a newFlinkLogicalTableFunctionScan.Rule will merge PythonFlinkLogicalCalcused in Map operation, FlattenFlinkLogicalCalcand PythonFlinkLogicalCalcused in Map operation together.Rule which renames the field names of the FlattenFlinkLogicalCalcwhich is right after aFlinkLogicalCalcrepresenting a Python Map operation to the output names of the map function.Planner rule that removes the output column of rank number iff the rank number column is not used by successor calc.Finds whether aRexNodecontains remote calls or not.Removes unreachableBuiltInFunctionDefinitions.COALESCEarguments.Configuration forRemoveUnreachableCoalesceArgumentsRule.Planner rule that replaces distinctIntersectwith a distinctAggregateon a SEMIJoin.Rule configuration.Planner rule that replaces distinctMinus(SQL keyword: EXCEPT) with a distinctAggregateon an ANTIJoin.Rule configuration.Replaces logicalIntersectoperator using a combination of union all, aggregate and table function.Rule configuration.Replaces logicalMinusoperator using a combination of union all, aggregate and table function.Rule configuration.Planner rule to apply transitive closure onMultiJoinfor equi-join predicates.Rule configuration.Planner rule that apply various simplifying transformations on join condition. e.g. reduce same expressions: a=b AND b=a -> a=b, simplify boolean expressions: x = 1 AND FALSE -> FALSE, simplify cast expressions: CAST('123' as integer) -> 123Rule configuration.Rule will split aFlinkLogicalCalcwhich is the upstream of aFlinkLogicalCorrelateand contains Python Functions in condition into twoFlinkLogicalCalcs.Rule configuration.SubQueryDecorrelator finds all correlated expressions in a SubQuery, and gets an equivalent non-correlated relational expression tree and correlation conditions.Result describing the relational expression after decorrelation and where to find the equivalent non-correlated expressions and correlated conditions.Pull out all correlation conditions from a given subquery to top level, and rebuild the subquery rel tree without correlation conditions.Planner rule that rewrites temporal join with extracted primary key, Event-time temporal table join requires primary key and row time attribute of versioned table.Rule configuration.Planner rule that convertsUncollectvalues toTableFunctionScan.Rule to convert complex aggregation functions into simpler ones.Planner rule that makes the over window groups which have the same shuffle keys and order keys together.Rule configuration.Rule configuration.Rule configuration.Transforms JSON aggregation functions by wrapping operands intoBuiltInFunctionDefinitions.JSON_STRING.Configuration forWrapJsonAggFunctionArgumentsRule.