From 28331bf1983527b791e616c14afbebef26bf380e Mon Sep 17 00:00:00 2001 From: Anton Kichaev Date: Thu, 31 Aug 2023 20:58:33 +0700 Subject: [PATCH] fix(finisher_api): compose sqls and vars statement --- finisher_api.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/finisher_api.go b/finisher_api.go index f80aa6c0..80249ed7 100644 --- a/finisher_api.go +++ b/finisher_api.go @@ -36,6 +36,9 @@ func (db *DB) CreateInBatches(value interface{}, batchSize int) (tx *DB) { // the reflection length judgment of the optimized value reflectLen := reflectValue.Len() + statementSql := strings.Builder{} + statementVars := make([]interface{}, 0, reflectLen) + callFc := func(tx *DB) error { for i := 0; i < reflectLen; i += batchSize { ends := i + batchSize @@ -49,6 +52,11 @@ func (db *DB) CreateInBatches(value interface{}, batchSize int) (tx *DB) { if subtx.Error != nil { return subtx.Error } + + statementSql.WriteString(subtx.Statement.SQL.String()) + statementSql.WriteString(";") + statementVars = append(statementVars, subtx.Statement.Vars...) + rowsAffected += subtx.RowsAffected } return nil @@ -59,6 +67,8 @@ func (db *DB) CreateInBatches(value interface{}, batchSize int) (tx *DB) { } else { tx.AddError(tx.Transaction(callFc)) } + tx.Statement.SQL = statementSql + tx.Statement.Vars = statementVars tx.RowsAffected = rowsAffected default: