in datahub/types.go [341:402]
func castValueFromString(str string, ft FieldType) (DataType, error) {
switch ft {
case BIGINT:
v, err := strconv.ParseInt(str, 10, 64)
if err == nil {
return Bigint(v), nil
}
return nil, err
case STRING:
return String(str), nil
case BOOLEAN:
v, err := strconv.ParseBool(str)
if err == nil {
return Boolean(v), nil
}
return nil, err
case DOUBLE:
v, err := strconv.ParseFloat(str, 64)
if err == nil {
return Double(v), nil
}
return nil, err
case TIMESTAMP:
v, err := strconv.ParseUint(str, 10, 64)
if err == nil {
return Timestamp(v), nil
}
return nil, err
case DECIMAL:
v, err := decimal.NewFromString(str)
if err == nil {
return Decimal(v), nil
}
return nil, err
case INTEGER:
v, err := strconv.ParseInt(str, 10, 32)
if err == nil {
return Integer(v), nil
}
return nil, err
case FLOAT:
v, err := strconv.ParseFloat(str, 32)
if err == nil {
return Float(v), nil
}
return nil, err
case TINYINT:
v, err := strconv.ParseInt(str, 10, 32)
if err == nil {
return Tinyint(v), nil
}
return nil, err
case SMALLINT:
v, err := strconv.ParseInt(str, 10, 32)
if err == nil {
return Smallint(v), nil
}
return nil, err
default:
return nil, fmt.Errorf("not support field type %s", string(ft))
}
}