private static StandardSQLTypeName mapCassandraToBigQueryType()

in v2/astradb-to-bigquery/src/main/java/com/google/cloud/teleport/v2/astradb/transforms/AstraDbToBigQueryMappingFn.java [113:161]


  private static StandardSQLTypeName mapCassandraToBigQueryType(DataType type) {
    switch (type.getProtocolCode()) {
      case ProtocolConstants.DataType.UUID:
      case ProtocolConstants.DataType.VARCHAR:
      case ProtocolConstants.DataType.ASCII:
      case ProtocolConstants.DataType.TIMEUUID:
      case ProtocolConstants.DataType.INET:
        return StandardSQLTypeName.STRING;

      case ProtocolConstants.DataType.VARINT:
      case ProtocolConstants.DataType.DECIMAL:
        return StandardSQLTypeName.NUMERIC;

      case ProtocolConstants.DataType.COUNTER:
      case ProtocolConstants.DataType.BIGINT:
      case ProtocolConstants.DataType.TIME:
      case ProtocolConstants.DataType.INT:
      case ProtocolConstants.DataType.SMALLINT:
      case ProtocolConstants.DataType.TINYINT:
      case ProtocolConstants.DataType.DURATION:
        return StandardSQLTypeName.INT64;

      case ProtocolConstants.DataType.DOUBLE:
      case ProtocolConstants.DataType.FLOAT:
        return StandardSQLTypeName.FLOAT64;

      case ProtocolConstants.DataType.DATE:
        return StandardSQLTypeName.DATETIME;

      case ProtocolConstants.DataType.TIMESTAMP:
        return StandardSQLTypeName.TIMESTAMP;

      case ProtocolConstants.DataType.BLOB:
        return StandardSQLTypeName.BYTES;

      case ProtocolConstants.DataType.BOOLEAN:
        return StandardSQLTypeName.BOOL;

      case ProtocolConstants.DataType.CUSTOM:
        if (type instanceof CqlVectorType) {
          return StandardSQLTypeName.BYTES;
        } else {
          throw new IllegalArgumentException("Invalid custom type " + type.asCql(false, false));
        }
      default:
        throw new IllegalArgumentException(
            "Cannot Map Cassandra Type " + type.getProtocolCode() + " to Beam Type");
    }
  }