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)