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

Xingcan Cui commented on FLINK-10014:
-------------------------------------

Copied from another JIRA.

[~xccui]: Personally, I prefer the former solution because it's much easier 
(especially for functions take multiple numeric params). Besides, for a great 
number of functions, we could not directly calculate on BigDecimal (e.g., to 
calculate log, we should first get the double value from a BigDecimal and 
that's equivalent to a pre-cast). The drawback of this solution may be the 
wrong return type. The later solution looks like a more formal one.

[~twalthr]: We should first investigate if we can let Calcite convert simple 
literals to double. Explicit casts are not a nice solution but at least they 
make the operation explicit. If we would automatically cast the type to double 
we would lose precision which might be unintended. A corresponding BigDecimal 
method would also return a BigDecimal and would cause high serialization 
overhead for Flink applications even though a simple double would do the job.

> Fix the decimal literal parameter problem for arithmetic functions in Table
> ---------------------------------------------------------------------------
>
>                 Key: FLINK-10014
>                 URL: https://issues.apache.org/jira/browse/FLINK-10014
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>            Reporter: Xingcan Cui
>            Priority: Major
>
> Most of the arithmetic functions added in Flink only consider double type 
> parameters (e.g., def log(base: Double, x: Double): Double =...). However, by 
> Calcite, the decimal literals are automatically cast to BigDecimal, which 
> cannot be directly applied (e.g., LOG(3.0, 9.0) throws an unsupported call 
> exception). Explicit type cast can make these functions accessible but seems 
> not an elegant solution.
> We could consider automatically casting the BigDecimal type to Double or 
> adding the corresponding methods for BigDecimal type.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to