You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Kurt Young (Jira)" <ji...@apache.org> on 2019/12/04 04:27:00 UTC

[jira] [Updated] (FLINK-14036) function log(f0,f1) in Table API do not support decimal type

     [ https://issues.apache.org/jira/browse/FLINK-14036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kurt Young updated FLINK-14036:
-------------------------------
    Fix Version/s:     (was: 1.10.0)

>  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
>
> 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.4#803005)