Enhancement
We already have a function test framework for function unit test, however, it just use executeFunction to build and execute the function, while when we build a function in DAGExpressionAnalyzer, we may have rewrite so the orignal function will be rewrite to some other functions, for exmaple:
ifnull(col1, col2)
is rewriten to
multiif(isnull(col1), col2, assumeNotNull(col1))
in buildIfNullFunction
We need to enhance our function test framework to ensure that function unit test follow the same logic in DAGExpressionAnalyzer when building function, otherwise unit test may be useless, take #4829 for example.