Steven Swor created ORC-425: ------------------------------- Summary: Wrong error message when setting decimal precision to an invalid value Key: ORC-425 URL: https://issues.apache.org/jira/browse/ORC-425 Project: ORC Issue Type: Bug Reporter: Steven Swor
With decimal types, *precision* is the total number of digits in the decimal representation, and *scale* is the number of digits to the right of the decimal place. Currently, {{TypeDescription.withPrecision()}} checks the the precision argument and throws {{IllegalArgumentException}} if it's out of bounds. However, the error message is confusing and probably incorrect. The following snippet: {code:java} TypeDescription invalidDecimal = TypeDescription.createDecimal().withScale(10).withPrecision(5);{code} results in this exception: {code:java} java.lang.IllegalArgumentException: precision 5 is out of range 1 .. 10 at org.apache.orc.TypeDescription.withPrecision(TypeDescription.java:427) ~[orc-core-1.5.3.jar:1.5.3] ...{code} The error message is confusing and probably incorrect. The value {{5}} is within the range of {{1 .. 10}} Instead it should probably read something like: {code:java} java.lang.IllegalArgumentException: precision 5 was less than scale 10 org.apache.orc.TypeDescription.withPrecision(TypeDescription.java:427) ~[orc-core-1.5.3.jar:1.5.3] ...{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)