Xuefu Zhang created HIVE-5802:
---------------------------------

             Summary: Hive UDF pow limits the second input to integer when the 
first input is a decimal
                 Key: HIVE-5802
                 URL: https://issues.apache.org/jira/browse/HIVE-5802
             Project: Hive
          Issue Type: Improvement
          Components: Types, UDF
    Affects Versions: 0.12.0
            Reporter: Xuefu Zhang
            Assignee: Xuefu Zhang


For example,
{code}
hive> desc test;
OK
i                       int                     None                
b                       boolean                 None                
d                       double                  None                
s                       string                  None                
dec                     decimal(5,2)            None                
hive> explain select pow(dec, 2.5) from test;
FAILED: SemanticException [Error 10014]: Line 1:15 Wrong arguments '2.5': No 
matching method for class org.apache.hadoop.hive.ql.udf.UDFPower with 
(decimal(5,2), double). Possible choices: _FUNC_(decimal(65,30), int)  
_FUNC_(double, double)  _FUNC_(double, int)  
{code}

This seems too restrictive. MySQL, on the other hand, supports fractional power 
as the second input.
{code}
mysql> select pow(d, 2.5) from test;
mysql> desc test;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| i     | int(11)      | YES  |     | NULL    |       |
| b     | tinyint(1)   | YES  |     | NULL    |       |
| d     | double       | YES  |     | NULL    |       |
| s     | varchar(5)   | YES  |     | NULL    |       |
| dd    | decimal(5,2) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select pow(dd, 2.5) from test;
+-------------------+
| pow(dd, 2.5)      |
+-------------------+
| 2570.215713318881 |
+-------------------+
1 row in set (0.00 sec)
{code}

Hive should also support this.




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

Reply via email to