in cassandra-bigtable-migration-tools/cassandra-bigtable-proxy/translator/utils.go [2185:2229]
func DataConversionInInsertionIfRequired(value interface{}, pv primitive.ProtocolVersion, cqlType string, responseType string) (interface{}, error) {
switch cqlType {
case "boolean":
switch responseType {
case "string":
val, err := strconv.ParseBool(value.(string))
if err != nil {
return nil, err
}
if val {
return "1", nil
} else {
return "0", nil
}
default:
return EncodeBool(value, pv)
}
case "bigint":
switch responseType {
case "string":
val, err := strconv.ParseInt(value.(string), 10, 64)
if err != nil {
return nil, err
}
stringVal := strconv.FormatInt(val, 10)
return stringVal, nil
default:
return EncodeBigInt(value, pv)
}
case "int":
switch responseType {
case "string":
val, err := strconv.Atoi(value.(string))
if err != nil {
return nil, err
}
stringVal := strconv.Itoa(val)
return stringVal, nil
default:
return EncodeInt(value, pv)
}
default:
return value, nil
}
}