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

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

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

Shang Yuanchun (Jira)
Leonard Xu created FLINK-14036:
----------------------------------

             Summary:  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
             Fix For: 2.0.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)