syncbase: various small additions and enhancements
- stop returning error from Table.Scan
- make app/db/table delete idempotent
- implement Table.DeleteRowRange
- add basic perms check to Table.Scan
- various comment and TODO tweaks
- drop WrapError, use verror.Convert
Change-Id: Ib3d34c14751d39c2c7e324945ab30e347cd07e30
diff --git a/services/syncbase/store/leveldb/db.go b/services/syncbase/store/leveldb/db.go
index 62250c6..eb8507c 100644
--- a/services/syncbase/store/leveldb/db.go
+++ b/services/syncbase/store/leveldb/db.go
@@ -31,18 +31,15 @@
writeOptions *C.leveldb_writeoptions_t
err error
- // TODO(rogulenko): decide whether we need to make a defensive copy of
- // keys/values used by transactions.
- // txmu protects transaction-related variables below. It is also held during
- // commit.
- // txmu must always be acquired before mu.
+ // txmu protects the transaction-related variables below, and is also held
+ // during transaction commits. It must always be acquired before mu.
txmu sync.Mutex
// txEvents is a queue of create/commit transaction events.
txEvents *list.List
txSequenceNumber uint64
// txTable is a set of keys written by recent transactions. This set
// includes all write sets of transactions committed after the oldest living
- // transaction.
+ // (in-flight) transaction.
txTable *trie
}
@@ -81,7 +78,7 @@
d.mu.Lock()
defer d.mu.Unlock()
if d.err != nil {
- return store.WrapError(d.err)
+ return convertError(d.err)
}
d.node.Close()
C.leveldb_close(d.cDb)
@@ -226,7 +223,7 @@
d.mu.RLock()
defer d.mu.RUnlock()
if d.err != nil {
- return valbuf, store.WrapError(d.err)
+ return valbuf, convertError(d.err)
}
var cError *C.char
var valLen C.size_t