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)

Reply via email to