private FunctionInfo buildFunction()

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();
  }