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)