in cassandra-bigtable-migration-tools/cassandra-bigtable-proxy/translator/utils.go [553:600]
func processCollectionByType(val, colFamily, cqlType string, prependColumns []string, complexMeta map[string]*ComplexOperation) ([]Column, []interface{}, error) {
switch cqlType {
case "map<varchar,varchar>", "map<timestamp,varchar>":
return processMapCollectionRaw(val, colFamily, "varchar")
case "map<varchar,int>", "map<timestamp,int>":
return processMapCollectionRaw(val, colFamily, "int")
case "map<varchar,bigint>", "map<timestamp,bigint>":
return processMapCollectionRaw(val, colFamily, "bigint")
case "map<varchar,timestamp>", "map<timestamp,timestamp>":
return processMapCollectionRaw(val, colFamily, "timestamp")
case "map<varchar,float>", "map<timestamp,float>":
return processMapCollectionRaw(val, colFamily, "float")
case "map<varchar,double>", "map<timestamp,double>":
return processMapCollectionRaw(val, colFamily, "double")
case "map<varchar,boolean>", "map<timestamp,boolean>":
return processMapCollectionRaw(val, colFamily, "boolean")
case "set<varchar>":
return processSetCollectionRaw(val, colFamily, "varchar")
case "set<boolean>":
return processSetCollectionRaw(val, colFamily, "boolean")
case "set<int>":
return processSetCollectionRaw(val, colFamily, "int")
case "set<bigint>":
return processSetCollectionRaw(val, colFamily, "bigint")
case "set<timestamp>":
return processSetCollectionRaw(val, colFamily, "timestamp")
case "set<float>":
return processSetCollectionRaw(val, colFamily, "float")
case "set<double>":
return processSetCollectionRaw(val, colFamily, "double")
case "list<varchar>":
return processListCollectionRaw(val, colFamily, "varchar", prependColumns, complexMeta)
case "list<int>":
return processListCollectionRaw(val, colFamily, "int", prependColumns, complexMeta)
case "list<bigint>":
return processListCollectionRaw(val, colFamily, "bigint", prependColumns, complexMeta)
case "list<boolean>":
return processListCollectionRaw(val, colFamily, "boolean", prependColumns, complexMeta)
case "list<float>":
return processListCollectionRaw(val, colFamily, "float", prependColumns, complexMeta)
case "list<double>":
return processListCollectionRaw(val, colFamily, "double", prependColumns, complexMeta)
case "list<timestamp>":
return processListCollectionRaw(val, colFamily, "timestamp", prependColumns, complexMeta)
default:
return nil, nil, fmt.Errorf("unsupported CQL type: %s", cqlType)
}
}