Don't close prepared stmt for normal db error
This commit is contained in:
parent
57603882ea
commit
0d6c5345f3
@ -7,7 +7,7 @@ require (
|
|||||||
github.com/jinzhu/now v1.1.5
|
github.com/jinzhu/now v1.1.5
|
||||||
github.com/lib/pq v1.10.9
|
github.com/lib/pq v1.10.9
|
||||||
github.com/stretchr/testify v1.9.0
|
github.com/stretchr/testify v1.9.0
|
||||||
gorm.io/driver/mysql v1.5.5
|
gorm.io/driver/mysql v1.5.6
|
||||||
gorm.io/driver/postgres v1.5.7
|
gorm.io/driver/postgres v1.5.7
|
||||||
gorm.io/driver/sqlite v1.5.5
|
gorm.io/driver/sqlite v1.5.5
|
||||||
gorm.io/driver/sqlserver v1.5.3
|
gorm.io/driver/sqlserver v1.5.3
|
||||||
|
@ -126,33 +126,6 @@ func TestPreparedStmtDeadlock(t *testing.T) {
|
|||||||
AssertEqual(t, sqlDB.Stats().InUse, 0)
|
AssertEqual(t, sqlDB.Stats().InUse, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPreparedStmtError(t *testing.T) {
|
|
||||||
tx, err := OpenTestConnection(&gorm.Config{})
|
|
||||||
AssertEqual(t, err, nil)
|
|
||||||
|
|
||||||
sqlDB, _ := tx.DB()
|
|
||||||
sqlDB.SetMaxOpenConns(1)
|
|
||||||
|
|
||||||
tx = tx.Session(&gorm.Session{PrepareStmt: true})
|
|
||||||
|
|
||||||
wg := sync.WaitGroup{}
|
|
||||||
for i := 0; i < 10; i++ {
|
|
||||||
wg.Add(1)
|
|
||||||
go func() {
|
|
||||||
// err prepare
|
|
||||||
tag := Tag{Locale: "zh"}
|
|
||||||
tx.Table("users").Find(&tag)
|
|
||||||
wg.Done()
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
wg.Wait()
|
|
||||||
|
|
||||||
conn, ok := tx.ConnPool.(*gorm.PreparedStmtDB)
|
|
||||||
AssertEqual(t, ok, true)
|
|
||||||
AssertEqual(t, len(conn.Stmts), 0)
|
|
||||||
AssertEqual(t, sqlDB.Stats().InUse, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPreparedStmtInTransaction(t *testing.T) {
|
func TestPreparedStmtInTransaction(t *testing.T) {
|
||||||
user := User{Name: "jinzhu"}
|
user := User{Name: "jinzhu"}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user