Hive functions 'greatest' and 'least' have one of the strictest type restrictions of any database.
Experimented with other databases, Postgres and MySQL, all of them are much more relaxed. Tinyint (not in postgres), smallint, int, bigint, decimal, double, float can all be passed to these functions without complaint. In Hive, one cannot even do a greatest comparison between int and bigint without hitting exception.
This JIRA aims to relax the restriction and make it more akin to the other databases.