[ https://issues.apache.org/jira/browse/FLINK-24847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17441198#comment-17441198 ]
Wenlong Lyu commented on FLINK-24847: ------------------------------------- hi, have you try the latest code to see if the inconsistent still exists? the solution of FLINK-24318 may have changed something, which tried to fix the inconsistent by unify the expression executor. > Decide the overflows behaviour > ------------------------------ > > Key: FLINK-24847 > URL: https://issues.apache.org/jira/browse/FLINK-24847 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API, Table SQL / Planner, Table SQL / Runtime > Affects Versions: 1.14.0 > Reporter: Francesco Guardiani > Priority: Major > > Right now we have inconsistent behavior when it comes down to overflows, > depending on whether the value comes from a literal or from a value generated > by the runtime (eg after a sum). > In particular, I tracked down an issue when trying to execute > {{CAST(9.2345682E9):INTEGER}} which returns {{644633299}} instead of > {{2147483647}} (the result of {{(int)9234567891.12f}}, because Calcite > changes the type of the literal to INTEGER, skipping completely our casting > logic in codegen and just forcing us to generate a literal using > {{literal.getValue().intValue()}} (Note that Calcite uses {{BigDecimal}} for > every numeric, no matter the type). > Relevant code related to the issue: > * {{RexBuilder#makeCast}} > * {{GenerateUtils#generateLiteral}} > This issue brings me to the following questions: > * Should we throw an error on overflows? > ** If yes, should this be the default behavior or just something we configure > behind a flag? > ** If no, should we have consistent and useful results when overflows (e.g. > max value)? > *** If yes, what should be those overflow values? > *** If no, do we keep everything as it is and document that the user needs to > be careful about overflows? -- This message was sent by Atlassian Jira (v8.20.1#820001)