all: remove two iterator methods

This commit is contained in:
Martin Holst Swende 2020-03-25 13:48:39 +01:00
parent 573f62f0b0
commit c138efe415
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0
12 changed files with 39 additions and 93 deletions

View file

@ -301,7 +301,7 @@ func ExportPreimages(db ethdb.Database, fn string) error {
defer writer.(*gzip.Writer).Close()
}
// Iterate over the preimages and export them
it := db.NewIteratorWithPrefix([]byte("secure-key-"))
it := db.NewIteratorWith([]byte("secure-key-"), nil)
defer it.Release()
for it.Next() {

View file

@ -69,7 +69,7 @@ func ReadAllHashes(db ethdb.Iteratee, number uint64) []common.Hash {
prefix := headerKeyPrefix(number)
hashes := make([]common.Hash, 0, 1)
it := db.NewIteratorWithPrefix(prefix)
it := db.NewIteratorWith(prefix, nil)
defer it.Release()
for it.Next() {

View file

@ -93,7 +93,7 @@ func DeleteStorageSnapshot(db ethdb.KeyValueWriter, accountHash, storageHash com
// IterateStorageSnapshots returns an iterator for walking the entire storage
// space of a specific account.
func IterateStorageSnapshots(db ethdb.Iteratee, accountHash common.Hash) ethdb.Iterator {
return db.NewIteratorWithPrefix(storageSnapshotsKey(accountHash))
return db.NewIteratorWith(storageSnapshotsKey(accountHash), nil)
}
// ReadSnapshotJournal retrieves the serialized in-memory diff layers saved at

View file

@ -106,20 +106,7 @@ func (t *table) Delete(key []byte) error {
// NewIterator creates a binary-alphabetical iterator over the entire keyspace
// contained within the database.
func (t *table) NewIterator() ethdb.Iterator {
return t.NewIteratorWithPrefix(nil)
}
// NewIteratorWithStart creates a binary-alphabetical iterator over a subset of
// database content starting at a particular initial key (or after, if it does
// not exist).
func (t *table) NewIteratorWithStart(start []byte) ethdb.Iterator {
return t.NewIteratorWith(nil, start)
}
// NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix.
func (t *table) NewIteratorWithPrefix(prefix []byte) ethdb.Iterator {
return t.NewIteratorWith(prefix, nil)
return t.NewIteratorWith(nil, nil)
}
// NewIteratorWith creates a binary-alphabetical iterator over a subset

View file

@ -18,7 +18,6 @@ package snapshot
import (
"bytes"
"github.com/ethereum/go-ethereum/ethdb/leveldb"
"io/ioutil"
"testing"
@ -26,6 +25,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/rawdb"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethdb/leveldb"
"github.com/ethereum/go-ethereum/ethdb/memorydb"
)

View file

@ -60,7 +60,7 @@ func TestWipe(t *testing.T) {
// Sanity check that all the keys are present
var items int
it := db.NewIteratorWithPrefix(rawdb.SnapshotAccountPrefix)
it := db.NewIteratorWith(rawdb.SnapshotAccountPrefix, nil)
defer it.Release()
for it.Next() {
@ -69,7 +69,7 @@ func TestWipe(t *testing.T) {
items++
}
}
it = db.NewIteratorWithPrefix(rawdb.SnapshotStoragePrefix)
it = db.NewIteratorWith(rawdb.SnapshotStoragePrefix, nil)
defer it.Release()
for it.Next() {
@ -88,7 +88,7 @@ func TestWipe(t *testing.T) {
<-wipeSnapshot(db, true)
// Iterate over the database end ensure no snapshot information remains
it = db.NewIteratorWithPrefix(rawdb.SnapshotAccountPrefix)
it = db.NewIteratorWith(rawdb.SnapshotAccountPrefix, nil)
defer it.Release()
for it.Next() {
@ -97,7 +97,7 @@ func TestWipe(t *testing.T) {
t.Errorf("snapshot entry remained after wipe: %x", key)
}
}
it = db.NewIteratorWithPrefix(rawdb.SnapshotStoragePrefix)
it = db.NewIteratorWith(rawdb.SnapshotStoragePrefix, nil)
defer it.Release()
for it.Next() {

View file

@ -147,7 +147,7 @@ var bloomBitsPrefix = []byte("bloomBits-")
func clearBloomBits(db ethdb.Database) {
fmt.Println("Clearing bloombits data...")
it := db.NewIteratorWithPrefix(bloomBitsPrefix)
it := db.NewIteratorWith(bloomBitsPrefix, nil)
for it.Next() {
db.Delete(it.Key())
}

View file

@ -147,57 +147,52 @@ func TestDatabaseSuite(t *testing.T, New func() ethdb.KeyValueStore) {
if err := it.Error(); err != nil {
t.Fatal(err)
}
it.Release()
if !reflect.DeepEqual(got, want) {
t.Errorf("Iterator: got: %s; want: %s", got, want)
}
}
{
it := db.NewIteratorWithPrefix([]byte("1"))
it := db.NewIteratorWith([]byte("1"), nil)
got, want := iterateKeys(it), []string{"1", "10", "11", "12"}
if err := it.Error(); err != nil {
t.Fatal(err)
}
it.Release()
if !reflect.DeepEqual(got, want) {
t.Errorf("IteratorWithPrefix(1): got: %s; want: %s", got, want)
t.Errorf("IteratorWith(1,nil): got: %s; want: %s", got, want)
}
}
{
it := db.NewIteratorWithPrefix([]byte("5"))
it := db.NewIteratorWith([]byte("5"), nil)
got, want := iterateKeys(it), []string{}
if err := it.Error(); err != nil {
t.Fatal(err)
}
it.Release()
if !reflect.DeepEqual(got, want) {
t.Errorf("IteratorWithPrefix(1): got: %s; want: %s", got, want)
t.Errorf("IteratorWith(5,nil): got: %s; want: %s", got, want)
}
}
{
it := db.NewIteratorWithStart([]byte("2"))
it := db.NewIteratorWith(nil, []byte("2"))
got, want := iterateKeys(it), []string{"2", "20", "21", "22", "3", "4", "6"}
if err := it.Error(); err != nil {
t.Fatal(err)
}
it.Release()
if !reflect.DeepEqual(got, want) {
t.Errorf("IteratorWithStart(2): got: %s; want: %s", got, want)
t.Errorf("IteratorWith(nil,2): got: %s; want: %s", got, want)
}
}
{
it := db.NewIteratorWithStart([]byte("5"))
it := db.NewIteratorWith(nil, []byte("5"))
got, want := iterateKeys(it), []string{"6"}
if err := it.Error(); err != nil {
t.Fatal(err)
}
it.Release()
if !reflect.DeepEqual(got, want) {
t.Errorf("IteratorWithStart(2): got: %s; want: %s", got, want)
t.Errorf("IteratorWith(nil,5): got: %s; want: %s", got, want)
}
}
})
@ -268,7 +263,6 @@ func TestDatabaseSuite(t *testing.T, New func() ethdb.KeyValueStore) {
if got, want := iterateKeys(it), []string{"1", "2", "3", "4"}; !reflect.DeepEqual(got, want) {
t.Errorf("got: %s; want: %s", got, want)
}
it.Release()
}
b.Reset()
@ -289,7 +283,6 @@ func TestDatabaseSuite(t *testing.T, New func() ethdb.KeyValueStore) {
if got, want := iterateKeys(it), []string{"2", "3", "4", "5", "6"}; !reflect.DeepEqual(got, want) {
t.Errorf("got: %s; want: %s", got, want)
}
it.Release()
}
})
@ -318,7 +311,6 @@ func TestDatabaseSuite(t *testing.T, New func() ethdb.KeyValueStore) {
if got := iterateKeys(it); !reflect.DeepEqual(got, want) {
t.Errorf("got: %s; want: %s", got, want)
}
it.Release()
})
}
@ -329,5 +321,6 @@ func iterateKeys(it ethdb.Iterator) []string {
keys = append(keys, string(it.Key()))
}
sort.Strings(keys)
it.Release()
return keys
}

View file

@ -55,16 +55,7 @@ type Iteratee interface {
// contained within the key-value database.
NewIterator() Iterator
// NewIteratorWithStart creates a binary-alphabetical iterator over a subset of
// database content starting at a particular initial key (or after, if it does
// not exist).
NewIteratorWithStart(start []byte) Iterator
// NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix.
NewIteratorWithPrefix(prefix []byte) Iterator
// NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset
// NewIteratorWith creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix, starting at a particular
// initial key (or after, if it does not exist).
NewIteratorWith(prefix []byte, start []byte) Iterator

View file

@ -189,19 +189,6 @@ func (db *Database) NewIterator() ethdb.Iterator {
return db.db.NewIterator(new(util.Range), nil)
}
// NewIteratorWithStart creates a binary-alphabetical iterator over a subset of
// database content starting at a particular initial key (or after, if it does
// not exist).
func (db *Database) NewIteratorWithStart(start []byte) ethdb.Iterator {
return db.db.NewIterator(&util.Range{Start: start}, nil)
}
// NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix.
func (db *Database) NewIteratorWithPrefix(prefix []byte) ethdb.Iterator {
return db.db.NewIterator(util.BytesPrefix(prefix), nil)
}
// NewIteratorWith creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix, starting at a particular
// initial key (or after, if it does not exist).

View file

@ -132,20 +132,7 @@ func (db *Database) NewBatch() ethdb.Batch {
// NewIterator creates a binary-alphabetical iterator over the entire keyspace
// contained within the memory database.
func (db *Database) NewIterator() ethdb.Iterator {
return db.NewIteratorWithStart(nil)
}
// NewIteratorWithStart creates a binary-alphabetical iterator over a subset of
// database content starting at a particular initial key (or after, if it does
// not exist).
func (db *Database) NewIteratorWithStart(start []byte) ethdb.Iterator {
return db.NewIteratorWith(nil, start)
}
// NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset
// of database content with a particular key prefix.
func (db *Database) NewIteratorWithPrefix(prefix []byte) ethdb.Iterator {
return db.NewIteratorWith(prefix, nil)
return db.NewIteratorWith(nil, nil)
}
// NewIteratorWith creates a binary-alphabetical iterator over a subset

View file

@ -849,8 +849,9 @@ func (db *nodeDB) expireNodes() {
visited int
deleted int
start = time.Now()
prefix = db.getPrefix(true)
)
iter := db.db.NewIteratorWithPrefix(append(db.verbuf[:], negativeBalancePrefix...))
iter := db.db.NewIteratorWith(prefix, nil)
for iter.Next() {
visited += 1
var balance negBalance