in zetasql-toolkit-bigquery/src/main/java/com/google/zetasql/toolkit/catalog/bigquery/BigQueryAPIResourceProvider.java [419:440]
private FunctionInfo buildFunction(Routine routine) {
assert routine.getRoutineType().equals(BigQueryAPIRoutineType.UDF.getLabel());
RoutineId routineId = routine.getRoutineId();
BigQueryReference bigQueryReference = BigQueryReference.from(routineId);
List<FunctionArgumentType> arguments = this.parseRoutineArguments(routine.getArguments());
FunctionArgumentType returnType =
new FunctionArgumentType(
this.convertBigQueryDataTypeToZetaSQLType(routine.getReturnType()));
FunctionSignature signature = new FunctionSignature(returnType, arguments, -1);
return FunctionInfo.newBuilder()
.setNamePath(bigQueryReference.getNamePath())
.setGroup("UDF")
.setMode(Mode.SCALAR)
.setSignatures(ImmutableList.of(signature))
.setLanguage(FunctionInfo.Language.valueOfOrUnspecified(routine.getLanguage()))
.setBody(Optional.ofNullable(routine.getBody()))
.build();
}