Class AsyncCalcSplitRule.AsyncCalcSplitNestedRule

java.lang.Object
RemoteCalcSplitRuleBase<java.lang.Void>
org.apache.flink.table.planner.plan.rules.logical.AsyncCalcSplitRule.AsyncCalcSplitNestedRule
Enclosing class:
AsyncCalcSplitRule

public static class AsyncCalcSplitRule.AsyncCalcSplitNestedRule extends RemoteCalcSplitRuleBase<java.lang.Void>
Splits nested call <- asyncCall chains so that nothing is immediately waiting on an async call in a single calc.

For Example: Calc(select=[syncCall(asyncCall()]) -> Source

becomes

Calc(select=[syncCall(f0)]) -> AsyncCalc(select=[asyncCall() as f0]) -> Source

  • Constructor Details

  • 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<Void> matchState)
    • split

      public SplitComponents split(org.apache.calcite.rex.RexProgram program, ScalarFunctionSplitter splitter)