presto-main/src/main/java/io/prestosql/sql/relational/SqlToRowExpressionTranslator.java/SqlToRowExpressionTranslator/visitFunctionCall
class SqlToRowExpressionTranslator:        @Override
        protected RowExpression visitFunctionCall(FunctionCall node, Void context)
        {
            List<RowExpression> arguments = node.getArguments().stream()
                    .map(value -> process(value, context))
                    .collect(toImmutableList());

            ResolvedFunction resolvedFunction = ResolvedFunction.fromQualifiedName(node.getName())
                    .orElseThrow(() -> new IllegalArgumentException("function call has not been resolved: " + node));

            return new CallExpression(resolvedFunction, getType(node), arguments);
        }