You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Brock Noland (JIRA)" <ji...@apache.org> on 2013/11/05 20:26:18 UTC

[jira] [Updated] (HIVE-5655) Hive incorrecly handles divide-by-zero case

     [ https://issues.apache.org/jira/browse/HIVE-5655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brock Noland updated HIVE-5655:
-------------------------------

    Status: Open  (was: Patch Available)

Cancelling patch until RB item is addressed.

> Hive incorrecly handles divide-by-zero case
> -------------------------------------------
>
>                 Key: HIVE-5655
>                 URL: https://issues.apache.org/jira/browse/HIVE-5655
>             Project: Hive
>          Issue Type: Improvement
>          Components: Types
>    Affects Versions: 0.12.0, 0.11.0, 0.10.0
>            Reporter: Xuefu Zhang
>            Assignee: Xuefu Zhang
>         Attachments: HIVE-5655.1.patch, HIVE-5655.2.patch, HIVE-5655.patch
>
>
> Unlike other databases, Hive currently has only one mode (default mode) regarding error handling, in which NULL value is returned. However, in case of divide-by-zero, Hive demonstrated a different behavior.
> {code}
> hive> select 5/0 from tmp2 limit 1;
> Total MapReduce jobs = 1
> ...
> Total MapReduce CPU Time Spent: 860 msec
> OK
> Infinity
> {code}
> The correct behaviour should be Hive returning NULL instead in order to be consistent w.r.t error handling. (BTW, the same situation is handled corrected for decimal type.)
> MySQL has server modes control the behaviour. By default, NULL is returned. For instance,
> {code}
> mysql> select 3/0 from dual;
> +------+
> | 3/0  |
> +------+
> | NULL |
> +------+
> 1 row in set (0.00 sec)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)