Your Question
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
PrepareStmt: true,
})
newDb := db.Session(&gorm.Session{
PrepareStmt: false,
})
db.Session set PrepareStmt: false is invalid,newDb PrepareStmt is still true
The document you expected this should be explained
Performance - GORM - The fantastic ORM library for Golang, aims to be developer friendly.
Expected answer
I think newDb PrepareStmt should is false
Comment From: Mr-houzi
add: 1. version 1.22.4; 2. I find it https://github.com/go-gorm/gorm/blob/e5894ca44951fecc3b3f31f1aa46df7de6024b04/gorm.go#L244-L255
Comment From: li-jin-gou
hello @Mr-houzi you can look this doc https://gorm.cn/docs/session.html#PrepareStmt
Comment From: Mr-houzi
hello @Mr-houzi you can look this doc https://gorm.cn/docs/session.html#PrepareStmt
I looked it。
case 1
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
PrepareStmt: false, // look it
})
newDb := db.Session(&gorm.Session{
PrepareStmt: true,
})
case 2
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
PrepareStmt: true,
})
newDb := db.Session(&gorm.Session{
PrepareStmt: false,
})
case 1 is valid, (PrepareStmt from false to true), case 2 is invalid (PrepareStmt from true not to false) @li-jin-gou
Comment From: li-jin-gou
@Mr-houzi the same issue is https://github.com/go-gorm/gorm/issues/4991