From 07d355c82dc1fe87f18ffff66fed816805fc4dee Mon Sep 17 00:00:00 2001 From: a631807682 <631807682@qq.com> Date: Wed, 15 Feb 2023 15:22:42 +0800 Subject: [PATCH] fix: ignore if not prepare stmt --- .gitignore | 1 + finisher_api.go | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 72733326..656f8900 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ _book .idea vendor .vscode +.DS_Store diff --git a/finisher_api.go b/finisher_api.go index c52efdb8..c5eecda2 100644 --- a/finisher_api.go +++ b/finisher_api.go @@ -617,7 +617,9 @@ func (db *DB) Transaction(fc func(tx *DB) error, opts ...*sql.TxOptions) (err er if committer, ok := db.Statement.ConnPool.(TxCommitter); ok && committer != nil { // nested transaction - if !db.DisableNestedTransaction && (db.PrepareStmt && !db.DisablePrepareNestedTransaction) { + if !db.DisableNestedTransaction && (!db.PrepareStmt || + (db.PrepareStmt && !db.DisablePrepareNestedTransaction)) { + err = db.SavePoint(fmt.Sprintf("sp%p", fc)).Error if err != nil { return