Fix scan nil primitive type slice

This commit is contained in:
mlaflamm 2021-09-14 17:18:56 -04:00 committed by go-jet
parent b31464e491
commit fee77b695a
2 changed files with 12 additions and 8 deletions

View file

@ -222,19 +222,23 @@ func (s *scanContext) rowElem(index int) interface{} {
return value
}
func (s *scanContext) rowElemValuePtr(index int) reflect.Value {
func (s *scanContext) rowElemValuePtr(index int) *reflect.Value {
rowElem := s.rowElem(index)
rowElemValue := reflect.ValueOf(rowElem)
if rowElemValue.Kind() == reflect.Ptr {
return rowElemValue
return &rowElemValue
}
if rowElemValue.CanAddr() {
return rowElemValue.Addr()
addr := rowElemValue.Addr()
return &addr
}
newElem := reflect.New(rowElemValue.Type())
newElem.Elem().Set(rowElemValue)
return newElem
if rowElemValue.IsValid() {
newElem := reflect.New(rowElemValue.Type())
newElem.Elem().Set(rowElemValue)
return &newElem
}
return nil
}