in cassandra-bigtable-migration-tools/cassandra-bigtable-proxy/translator/utils.go [328:383]
func stringToPrimitives(value string, cqlType string) (interface{}, error) {
var iv interface{}
switch cqlType {
case "int":
val, err := strconv.ParseInt(value, 10, 32)
if err != nil {
return nil, fmt.Errorf("error converting string to int32: %w", err)
}
iv = int32(val)
case "bigint":
val, err := strconv.ParseInt(value, 10, 64)
if err != nil {
return nil, fmt.Errorf("error converting string to int64: %w", err)
}
iv = val
case "float":
val, err := strconv.ParseFloat(value, 32)
if err != nil {
return nil, fmt.Errorf("error converting string to float32: %w", err)
}
iv = float32(val)
case "double":
val, err := strconv.ParseFloat(value, 64)
if err != nil {
return nil, fmt.Errorf("error converting string to float64: %w", err)
}
iv = val
case "boolean":
val, err := strconv.ParseBool(value)
if err != nil {
return nil, fmt.Errorf("error converting string to bool: %w", err)
}
iv = val
case "timestamp":
val, err := parseTimestamp(value)
if err != nil {
return nil, fmt.Errorf("error converting string to timestamp: %w", err)
}
iv = val
case "blob":
iv = value
case "text", "varchar":
iv = value
default:
return nil, fmt.Errorf("unsupported CQL type: %s", cqlType)
}
return iv, nil
}