in snapshot/mysql.go [210:255]
func driverTypeToGoTypeLow(p interface{}, schema *types.ColumnSchema) (v interface{}, size int64) {
switch f := p.(type) {
case *sql.NullInt64:
if f.Valid {
if schema.DataType != "bigint" {
v = int32(f.Int64)
size = 4
} else {
v = f.Int64
size = 8
}
}
case *sql.NullBool:
if f.Valid {
v = f.Bool
size = int64(1)
}
case *sql.NullString:
if f.Valid {
v = f.String
size = int64(len(f.String))
}
case *sql.NullTime:
if f.Valid {
v = f.Time
size = 20
}
case *sql.NullFloat64:
if f.Valid {
if schema.DataType == "float" {
v = float32(f.Float64)
size = 4
} else {
v = f.Float64
size = 8
}
}
case *sql.RawBytes:
if f != nil {
b := []byte(*f)
v = b
size = int64(len(b))
}
}
return
}