Class AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule
java.lang.Object
RemoteCalcSplitProjectionRuleBase<org.apache.flink.table.planner.plan.rules.logical.AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule.State>
org.apache.flink.table.planner.plan.rules.logical.AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule
- Enclosing class:
- AsyncCalcSplitRule
public static class AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule
extends RemoteCalcSplitProjectionRuleBase<org.apache.flink.table.planner.plan.rules.logical.AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule.State>
Splits async calls if there are multiple across projections, so that there's one per calc.
This assumes that the nested rule has been run first, so there is just one per projection.
For Example: Calc(select=[asyncCall(), asyncCall()]) -> Source
becomes
AsyncCalc(select=[asyncCall(), f0]) -> AsyncCalc(select=[asyncCall() as f0]) -> Source
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classState object used to keep track of whether a match has been found yet. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionscala.Option<AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule.State>booleanmatches(org.apache.calcite.plan.RelOptRuleCall call) booleanneedConvert(org.apache.calcite.rex.RexProgram program, org.apache.calcite.rex.RexNode node, scala.Option<AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule.State> matchState)
-
Constructor Details
-
AsyncCalcSplitOnePerCalcRule
-
-
Method Details
-
matches
public boolean matches(org.apache.calcite.plan.RelOptRuleCall call) -
needConvert
public boolean needConvert(org.apache.calcite.rex.RexProgram program, org.apache.calcite.rex.RexNode node, scala.Option<AsyncCalcSplitRule.AsyncCalcSplitOnePerCalcRule.State> matchState) -
getMatchState
-