Hequn Cheng created FLINK-12402: ----------------------------------- Summary: Make validation error message for CallExpression more user friendly Key: FLINK-12402 URL: https://issues.apache.org/jira/browse/FLINK-12402 Project: Flink Issue Type: Improvement Components: Table SQL / API Reporter: Hequn Cheng Assignee: Hequn Cheng
Currently, the error message for CallExpression validation may not display the root cause which may confuse our users. Take the following test as an example: {code:java} @Test def testSimpleSelectAllWithAs(): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment val tEnv = StreamTableEnvironment.create(env) StreamITCase.testResults = mutable.MutableList() val ds = StreamTestData.getSmall3TupleDataStream(env).toTable(tEnv, 'a, 'b, 'c) .select('a, 'b.log as 'b, 'c) val results = ds.toAppendStream[Row] results.addSink(new StreamITCase.StringSink[Row]) env.execute() val expected = mutable.MutableList( "1,1,Hi", "2,2,Hello", "3,2,Hello world") assertEquals(expected.sorted, StreamITCase.testResults.sorted) } {code} The error message is: {code:java} org.apache.flink.table.api.ValidationException: Invalid arguments [log(b), 'b'] for function: as {code} >From the error message, it shows there is something wrong with the `as` >function. However, the root cause is the log function can only accept a double >parameter while b is a long number. To make it more user friendly, it would be better to display the root cause error message. -- This message was sent by Atlassian JIRA (v7.6.3#76005)