MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / Exec

Method Exec

storage/storage.go:326–365  ·  view source on GitHub ↗

Exec implements write query feature.

(ctx context.Context, queries []Query)

Source from the content-addressed store, hash-verified

324
325// Exec implements write query feature.
326func (s *Storage) Exec(ctx context.Context, queries []Query) (result ExecResult, err error) {
327 if len(queries) == 0 {
328 return
329 }
330
331 var tx *sql.Tx
332 var txOptions = &sql.TxOptions{
333 ReadOnly: false,
334 }
335
336 if tx, err = s.db.BeginTx(ctx, txOptions); err != nil {
337 return
338 }
339
340 defer tx.Rollback()
341
342 for _, q := range queries {
343 // convert arguments types
344 args := make([]interface{}, len(q.Args))
345
346 for i, v := range q.Args {
347 args[i] = v
348 }
349
350 var r sql.Result
351 if r, err = tx.Exec(q.Pattern, args...); err != nil {
352 log.WithError(err).Debug("execute query failed")
353 return
354 }
355
356 var affected int64
357 affected, _ = r.RowsAffected()
358 result.RowsAffected += affected
359 result.LastInsertID, _ = r.LastInsertId()
360 }
361
362 tx.Commit()
363
364 return
365}
366
367// Close implements database safe close feature.
368func (s *Storage) Close() (err error) {

Callers 1

initStorageFunction · 0.95

Calls 8

WithErrorFunction · 0.92
BeginTxMethod · 0.80
DebugMethod · 0.80
RollbackMethod · 0.65
ExecMethod · 0.65
CommitMethod · 0.65
RowsAffectedMethod · 0.45
LastInsertIdMethod · 0.45

Tested by

no test coverage detected