NVL UDF implementation changes

The NVL user defined function (UDF) is used to replace a NULL value with any value other than NULL. The implementation of the NVL function is the same as the implementation of the COALESCE function and therefore is retired.

Before upgrade to 7.1.1

Prior to this change, the NVL and COALESCE function were both used for the same purpose - to replace a NULL value with a non-NULL value. Both the functions were compiled separately.

After upgrade to 7.1.1

With this change, the NVL function is compiled to COALESCE, which is reflected in the execution plan generated using the EXPLAIN command. The optimizations that are performed on the COALESCE function are also performed on the NVL calls.

For more information, see HIVE-20961.