Paul Rogers created IMPALA-7887: ----------------------------------- Summary: NumericLiteral fails to detect numeric overflow Key: IMPALA-7887 URL: https://issues.apache.org/jira/browse/IMPALA-7887 Project: IMPALA Issue Type: Bug Components: Frontend Affects Versions: Impala 3.0 Reporter: Paul Rogers Assignee: Paul Rogers
The {{NumericLiteral}} constructor takes a value and a type. The code does not check that the value is within range of the type, allowing nonsensical values: {code:java} NumericLiteral n = new NumericLiteral(new BigDecimal("123.45"), ScalarType.createDecimalType(3, 1)); System.out.println(n.getValue().toString()); n = new NumericLiteral(new BigDecimal(Integer.MAX_VALUE), Type.TINYINT); System.out.println(n.getValue().toString()); {code} Prints: {noformat} 123.45 2147483647 {noformat} The value 123.45 is not valid for DECIMAL(3,1), nor is 2^31 valid for TINYINT. The purpose of the constructor appears to be for "friendly" use where the caller promises not to create incorrect literals. Better would be to enforce this rule. -- 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