func ConvertValue()

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