MCPcopy Index your code
hub / github.com/bytebase/bytebase / executeInTransactionMode

Method executeInTransactionMode

backend/plugin/db/spanner/spanner.go:198–228  ·  view source on GitHub ↗
(ctx context.Context, stmts []string, opts db.ExecuteOptions)

Source from the content-addressed store, hash-verified

196}
197
198func (d *Driver) executeInTransactionMode(ctx context.Context, stmts []string, opts db.ExecuteOptions) (int64, error) {
199 var rowCount int64
200
201 // Log transaction start
202 opts.LogTransactionControl(storepb.TaskRunLog_TransactionControl_BEGIN, "")
203
204 committed := false
205 if _, err := d.client.ReadWriteTransaction(ctx, func(ctx context.Context, rwt *spanner.ReadWriteTransaction) error {
206 spannerStmts := []spanner.Statement{}
207 for _, stmt := range stmts {
208 spannerStmts = append(spannerStmts, spanner.NewStatement(stmt))
209 }
210 counts, err := rwt.BatchUpdate(ctx, spannerStmts)
211 if err != nil {
212 return err
213 }
214 for _, count := range counts {
215 rowCount += count
216 }
217 committed = true
218 return nil
219 }); err != nil {
220 opts.LogTransactionControl(storepb.TaskRunLog_TransactionControl_ROLLBACK, "")
221 return 0, err
222 }
223
224 if committed {
225 opts.LogTransactionControl(storepb.TaskRunLog_TransactionControl_COMMIT, "")
226 }
227 return rowCount, nil
228}
229
230func (d *Driver) executeInAutoCommitMode(ctx context.Context, stmts []string, _ db.ExecuteOptions) (int64, error) {
231 var rowCount int64

Callers 1

ExecuteMethod · 0.95

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 1

LogTransactionControlMethod · 0.80

Tested by

no test coverage detected