private FunctionArgumentType parseRoutineArgument()

in zetasql-toolkit-bigquery/src/main/java/com/google/zetasql/toolkit/catalog/bigquery/BigQueryAPIResourceProvider.java [357:375]


  private FunctionArgumentType parseRoutineArgument(RoutineArgument argument) {
    ProcedureArgumentMode procedureArgumentMode =
        argument.getMode() == null
            ? ProcedureArgumentMode.NOT_SET
            : ProcedureArgumentMode.valueOf(argument.getMode());

    FunctionArgumentTypeOptions options =
        FunctionArgumentTypeOptions.builder()
            .setArgumentName(argument.getName(), NamedArgumentKind.POSITIONAL_ONLY)
            .setProcedureArgumentMode(procedureArgumentMode)
            .build();

    if (Objects.equals(argument.getKind(), "ANY_TYPE")) {
      return new FunctionArgumentType(SignatureArgumentKind.ARG_TYPE_ARBITRARY, options, 1);
    } else {
      Type zetaSqlDataType = this.convertBigQueryDataTypeToZetaSQLType(argument.getDataType());
      return new FunctionArgumentType(zetaSqlDataType, options, 1);
    }
  }