[ https://issues.apache.org/jira/browse/HIVE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xuefu Zhang updated HIVE-5878: ------------------------------ Attachment: HIVE-5878.patch > Hive standard avg UDAF returns double as the return type for some exact input > types > ----------------------------------------------------------------------------------- > > Key: HIVE-5878 > URL: https://issues.apache.org/jira/browse/HIVE-5878 > Project: Hive > Issue Type: Bug > Components: Types, UDF > Affects Versions: 0.12.0 > Reporter: Xuefu Zhang > Assignee: Xuefu Zhang > Attachments: HIVE-5878.patch > > > For standard, no-partial avg result, hive currently returns double as the > result type. > {code} > hive> desc test; > OK > d int None > Time taken: 0.051 seconds, Fetched: 1 row(s) > hive> explain select avg(`d`) from test; > ... > Reduce Operator Tree: > Group By Operator > aggregations: > expr: avg(VALUE._col0) > bucketGroup: false > mode: mergepartial > outputColumnNames: _col0 > Select Operator > expressions: > expr: _col0 > type: double > {code} > However, exact types including integers and decimal should yield exact type. > Here is what MySQL does: > {code} > 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 | | > +-------+--------------+------+-----+---------+-------+ > mysql> desc test62; > +-------+---------------+------+-----+---------+-------+ > | Field | Type | Null | Key | Default | Extra | > +-------+---------------+------+-----+---------+-------+ > | sum_t | decimal(14,4) | YES | | NULL | | > +-------+---------------+------+-----+---------+-------+ > 1 row in set (0.00 sec) > {code} -- This message was sent by Atlassian JIRA (v6.1#6144)