优化KV相关错误提示/可以从路径直接加载数据库

This commit is contained in:
GoEdgeLab
2024-04-23 11:56:00 +08:00
parent 1f9f3d64e5
commit e18bd2a6e1
3 changed files with 57 additions and 8 deletions

View File

@@ -196,12 +196,15 @@ func (this *Table[T]) ReadTx(fn func(tx *Tx[T]) error) error {
return NewTableClosedErr(this.name)
}
var tx = NewTx[T](this, true)
tx, err := NewTx[T](this, true)
if err != nil {
return err
}
defer func() {
_ = tx.Close()
}()
err := fn(tx)
err = fn(tx)
if err != nil {
return err
}
@@ -214,12 +217,15 @@ func (this *Table[T]) WriteTx(fn func(tx *Tx[T]) error) error {
return NewTableClosedErr(this.name)
}
var tx = NewTx[T](this, false)
tx, err := NewTx[T](this, false)
if err != nil {
return err
}
defer func() {
_ = tx.Close()
}()
err := fn(tx)
err = fn(tx)
if err != nil {
return err
}
@@ -232,12 +238,15 @@ func (this *Table[T]) WriteTxSync(fn func(tx *Tx[T]) error) error {
return NewTableClosedErr(this.name)
}
var tx = NewTx[T](this, false)
tx, err := NewTx[T](this, false)
if err != nil {
return err
}
defer func() {
_ = tx.Close()
}()
err := fn(tx)
err = fn(tx)
if err != nil {
return err
}