public static Code parseSpannerDataType()

in v1/src/main/java/com/google/cloud/teleport/spanner/TextImportTransform.java [458:519]


    public static Code parseSpannerDataType(String columnType, Dialect dialect) {
      if (STRING_PATTERN.matcher(columnType).matches() && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.STRING;
      } else if (columnType.equalsIgnoreCase("INT64") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.INT64;
      } else if (columnType.equalsIgnoreCase("FLOAT32") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.FLOAT32;
      } else if (columnType.equalsIgnoreCase("FLOAT64") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.FLOAT64;
      } else if (columnType.equalsIgnoreCase("BOOL") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.BOOL;
      } else if (columnType.equalsIgnoreCase("DATE") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.DATE;
      } else if (columnType.equalsIgnoreCase("TIMESTAMP")
          && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.TIMESTAMP;
      } else if (columnType.equalsIgnoreCase("BYTES") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.BYTES;
      } else if (columnType.equalsIgnoreCase("NUMERIC") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.NUMERIC;
      } else if (columnType.equalsIgnoreCase("JSON") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.JSON;
      } else if (columnType.startsWith("PROTO") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.PROTO;
      } else if (columnType.startsWith("ENUM") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.ENUM;
      } else if (columnType.equalsIgnoreCase("UUID") && dialect == Dialect.GOOGLE_STANDARD_SQL) {
        return Code.UUID;
      } else if (columnType.equalsIgnoreCase("bigint") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_INT8;
      } else if (columnType.equalsIgnoreCase("real") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_FLOAT4;
      } else if (columnType.equalsIgnoreCase("double precision") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_FLOAT8;
      } else if (columnType.equalsIgnoreCase("boolean") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_BOOL;
      } else if (columnType.equalsIgnoreCase("timestamp with time zone")
          && dialect == Dialect.POSTGRESQL) {
        return Code.PG_TIMESTAMPTZ;
      } else if (columnType.equalsIgnoreCase("bytea") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_BYTEA;
      } else if (columnType.equalsIgnoreCase("numeric") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_NUMERIC;
      } else if (columnType.equalsIgnoreCase("jsonb") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_JSONB;
      } else if (columnType.toLowerCase().startsWith("character varying")
          && dialect == Dialect.POSTGRESQL) {
        return Code.PG_VARCHAR;
      } else if (columnType.equalsIgnoreCase("text") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_TEXT;
      } else if (columnType.equalsIgnoreCase("date") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_DATE;
      } else if (columnType.equalsIgnoreCase("spanner.commit_timestamp")
          && dialect == Dialect.POSTGRESQL) {
        return Code.PG_SPANNER_COMMIT_TIMESTAMP;
      } else if (columnType.equalsIgnoreCase("uuid") && dialect == Dialect.POSTGRESQL) {
        return Code.PG_UUID;
      } else {
        throw new IllegalArgumentException(
            "Unrecognized or unsupported column data type: " + columnType);
      }
    }