Description
Some refactoring for HIVE-5021. The current arithmetic UDFs are specialized for numeric types, and trying to change the logic in the existing UDFs looks a bit complicated. A less intrusive fix would be to create the date-time/interval arithmetic UDFs as a separate UDF class, and to make the plus/minus UDFs act as a wrapper which would invoke the numeric or interval arithmetic UDF depending on the args.