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)

Reply via email to