Details

Type: Improvement

Status: Resolved

Priority: Major

Resolution: Fixed

Affects Version/s: 0.11.0, 0.12.0

Fix Version/s: 0.13.0

Component/s: None

Labels:None

Release Note:Wiki updated.
Description
A few mathematical functions, such as sin() cos(), etc. don't take decimal as argument.
hive> show tables; OK Time taken: 0.534 seconds hive> create table test(d decimal(5,2)); OK Time taken: 0.351 seconds hive> select sin(d) from test; FAILED: SemanticException [Error 10014]: Line 1:7 Wrong arguments 'd': No matching method for class org.apache.hadoop.hive.ql.udf.UDFSin with (decimal(5,2)). Possible choices: _FUNC_(double)
HIVE6246 covers only sign() function. The remaining ones, including sin, cos, tan, asin, acos, atan, exp, ln, log, log10, log2, radians, and sqrt. These are nongeneric UDFs.
Maybe the function signature matching for nongeneric UDFs should allow decimal args to be converted to double for these UDFs? Would be a more general fix as opposed to having to patch each of these UDFs.