[ 
https://issues.apache.org/jira/browse/FLINK-21125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xintong Song updated FLINK-21125:
---------------------------------
    Fix Version/s:     (was: 1.14.0)
                   1.14.1
                   1.15.0

> Sum or Sum0 overflow quietly
> ----------------------------
>
>                 Key: FLINK-21125
>                 URL: https://issues.apache.org/jira/browse/FLINK-21125
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Runtime
>            Reporter: Sebastian Liu
>            Priority: Minor
>              Labels: auto-deprioritized-major
>             Fix For: 1.15.0, 1.14.1
>
>
> Overflow is not calculated correctly in the build-in sum function of Blink 
> planner.
> For a aggregate calculation such as:
> {code:java}
> CREATE TABLE TestTable (
>   amount INT
> );
> insert into TestTable (2147483647);
> insert into TestTable (1);
> SELECT sum(amount) FROM TestTable;
> The result will be: -2147483648, which is an overflowed value and no 
> exception was thrown. {code}
> The overflow occurs quietly and is difficult to detect. 
> Compare the processing semantics of other systems:
>  * *mysql*: provide two SQL mode for handling overflow. If strict SQL mode is 
> enabled, MySQL rejects the out-of-range value with an error, and the insert 
> fails, in accordance with the SQL standard. If no restrictive modes are 
> enabled, MySQL clips the value to the appropriate endpoint of the column data 
> type range and stores the resulting value instead. FYI: 
> [https://dev.mysql.com/doc/refman/8.0/en/out-of-range-and-overflow.html]
>  * *presto*: all numeric types are automatically cast to Long type, and If 
> the long is out of range, an exception is thrown to prompt user.
> IMO, exception hint is necessary, instead of quietly overflow. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to