aboutsummaryrefslogtreecommitdiff
path: root/db_test.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-05-27 11:31:55 -0600
committerBen Johnson <benbjohnson@yahoo.com>2014-05-27 11:31:55 -0600
commit92a9f2e200e83fd0b3ddef177f9a454b0273c17e (patch)
treefe1fdb4aed24d100cac337e18afce207674fd65e /db_test.go
parentMerge branch 'master' of https://github.com/boltdb/bolt (diff)
downloaddedo-92a9f2e200e83fd0b3ddef177f9a454b0273c17e.tar.gz
dedo-92a9f2e200e83fd0b3ddef177f9a454b0273c17e.tar.xz
Remove DB.Check(). Allow read-only Tx.Check().
This commit removes the DB.Check() function and instead makes the user decide whether a transaction should be writable or read-only. Tx.Check() is not safe to use concurrently on a read-only transaction, however, it significantly improves the performance of it.
Diffstat (limited to 'db_test.go')
-rw-r--r--db_test.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/db_test.go b/db_test.go
index b85f8cb..06accd3 100644
--- a/db_test.go
+++ b/db_test.go
@@ -53,12 +53,12 @@ func TestOpen_Check(t *testing.T) {
withTempPath(func(path string) {
db, err := Open(path, 0666)
assert.NoError(t, err)
- assert.NoError(t, db.Check())
+ assert.NoError(t, db.View(func(tx *Tx) error { return tx.Check() }))
db.Close()
db, err = Open(path, 0666)
assert.NoError(t, err)
- assert.NoError(t, db.Check())
+ assert.NoError(t, db.View(func(tx *Tx) error { return tx.Check() }))
db.Close()
})
}
@@ -463,7 +463,10 @@ func withOpenDB(fn func(*DB, string)) {
// mustCheck runs a consistency check on the database and panics if any errors are found.
func mustCheck(db *DB) {
- if err := db.Check(); err != nil {
+ err := db.Update(func(tx *Tx) error {
+ return tx.Check()
+ })
+ if err != nil {
// Copy db off first.
var path = tempfile()
db.View(func(tx *Tx) error { return tx.CopyFile(path, 0600) })