func processCollectionByType()

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)
	}
}