in cassandra-bigtable-migration-tools/cassandra-bigtable-proxy/testing/compliance/utility/utils.go [81:209]
func ConvertValue(t *testing.T, param map[string]any, fileName, query string) any {
value := param["value"]
datatype := param["datatype"].(string)
switch datatype {
case "string", "text":
return fmt.Sprintf("%v", value)
case "bigint":
result, err := toInt64(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "int":
result, err := toInt(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "double":
result, err := toFloat64(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "float":
result, err := toFloat32(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "boolean":
result, err := toBool(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "bigintTimestamp":
result, err := toBigIntTimestamp(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "timestamp":
result, err := toTimestamp(value)
if err != nil {
LogTestFatal(t, fmt.Sprintf("Error in file '%s' for query '%s': %v", fileName, query, err))
return nil
}
return result
case "map<text,text>":
return toMapStringString(value)
case "map<text,int>":
return toMapStringInt(value)
case "map<text,bigint>":
return toMapStringInt64(value)
case "map<text,boolean>":
return toMapStringBool(value)
case "map<text,timestamp>":
return toMapStringTimestamp(value)
case "map<text,float>":
return toMapStringFloat32(value)
case "map<text,double>":
return toMapStringFloat64(value)
case "map<timestamp,text>":
return toMapTimestampString(value)
case "map<timestamp,boolean>":
return toMapTimestampBool(value)
case "map<timestamp,float>":
return toMapTimestampFloat32(value)
case "map<timestamp,double>":
return toMapTimestampFloat64(value)
case "map<timestamp,bigint>":
return toMapTimestampInt64(value)
case "map<timestamp,timestamp>":
return toMapTimestampTimestamp(value)
case "map<timestamp,int>":
return toMapTimestampInt(value)
case "set<text>":
return toSetString(value)
case "set<boolean>":
return toSetBool(value)
case "set<int>":
return toSetInt(value)
case "set<bigint>":
return toSetInt64(value)
case "set<float>":
return toSetFloat32(value)
case "set<double>":
return toSetFloat64(value)
case "set<timestamp>":
return toSetTimestamp(value)
case "list<text>":
return toSetString(value)
case "list<boolean>":
return toSetBool(value)
case "list<int>":
return toSetInt(value)
case "list<bigint>":
return toSetInt64(value)
case "list<float>":
return toSetFloat32(value)
case "list<double>":
return toSetFloat64(value)
case "list<timestamp>":
return toSetTimestamp(value)
case "createlist<text>":
return ConvertCSVToList(value.(string))
case "createlist<timestamp>":
return ConvertCSVToList(value.(string))
case "createlist<bigint>":
return ConvertCSVToInt64List(value.(string))
case "createlist<int>":
return ConvertCSVToIntList(value.(string))
case "createlist<float>":
return ConvertCSVToFloat32List(value.(string))
case "createlist<double>":
return ConvertCSVToFloat64List(value.(string))
default:
LogTestFatal(t, fmt.Sprintf("There is no valid data, %s, type provided in the `%s` file for the query: `%s`", datatype, fileName, query))
return nil
}
}