aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/convert.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/sql/convert.go')
-rw-r--r--src/database/sql/convert.go7
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 {