Shuo Cheng created FLINK-16578: ---------------------------------- Summary: 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
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 by SqlToRelConvert 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)