GORM Playground Link
https://github.com/go-gorm/playground/pull/504
Description
There seems to have been a regression from v1.23.5 to v1.23.6 where loading objects with a pointer struct embed will result in that pointer struct being duplicated across all objects loaded. The commit that caused the regression seems to be this: https://github.com/go-gorm/gorm/commit/d01de7232b46987e239ef19a89d9ab192f453894. There are already two comments on this commit mentioning this behavior.
Can we expect a fix to change this behavior back to not duplicating embed structs across object loads?
Comment From: a631807682
related to https://github.com/go-gorm/gorm/issues/5431
Comment From: ianeal
I've also observed this issue which is blocking us from upgrading.
Comment From: ianeal
@jinzhu Any update on this one? I tried with gorm v1.23.9 and the problem still exists. I can put together a sample program if that would help.
Comment From: tab1293
@jinzhu any thoughts around the behavior change introduced with this update?
Comment From: miraclesu
@jinzhu I agree with @a631807682 https://github.com/go-gorm/gorm/issues/5431#issuecomment-1157263863, revert #5388 solves this problem.
reproduction code
type User struct {
*Embedded
}
type Embedded struct {
ID int
Name string
}
func main() {
db.AutoMigrate(&User{})
db.Create([]User{
{&Embedded{
ID: 1,
Name: "name1",
}},
{&Embedded{
ID: 2,
Name: "name2",
}},
})
users := make([]User, 0, 2)
db.Find(&users)
// github.com/davecgh/go-spew/spew
spew.Dump(users)
}
output
([]main.User) (len=2 cap=2) {
(main.User) {
Embedded: (*main.Embedded)(0xc0014a15f0)({
ID: (int) 2,
Name: (string) (len=5) "name2"
})
},
(main.User) {
Embedded: (*main.Embedded)(0xc0014a15f0)({
ID: (int) 2,
Name: (string) (len=5) "name2"
})
}
}
Comment From: tsipo
@jinzhu any updates on a fix for this one (or a plan when to fix it)? We are still holding back to v1.23.5 (and the corresponding drivers), and this issue is blocking us from moving forward with new releases. Thanks!
Comment From: yyoshiki41
Duplicated issues: https://github.com/go-gorm/gorm/issues/5838