Description
If IsBuildInFunction returns false, then find_udf should return true
directly, which means that the statement contains UDF. Otherwise, it
should continue to recursively determine the args of FuncExpr through
expression_tree_walker, because FuncExpr may contain recursive calls.
For example, suppose "A" is an UDF, then "select A::text" meets this
situation. The outter FuncExpr is "text" and the inner FuncExpr is "A".