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

Sergey Nuyanzin commented on FLINK-40207:
-----------------------------------------

Merged as 
[122203561e91a6c84a851e41f17f83e015ea29fb|https://github.com/apache/flink/commit/122203561e91a6c84a851e41f17f83e015ea29fb]

> Make NaN and Infinity case-insensitive
> --------------------------------------
>
>                 Key: FLINK-40207
>                 URL: https://issues.apache.org/jira/browse/FLINK-40207
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Planner
>            Reporter: Ramin Gharib
>            Assignee: Ramin Gharib
>            Priority: Minor
>              Labels: pull-request-available
>
> Currently Flink only accepts case-sensitive \{{NaN. }}If we use nan, Nan, or 
> NAN Flink will fail to parse it. For to reproduce simply write
>  
> {code:java}
> SELECT CAST('nan' as FLOAT){code}
> You will get
> {code:java}
> Caused by: java.lang.NumberFormatException: For input string: "nan"   at 
> java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
>   at 
> java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
>      at java.base/java.lang.Float.parseFloat(Float.java:476) at 
> org.apache.flink.table.data.binary.BinaryStringDataUtil.toFloat(BinaryStringDataUtil.java:581)
>        at BatchExecCalc$3.processElement(Unknown Source)       at 
> org.apache.flink.streaming.runtime.tasks.ChainingOutput.pushToOperator(ChainingOutput.java:110)
>       at 
> org.apache.flink.streaming.runtime.tasks.ChainingOutput.collect(ChainingOutput.java:79)
>       at 
> org.apache.flink.streaming.runtime.tasks.ChainingOutput.collect(ChainingOutput.java:41)
>  {code}
> This is also applied for Infinity
> {code:java}
> Caused by: java.lang.NumberFormatException: For input string: "-infinity"     
> {code}
> Moreover, we can also allow
>  * {{-inf}}
>  * {{inf}}
> as aliases for -Infinity and Infinity.
> Other vendors like Snowflake and Databricks also define them as 
> case-insensitive:
> [https://docs.snowflake.com/en/sql-reference/data-types-numeric#special-values]
> [https://docs.databricks.com/aws/en/sql/language-manual/data-types/special-floating-point-values]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to