[jira] [Created] (FLINK-12217) OperationTreeBuilder.map() should perform ExpressionResolver.resolve()

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-12217) OperationTreeBuilder.map() should perform ExpressionResolver.resolve()

Shang Yuanchun (Jira)
Hequn Cheng created FLINK-12217:
-----------------------------------

             Summary: OperationTreeBuilder.map() should perform ExpressionResolver.resolve()
                 Key: FLINK-12217
                 URL: https://issues.apache.org/jira/browse/FLINK-12217
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / API
            Reporter: Hequn Cheng
            Assignee: Hequn Cheng


In {{OperationTreeBuilder.map()}}, we should resolve all LookupCallExpression for the case of java, otherwise, exceptions will be thrown.

The following test case can reproduce the problem.
{code:java}
  @Test
  def testMap(): Unit = {
    val util = streamTestUtil()
    val t = util.addTable[(Int, Long, String)]("Table3",'a, 'b, 'c)
    util.tableEnv.registerFunction("func", Func23)

    val t1 = t.map("func(a, b, c)")
    val t2 = t.map(Func23('a, 'b, 'c))

    verifyTableEquals(t1, t2)
  }
{code}

{code:java}
org.apache.flink.table.api.ValidationException: Only ScalarFunction can be used in the map operator.

        at org.apache.flink.table.operations.OperationTreeBuilder.map(OperationTreeBuilder.scala:355)
        at org.apache.flink.table.api.TableImpl.map(tableImpl.scala:461)
        at org.apache.flink.table.api.TableImpl.map(tableImpl.scala:457)
        at org.apache.flink.table.api.stream.table.stringexpr.CalcStringExpressionTest.testMap(CalcStringExpressionTest.scala:178)
{code}





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)