in v1/src/main/java/com/google/cloud/teleport/bigtable/CassandraRowMapperFn.java [211:260]
private FieldType toBeamRowType(DataType type) {
DataType.Name n = type.getName();
switch (n) {
case TIMESTAMP:
case DATE:
return FieldType.DATETIME;
case BLOB:
return FieldType.BYTES;
case BOOLEAN:
return FieldType.BOOLEAN;
case DECIMAL:
return FieldType.DECIMAL;
case DOUBLE:
return FieldType.DOUBLE;
case FLOAT:
return FieldType.FLOAT;
case INT:
return FieldType.INT32;
case VARINT:
return FieldType.DECIMAL;
case SMALLINT:
return FieldType.INT16;
case TINYINT:
return FieldType.BYTE;
case LIST:
case SET:
DataType innerType = type.getTypeArguments().get(0);
return FieldType.array(toBeamRowType(innerType));
case MAP:
DataType kDataType = type.getTypeArguments().get(0);
DataType vDataType = type.getTypeArguments().get(1);
FieldType k = toBeamRowType(kDataType);
FieldType v = toBeamRowType(vDataType);
return FieldType.map(k, v);
case VARCHAR:
case TEXT:
case INET:
case UUID:
case TIMEUUID:
case ASCII:
return FieldType.STRING;
case BIGINT:
case COUNTER:
case TIME:
return FieldType.INT64;
default:
throw new UnsupportedOperationException("Datatype " + type.getName() + " not supported.");
}
}