public static String typeString()

in v1/src/main/java/com/google/cloud/teleport/spanner/common/SizedType.java [63:156]


  public static String typeString(Type type, Integer size, boolean outputAsDdlRepresentation) {
    switch (type.getCode()) {
      case BOOL:
        return "BOOL";
      case PG_BOOL:
        return "boolean";
      case INT64:
        return "INT64";
      case PG_INT8:
        return "bigint";
      case FLOAT32:
        return "FLOAT32";
      case PG_FLOAT4:
        return "real";
      case FLOAT64:
        return "FLOAT64";
      case PG_FLOAT8:
        return "double precision";
      case UUID:
        return "UUID";
      case PG_UUID:
        return "uuid";
      case STRING:
        return "STRING(" + (size == -1 ? "MAX" : Integer.toString(size)) + ")";
      case PG_VARCHAR:
        return "character varying" + (size == -1 ? "" : ("(" + Integer.toString(size) + ")"));
      case PG_TEXT:
        return "text";
      case BYTES:
        return "BYTES(" + (size == -1 ? "MAX" : Integer.toString(size)) + ")";
      case TOKENLIST:
        return "TOKENLIST";
      case PG_BYTEA:
        return "bytea";
      case DATE:
        return "DATE";
      case PG_DATE:
        return "date";
      case TIMESTAMP:
        return "TIMESTAMP";
      case PG_TIMESTAMPTZ:
        return "timestamp with time zone";
      case PG_SPANNER_COMMIT_TIMESTAMP:
        return "spanner.commit_timestamp";
      case NUMERIC:
        return "NUMERIC";
      case PG_NUMERIC:
        return "numeric";
      case JSON:
        return "JSON";
      case PG_JSONB:
        return "jsonb";
      case PG_SPANNER_TOKENLIST:
        return "spanner.tokenlist";
      case PROTO:
        if (outputAsDdlRepresentation) {
          String quote = NameUtils.identifierQuote(Dialect.GOOGLE_STANDARD_SQL);
          return quote + type.getProtoTypeFqn() + quote;
        } else {
          return "PROTO<" + type.getProtoTypeFqn() + ">";
        }
      case ENUM:
        if (outputAsDdlRepresentation) {
          String quote = NameUtils.identifierQuote(Dialect.GOOGLE_STANDARD_SQL);
          return quote + type.getProtoTypeFqn() + quote;
        } else {
          return "ENUM<" + type.getProtoTypeFqn() + ">";
        }
      case ARRAY:
        {
          Type arrayType = type.getArrayElementType();
          return "ARRAY<" + typeString(arrayType, size, outputAsDdlRepresentation) + ">";
        }
      case STRUCT:
        {
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < type.getStructFields().size(); ++i) {
            Type.StructField field = type.getStructFields().get(i);
            sb.append(i > 0 ? ", " : "")
                .append(field.getName())
                .append(" ")
                .append(typeString(field.getType(), -1, outputAsDdlRepresentation));
          }
          return "STRUCT<" + sb.toString() + ">";
        }
      case PG_ARRAY:
        {
          Type arrayType = type.getArrayElementType();
          return typeString(arrayType, size) + "[]";
        }
    }

    throw new IllegalArgumentException("Unknown type " + type);
  }