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)

Reply via email to