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

Kevin Zhang edited comment on SPARK-22755 at 12/12/17 2:03 AM:
---------------------------------------------------------------

Thanks for reply. In hive and presto the result is supposed to be true. 

I tried another time in both spark sql repl and thrift-server, the statement 
`select ((946-885)*1.0/946 < 0.1` still returns false, and I used spark 2.2 
instead of the trunk codeline


{code:sql}
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|(CAST((CAST((CAST(CAST((946 - 885) AS DECIMAL(10,0)) AS DECIMAL(11,1)) * 
CAST(1.0 AS DECIMAL(11,1))) AS DECIMAL(13,1)) / CAST(CAST(946 AS DECIMAL(13,1)) 
AS DECIMAL(13,1))) AS DECIMAL(13,1)) < CAST(0.1 AS DECIMAL(13,1)))|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                               
                                                                                
                                                       false|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
{code}

and I found out my physical plan is different from yours in the decimal 
precision and scale, is there any configuration influences? or the bug has been 
fixed by some issue? 



was (Author: kevinzwx):
Thanks for reply. In hive and presto the result is supposed to be true. 

I tried another time in both spark sql repl and thrift-server, the statement 
`select ((946-885)*1.0/946 < 0.1` still returns false, and I used spark 2.2, 
which version are you using?


{code:sql}
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|(CAST((CAST((CAST(CAST((946 - 885) AS DECIMAL(10,0)) AS DECIMAL(11,1)) * 
CAST(1.0 AS DECIMAL(11,1))) AS DECIMAL(13,1)) / CAST(CAST(946 AS DECIMAL(13,1)) 
AS DECIMAL(13,1))) AS DECIMAL(13,1)) < CAST(0.1 AS DECIMAL(13,1)))|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                               
                                                                                
                                                       false|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
{code}

and I found out my physical plan is different from yours in the decimal 
precision and scale, is there any configuration influences?


> Expression (946-885)*1.0/946 < 0.1 and (946-885)*1.000/946 < 0.1 return 
> different results
> -----------------------------------------------------------------------------------------
>
>                 Key: SPARK-22755
>                 URL: https://issues.apache.org/jira/browse/SPARK-22755
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.2.0
>            Reporter: Kevin Zhang
>
> both of the following sql statements
> {code:sql}
> select ((946-885)*1.000/946 < 0.1)
> {code}
> and
> {code:sql}
> select ((946-885)*1.0/946 < 0.100)
> {code}
> return true, while the following statement 
> {code:sql}
> select ((946-885)*1.0/946 < 0.1)
> {code}
> returns false



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to