mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00
[NOD-914] Make LevelDB.Cursor receive bucket instead of prefix (#696)
This commit is contained in:
parent
7609c50641
commit
fe91b4c878
@ -156,7 +156,7 @@ func (db *ffldb) RetrieveFromStore(storeName string, location []byte) ([]byte, e
|
||||
// Cursor begins a new cursor over the given bucket.
|
||||
// This method is part of the DataAccessor interface.
|
||||
func (db *ffldb) Cursor(bucket *database.Bucket) (database.Cursor, error) {
|
||||
ldbCursor := db.levelDB.Cursor(bucket.Path())
|
||||
ldbCursor := db.levelDB.Cursor(bucket)
|
||||
|
||||
return ldbCursor, nil
|
||||
}
|
||||
|
@ -18,8 +18,7 @@ func (db *ffldb) initialize() error {
|
||||
}
|
||||
|
||||
func (db *ffldb) flatFiles() (map[string][]byte, error) {
|
||||
flatFilesBucketPath := flatFilesBucket.Path()
|
||||
flatFilesCursor := db.levelDB.Cursor(flatFilesBucketPath)
|
||||
flatFilesCursor := db.levelDB.Cursor(flatFilesBucket)
|
||||
defer func() {
|
||||
err := flatFilesCursor.Close()
|
||||
if err != nil {
|
||||
|
@ -11,17 +11,17 @@ import (
|
||||
// LevelDBCursor is a thin wrapper around native leveldb iterators.
|
||||
type LevelDBCursor struct {
|
||||
ldbIterator iterator.Iterator
|
||||
prefix []byte
|
||||
bucket *database.Bucket
|
||||
|
||||
isClosed bool
|
||||
}
|
||||
|
||||
// Cursor begins a new cursor over the given prefix.
|
||||
func (db *LevelDB) Cursor(prefix []byte) *LevelDBCursor {
|
||||
ldbIterator := db.ldb.NewIterator(util.BytesPrefix(prefix), nil)
|
||||
func (db *LevelDB) Cursor(bucket *database.Bucket) *LevelDBCursor {
|
||||
ldbIterator := db.ldb.NewIterator(util.BytesPrefix(bucket.Path()), nil)
|
||||
return &LevelDBCursor{
|
||||
ldbIterator: ldbIterator,
|
||||
prefix: prefix,
|
||||
bucket: bucket,
|
||||
isClosed: false,
|
||||
}
|
||||
}
|
||||
@ -84,8 +84,8 @@ func (c *LevelDBCursor) Key() (*database.Key, error) {
|
||||
return nil, errors.Wrapf(database.ErrNotFound, "cannot get the "+
|
||||
"key of a done cursor")
|
||||
}
|
||||
suffix := bytes.TrimPrefix(fullKeyPath, c.prefix)
|
||||
return database.MakeBucket(c.prefix).Key(suffix), nil
|
||||
suffix := bytes.TrimPrefix(fullKeyPath, c.bucket.Path())
|
||||
return c.bucket.Key(suffix), nil
|
||||
}
|
||||
|
||||
// Value returns the value of the current key/value pair, or ErrNotFound if done.
|
||||
|
@ -135,5 +135,5 @@ func (tx *LevelDBTransaction) Cursor(bucket *database.Bucket) (*LevelDBCursor, e
|
||||
return nil, errors.New("cannot open a cursor from a closed transaction")
|
||||
}
|
||||
|
||||
return tx.db.Cursor(bucket.Path()), nil
|
||||
return tx.db.Cursor(bucket), nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user