35 lines
526 B
Go
35 lines
526 B
Go
package mysqlite
|
|
|
|
import "log"
|
|
|
|
type Tx struct {
|
|
db *Db
|
|
}
|
|
|
|
func (d *Db) Begin() (*Tx, error) {
|
|
err := d.QuerySingle("BEGIN")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Tx{db: d}, nil
|
|
}
|
|
|
|
func (tx *Tx) Commit() error {
|
|
return tx.Query("COMMIT").Exec()
|
|
}
|
|
|
|
func (tx *Tx) Rollback() error {
|
|
return tx.Query("ROLLBACK").Exec()
|
|
}
|
|
|
|
func (tx *Tx) MustRollback() {
|
|
err := tx.Rollback()
|
|
if err != nil {
|
|
log.Panicf("error doing rollback: %w", err)
|
|
}
|
|
}
|
|
|
|
func (tx *Tx) Query(query string) *Query {
|
|
return tx.db.Query(query)
|
|
}
|