private static IFunctionInfo getScalarFunctionInfo(MetadataTransactionContext txnCtx, Function function)
throws AlgebricksException {
FunctionIdentifier fid =
new FunctionIdentifier(function.getDataverseName(), function.getName(), function.getArity());
IResultTypeComputer typeComputer = getResultTypeComputer(txnCtx, function);
List<IAType> arguments = new ArrayList<>();
IAType returnType;
List<String> argumentTypes = function.getArguments();
for (String argumentType : argumentTypes) {
arguments.add(getTypeInfo(argumentType, txnCtx, function));
}
returnType = getTypeInfo(function.getReturnType(), txnCtx, function);
return new ExternalScalarFunctionInfo(fid.getNamespace(), fid.getName(), fid.getArity(), returnType,
function.getFunctionBody(), function.getLanguage(), arguments, typeComputer);
}