[ 
https://issues.apache.org/jira/browse/DRILL-6710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16594030#comment-16594030
 ] 

Volodymyr Vysotskyi commented on DRILL-6710:
--------------------------------------------

So I think we should throw an error for the cases when a negative scale appears 
during trimming resulting scale.
 Negative scale may be set during inferring result type in 
{{DecimalScalePrecisionAddFunction}}, {{DecimalScalePrecisionMulFunction}}, and 
in {{DecimalScalePrecisionDivideFunction}}. For the first two cases, trimming 
of scale to its negative value happens in 
{{DrillBaseComputeScalePrecision.checkPrecisionRange()}}, for 
{{DecimalScalePrecisionDivideFunction}} - inside its method 
{{computeScalePrecision}}.

Besides that, aggregate functions may be revised do not exceed max value 
allowed by current precision.
  

> Drill C++ Client does not handle scale = 0 properly for decimal
> ---------------------------------------------------------------
>
>                 Key: DRILL-6710
>                 URL: https://issues.apache.org/jira/browse/DRILL-6710
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Relational Operators
>    Affects Versions: 1.14.0
>            Reporter: Robert Hou
>            Assignee: Sorabh Hamirwasia
>            Priority: Major
>             Fix For: 1.15.0
>
>
> Query is:
> select cast('999999999999999999' as decimal(18,0)) + 
> cast('9999999999999999999999999999999999999' as decimal(38,0)) from data 
> limit 1
> This is the error I get when my test program calls SQLExecDirect:
> The driver reported the following diagnostics whilst running SQLExecDirect
> HY000:1:40140:[MapR][Support] (40140) Scale can't be less than zero.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to