Add ability to check if db transaction is closed
This commit is contained in:
parent
1bf7f5c7e4
commit
f931341a95
4 changed files with 22 additions and 0 deletions
|
@ -28,6 +28,7 @@ import (
|
||||||
// TX is a distributed database transaction.
|
// TX is a distributed database transaction.
|
||||||
type TX struct {
|
type TX struct {
|
||||||
ds *DS
|
ds *DS
|
||||||
|
do bool
|
||||||
ck []byte
|
ck []byte
|
||||||
tx *bolt.Tx
|
tx *bolt.Tx
|
||||||
bu *bolt.Bucket
|
bu *bolt.Bucket
|
||||||
|
@ -329,6 +330,10 @@ func (tx *TX) RDel(beg, end []byte, max uint64) (err error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (tx *TX) Done() (val bool) {
|
||||||
|
return tx.do
|
||||||
|
}
|
||||||
|
|
||||||
func (tx *TX) Close() (err error) {
|
func (tx *TX) Close() (err error) {
|
||||||
return tx.Rollback()
|
return tx.Rollback()
|
||||||
}
|
}
|
||||||
|
@ -338,6 +343,7 @@ func (tx *TX) Cancel() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Commit() (err error) {
|
func (tx *TX) Commit() (err error) {
|
||||||
|
tx.do = true
|
||||||
if tx.tx.Writable() {
|
if tx.tx.Writable() {
|
||||||
return tx.tx.Commit()
|
return tx.tx.Commit()
|
||||||
}
|
}
|
||||||
|
@ -345,6 +351,7 @@ func (tx *TX) Commit() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Rollback() (err error) {
|
func (tx *TX) Rollback() (err error) {
|
||||||
|
tx.do = true
|
||||||
return tx.tx.Rollback()
|
return tx.tx.Rollback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import (
|
||||||
// TX is a distributed database transaction.
|
// TX is a distributed database transaction.
|
||||||
type TX struct {
|
type TX struct {
|
||||||
ds *DS
|
ds *DS
|
||||||
|
do bool
|
||||||
ck []byte
|
ck []byte
|
||||||
tx *sql.Tx
|
tx *sql.Tx
|
||||||
}
|
}
|
||||||
|
@ -310,6 +311,10 @@ func (tx *TX) RDel(beg, end []byte, max uint64) (err error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (tx *TX) Done() (val bool) {
|
||||||
|
return tx.do
|
||||||
|
}
|
||||||
|
|
||||||
func (tx *TX) Close() (err error) {
|
func (tx *TX) Close() (err error) {
|
||||||
return tx.Rollback()
|
return tx.Rollback()
|
||||||
}
|
}
|
||||||
|
@ -319,10 +324,12 @@ func (tx *TX) Cancel() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Commit() (err error) {
|
func (tx *TX) Commit() (err error) {
|
||||||
|
tx.do = true
|
||||||
return tx.tx.Commit()
|
return tx.tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Rollback() (err error) {
|
func (tx *TX) Rollback() (err error) {
|
||||||
|
tx.do = true
|
||||||
return tx.tx.Rollback()
|
return tx.tx.Rollback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import (
|
||||||
// TX is a distributed database transaction.
|
// TX is a distributed database transaction.
|
||||||
type TX struct {
|
type TX struct {
|
||||||
ds *DS
|
ds *DS
|
||||||
|
do bool
|
||||||
ck []byte
|
ck []byte
|
||||||
tx *sql.Tx
|
tx *sql.Tx
|
||||||
}
|
}
|
||||||
|
@ -319,6 +320,10 @@ func (tx *TX) RDel(beg, end []byte, max uint64) (err error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (tx *TX) Done() (val bool) {
|
||||||
|
return tx.do
|
||||||
|
}
|
||||||
|
|
||||||
func (tx *TX) Close() (err error) {
|
func (tx *TX) Close() (err error) {
|
||||||
return tx.Rollback()
|
return tx.Rollback()
|
||||||
}
|
}
|
||||||
|
@ -328,10 +333,12 @@ func (tx *TX) Cancel() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Commit() (err error) {
|
func (tx *TX) Commit() (err error) {
|
||||||
|
tx.do = true
|
||||||
return tx.tx.Commit()
|
return tx.tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *TX) Rollback() (err error) {
|
func (tx *TX) Rollback() (err error) {
|
||||||
|
tx.do = true
|
||||||
return tx.tx.Rollback()
|
return tx.tx.Rollback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ type TX interface {
|
||||||
MDel(...[]byte) error
|
MDel(...[]byte) error
|
||||||
PDel([]byte) error
|
PDel([]byte) error
|
||||||
RDel([]byte, []byte, uint64) error
|
RDel([]byte, []byte, uint64) error
|
||||||
|
Done() bool
|
||||||
Close() error
|
Close() error
|
||||||
Cancel() error
|
Cancel() error
|
||||||
Commit() error
|
Commit() error
|
||||||
|
|
Loading…
Reference in a new issue