added Substore
This commit is contained in:
parent
2721307e31
commit
7e8c1e3394
|
@ -463,6 +463,6 @@
|
||||||
[solve-meta]
|
[solve-meta]
|
||||||
analyzer-name = "dep"
|
analyzer-name = "dep"
|
||||||
analyzer-version = 1
|
analyzer-version = 1
|
||||||
inputs-digest = "3d1aebf798b51882ed5281b0ca0a3766c32cdb08592de57dd3d574a4b3e67987"
|
inputs-digest = "64881873c2a0899c3d6920de588c06a2b59e6b072e1a3d7e676e906cb7d5ad0e"
|
||||||
solver-name = "gps-cdcl"
|
solver-name = "gps-cdcl"
|
||||||
solver-version = 1
|
solver-version = 1
|
||||||
|
|
|
@ -119,6 +119,13 @@ func (st *iavlStore) Iterator(start, end []byte) Iterator {
|
||||||
return newIAVLIterator(st.tree.Tree(), start, end, true)
|
return newIAVLIterator(st.tree.Tree(), start, end, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (st *iavlStore) Subspace(prefix []byte) Iterator {
|
||||||
|
end := make([]byte, len(prefix))
|
||||||
|
copy(end, prefix)
|
||||||
|
end[len(end)-1]++
|
||||||
|
return st.Iterator(prefix, end)
|
||||||
|
}
|
||||||
|
|
||||||
// Implements IterKVStore.
|
// Implements IterKVStore.
|
||||||
func (st *iavlStore) ReverseIterator(start, end []byte) Iterator {
|
func (st *iavlStore) ReverseIterator(start, end []byte) Iterator {
|
||||||
return newIAVLIterator(st.tree.Tree(), start, end, false)
|
return newIAVLIterator(st.tree.Tree(), start, end, false)
|
||||||
|
|
|
@ -82,6 +82,26 @@ func TestIAVLIterator(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIAVLSubspace(t *testing.T) {
|
||||||
|
db := dbm.NewMemDB()
|
||||||
|
tree, _ := newTree(t, db)
|
||||||
|
iavlStore := newIAVLStore(tree, numHistory)
|
||||||
|
|
||||||
|
iavlStore.Set([]byte("test1"), []byte("test1"))
|
||||||
|
iavlStore.Set([]byte("test2"), []byte("test2"))
|
||||||
|
iavlStore.Set([]byte("test3"), []byte("test3"))
|
||||||
|
|
||||||
|
iter := iavlStore.Subspace([]byte("test"))
|
||||||
|
expected := []string{"test1", "test2", "test3"}
|
||||||
|
for i := 0; iter.Valid(); iter.Next() {
|
||||||
|
expectedKey := expected[i]
|
||||||
|
key, value := iter.Key(), iter.Value()
|
||||||
|
assert.EqualValues(t, key, expectedKey)
|
||||||
|
assert.EqualValues(t, value, expectedKey)
|
||||||
|
i += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestIAVLStoreQuery(t *testing.T) {
|
func TestIAVLStoreQuery(t *testing.T) {
|
||||||
db := dbm.NewMemDB()
|
db := dbm.NewMemDB()
|
||||||
tree := iavl.NewVersionedTree(db, cacheSize)
|
tree := iavl.NewVersionedTree(db, cacheSize)
|
||||||
|
|
Loading…
Reference in New Issue