[ https://issues.apache.org/jira/browse/FLINK-16578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17058401#comment-17058401 ]
Shuo Cheng commented on FLINK-16578: ------------------------------------ One hack way is copy `RelDecorrelator` from Calcite and modify... > join lateral table function with condition fails with exception > --------------------------------------------------------------- > > Key: FLINK-16578 > URL: https://issues.apache.org/jira/browse/FLINK-16578 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Affects Versions: 1.10.0 > Reporter: Shuo Cheng > Priority: Major > > Reproducing: > > {code:java} > // CorrelateITCase.scala > @Test > def testJoinTableFunction(): Unit = { > registerFunction("func", new TableFunc2) > val sql = > """ > | select > | c, s, l > | from inputT JOIN LATERAL TABLE(func(c)) as T(s, l) > | on s = c > |""".stripMargin > checkResult(sql, Seq()) > } > {code} > The it case will be failed with exception: "Cannot generate a valid execution > plan for the given query". > Firstly, for the given sql, the logical plan produced after decorrelating is > already wrong, which is a bug introduced by CALCITE-2004, and fixed in > CALCITE-3847 (fixed versions 1.23). > Secondly, even after the fix, we may fail in > `FlinkCorrelateVariablesValidationProgram`, because after decorrelating, > there exists correlate variable in a `LogicalFilter`. we should fix the > validation problem. -- This message was sent by Atlassian Jira (v8.3.4#803005)