in datahub/binaryrecord.go [344:374]
func (bRecord *binaryRecord) convertToUInt64(data interface{}) (uint64, error) {
var val uint64
switch v := data.(type) {
case Tinyint:
val = uint64(v)
case Smallint:
val = uint64(v)
case Integer:
val = uint64(v)
case Bigint:
val = uint64(v)
case Timestamp:
val = uint64(v)
case Float:
fVal := float32(v)
bits := math.Float32bits(fVal)
val = uint64(bits)
case Double:
fVal := float64(v)
val = math.Float64bits(fVal)
case Boolean:
if v {
val = uint64(1)
} else {
val = uint64(0)
}
default:
return 0, fmt.Errorf("value type[%T] not match field type", reflect.ValueOf(val))
}
return val, nil
}