diff options
Diffstat (limited to 'src/database/sql/convert.go')
| -rw-r--r-- | src/database/sql/convert.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/database/sql/convert.go b/src/database/sql/convert.go index c0b38a2494..bba5a8843a 100644 --- a/src/database/sql/convert.go +++ b/src/database/sql/convert.go @@ -203,11 +203,16 @@ func convertAssign(dest, src interface{}) error { } dv := reflect.Indirect(dpv) - if dv.Kind() == sv.Kind() { + if sv.IsValid() && sv.Type().AssignableTo(dv.Type()) { dv.Set(sv) return nil } + if dv.Kind() == sv.Kind() && sv.Type().ConvertibleTo(dv.Type()) { + dv.Set(sv.Convert(dv.Type())) + return nil + } + switch dv.Kind() { case reflect.Ptr: if src == nil { |
