[ https://issues.apache.org/jira/browse/IMPALA-7888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul Rogers resolved IMPALA-7888. --------------------------------- Resolution: Fixed > Incorrect NumericLiteral overflow checks for FLOAT, DOUBLE > ---------------------------------------------------------- > > Key: IMPALA-7888 > URL: https://issues.apache.org/jira/browse/IMPALA-7888 > Project: IMPALA > Issue Type: Bug > Components: Frontend > Affects Versions: Impala 3.0 > Reporter: Paul Rogers > Assignee: Paul Rogers > Priority: Minor > > Consider the following (new) unit test: > {code:java} > assertFalse(NumericLiteral.isOverflow(BigDecimal.ZERO, Type.FLOAT)); > {code} > This test fails (that is, the value zero, so the method claims, overflows a > FLOAT.) > The reason is a misunderstanding of the meaning of {{MIN_VALUE}} for Float: > {code:java} > case FLOAT: > return (value.compareTo(BigDecimal.valueOf(Float.MAX_VALUE)) > 0 || > value.compareTo(BigDecimal.valueOf(Float.MIN_VALUE)) < 0); > {code} > For Float, {{MIN_VALUE}} is the smallest positive number that Float can > represent: > {code:java} > public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f > {code} > The value that the Impala code wants to check it {{- Float.MAX_VALUE}}. > The only reason that this is not marked as more serious is that the method > appears to be used in only one place, and that place does not use {{FLOAT}} > values. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org For additional commands, e-mail: issues-all-h...@impala.apache.org