[ 
https://issues.apache.org/jira/browse/FLINK-14036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16927382#comment-16927382
 ] 

Jingsong Lee commented on FLINK-14036:
--------------------------------------

This exception is for checking input types, same as InputTypeValidator. This 
cast do some weak implicit cast, but we don't need make it strong to cast 
everything, you can ignore this cast.

There are also many behavior that SQL support but tableApi not support. The 
reason is that table api type inference is so weak... After 
https://issues.apache.org/jira/browse/FLINK-13773 , we have a strong type 
inference for table FunctionDefinitions, we can support almost all sql 
behaviors.

So I think we don't need fix this by old way, after FLINK-13773, we can support 
it. What do you think?

>  function log(f0,f1) in Table API  do not support decimal type 
> ---------------------------------------------------------------
>
>                 Key: FLINK-14036
>                 URL: https://issues.apache.org/jira/browse/FLINK-14036
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API, Table SQL / Planner
>    Affects Versions: 1.9.0
>            Reporter: Leonard Xu
>            Priority: Major
>             Fix For: 1.10.0
>
>
> function log(f0,f1) in Table API module do not support decimal type, but it 
> works in  Table SQL module. The following code will run fail:
>  
> {code:java}
> testTableApi(
>  'f0.log(f1),
>  "log(f0,f1)",
>  "2.0")
>  override def testData: Row = {
>     val testData = new Row(2)
>     testData.setField(0, BigDecimal("3").bigDecimal)
>     testData.setField(1, 9)
>     testData
>   }
>   
>   override def typeInfo: RowTypeInfo = {
>     new RowTypeInfo(
>       /* 0 */ fromLogicalTypeToTypeInfo(DECIMAL(1, 0)),
>       /* 1 */ Types.INT 
>     )
>   }{code}
>  
> The real cause is that the return type of *log()* function must be Double 
> type,planner will cast all oprands' type to Double Type before function 
> execution,  however *org.apache.flink.table.planner.typeutils.TypeCoercion* 
> can not yet cast Decimal type to Double type。



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to