diff --git a/scan.go b/scan.go index 0a26ce4b..12a77862 100644 --- a/scan.go +++ b/scan.go @@ -65,7 +65,6 @@ func (db *DB) scanIntoStruct(rows Rows, reflectValue reflect.Value, values []int db.RowsAffected++ db.AddError(rows.Scan(values...)) - joinedSchemaMap := make(map[*schema.Field]interface{}) for idx, field := range fields { if field == nil { @@ -241,9 +240,8 @@ func Scan(rows Rows, db *DB, mode ScanMode) { switch reflectValue.Kind() { case reflect.Slice, reflect.Array: var ( - elem reflect.Value - recyclableStruct = reflect.New(reflectValueType) - isArrayKind = reflectValue.Kind() == reflect.Array + elem reflect.Value + isArrayKind = reflectValue.Kind() == reflect.Array ) if !update || reflectValue.Len() == 0 { @@ -275,11 +273,7 @@ func Scan(rows Rows, db *DB, mode ScanMode) { } } } else { - if isPtr && db.RowsAffected > 0 { - elem = reflect.New(reflectValueType) - } else { - elem = recyclableStruct - } + elem = reflect.New(reflectValueType) } db.scanIntoStruct(rows, elem, values, fields, joinFields) diff --git a/tests/embedded_struct_test.go b/tests/embedded_struct_test.go index b2957f3a..ae69baca 100644 --- a/tests/embedded_struct_test.go +++ b/tests/embedded_struct_test.go @@ -89,9 +89,9 @@ func TestEmbeddedStruct(t *testing.T) { } expectAuthors := []string{"Edward", "George"} for i, post := range egPosts { - t.Log(i, post) + t.Log(i, post.Author) if want := expectAuthors[i]; post.Author.Name != want { - t.Errorf("expected author %s got %s", post.Author.Name, want) + t.Errorf("expected author %s got %s", want, post.Author.Name) } }