feat(core/coretesting): make memDB satisfy db.Db interface (#22570)

This commit is contained in:
Julien Robert
2024-11-20 15:35:37 +00:00
committed by GitHub
parent c6522a72a4
commit d810b77c71
3 changed files with 44 additions and 1 deletions
+29
View File
@@ -291,12 +291,20 @@ func (bt *MemDB) Set(key, value []byte) error {
return bt.kv.Set(key, value)
}
func (bt *MemDB) SetSync(key, value []byte) error {
return bt.Set(key, value)
}
func (bt *MemDB) Delete(key []byte) error {
bt.mtx.Lock()
defer bt.mtx.Unlock()
return bt.kv.Delete(key)
}
func (bt *MemDB) DeleteSync(key []byte) error {
return bt.Delete(key)
}
func (bt *MemDB) Iterator(start, end []byte) (store.Iterator, error) {
return bt.kv.Iterator(start, end)
}
@@ -305,6 +313,27 @@ func (bt *MemDB) ReverseIterator(start, end []byte) (store.Iterator, error) {
return bt.kv.ReverseIterator(start, end)
}
func (db *MemDB) Print() error {
db.mtx.RLock()
defer db.mtx.RUnlock()
db.kv.tree.Ascend(item{}, func(i item) bool {
fmt.Printf("[%X]:\t[%X]\n", i.key, i.value)
return true
})
return nil
}
func (db *MemDB) Stats() map[string]string {
db.mtx.RLock()
defer db.mtx.RUnlock()
stats := make(map[string]string)
stats["database.type"] = "memDB"
stats["database.size"] = fmt.Sprintf("%d", db.kv.tree.Len())
return stats
}
// Close closes the MemDB, releasing any resources held.
func (db *MemDB) Close() error {
return nil