Marco Gaido created SPARK-25454:
-----------------------------------

             Summary: Division between operands with negative scale can cause 
precision loss
                 Key: SPARK-25454
                 URL: https://issues.apache.org/jira/browse/SPARK-25454
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.3.1, 2.3.0
            Reporter: Marco Gaido


The issue was originally reported by [~bersprockets] here: 
https://issues.apache.org/jira/browse/SPARK-22036?focusedCommentId=16618104&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16618104.

The problem consist in a precision loss when the second operand of the division 
is a decimal with a negative scale. It was present also before 2.3 but it was 
harder to reproduce: you had to do something like {{lit(BigDecimal(100e6))}}, 
while now this can happen more frequently with SQL constants.

The problem is that our logic is taken from Hive and SQLServer where decimals 
with negative scales are not allowed. We might also consider enforcing this too 
in 3.0 eventually. Meanwhile we can fix the logic for computing the result type 
for a division.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to