diff --git a/util/sqlutil/main.go b/util/sqlutil/main.go index 4d9abed1e8fef29dfb8999087787c0dbd27937a0..6ff49a97043b914f72a7cbe8c05b6ebdfa43eb92 100644 --- a/util/sqlutil/main.go +++ b/util/sqlutil/main.go @@ -109,7 +109,11 @@ func (self *T) fetchResult(itemt reflect.Type, rows *sql.Rows, columns []string) // Destination is a map. case reflect.Map: if cv.Type() != itemt.Elem() { - cv, _ = util.StringToType(svalue, itemt.Elem()) + if itemt.Elem().Kind() == reflect.Interface { + cv, _ = util.StringToType(svalue, cv.Type()) + } else { + cv, _ = util.StringToType(svalue, itemt.Elem()) + } } if cv.IsValid() { item.SetMapIndex(reflect.ValueOf(column), cv)