You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Xuefu Zhang (JIRA)" <ji...@apache.org> on 2013/10/26 01:48:33 UTC

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

Xuefu Zhang created HIVE-5655:
---------------------------------

             Summary: 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


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. 

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)