Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
The UDAF function allows definition of an iterator() function. In keeping with how Java works and how the UDF (non-aggregating) structure works, multiple iterator() functions should be definable for different functionality of the same function (especially for something like defining defaults).
Multiple methods for a single UDAF is currently possible via definition of multiple Evaluators, but that is overkill for the "defining defaults" case. Overloading functions is also a standard practice in Java, so the fact that Hive silently disallows this is actually a bug. Further, the manner by which Hive ignores this (publishing only the last iterator defined in the file) is buggy, potentially inconsistent, and wholly undocumented.