mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
fix: fix inspect database error
This commit is contained in:
parent
11ea896564
commit
1535032879
4 changed files with 21 additions and 3 deletions
|
|
@ -122,6 +122,10 @@ func (frdb *freezerdb) SetBlockStore(block ethdb.Database) {
|
|||
frdb.blockStore = block
|
||||
}
|
||||
|
||||
func (frdb *freezerdb) HasSeparateBlockStore() bool {
|
||||
return frdb.blockStore != nil
|
||||
}
|
||||
|
||||
// Freeze is a helper method used for external testing to trigger and block until
|
||||
// a freeze cycle completes, without having to sleep for a minute to trigger the
|
||||
// automatic background run.
|
||||
|
|
@ -219,6 +223,10 @@ func (db *nofreezedb) SetBlockStore(block ethdb.Database) {
|
|||
db.blockStore = block
|
||||
}
|
||||
|
||||
func (db *nofreezedb) HasSeparateBlockStore() bool {
|
||||
return db.blockStore != nil
|
||||
}
|
||||
|
||||
func (db *nofreezedb) BlockStoreReader() ethdb.Reader {
|
||||
if db.blockStore != nil {
|
||||
return db.blockStore
|
||||
|
|
@ -598,13 +606,14 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error {
|
|||
it := db.NewIterator(keyPrefix, keyStart)
|
||||
defer it.Release()
|
||||
|
||||
var trieIter ethdb.Iterator
|
||||
var blockIter ethdb.Iterator
|
||||
var trieIter ethdb.Iterator // traverse state data if multi-database has been enabled
|
||||
var blockIter ethdb.Iterator // traverse block data if multi-database has been enabled
|
||||
if db.StateStore() != nil {
|
||||
trieIter = db.StateStore().NewIterator(keyPrefix, nil)
|
||||
defer trieIter.Release()
|
||||
}
|
||||
if db.BlockStore() != db {
|
||||
|
||||
if db.HasSeparateBlockStore() {
|
||||
blockIter = db.BlockStore().NewIterator(keyPrefix, nil)
|
||||
defer blockIter.Release()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,10 @@ func (t *table) SetBlockStore(block ethdb.Database) {
|
|||
panic("not implement")
|
||||
}
|
||||
|
||||
func (t *table) HasSeparateBlockStore() bool {
|
||||
panic("not implement")
|
||||
}
|
||||
|
||||
// NewTable returns a database object that prefixes all keys with a given string.
|
||||
func NewTable(db ethdb.Database, prefix string) ethdb.Database {
|
||||
return &table{
|
||||
|
|
|
|||
|
|
@ -160,6 +160,7 @@ type StateStoreReader interface {
|
|||
type BlockStore interface {
|
||||
BlockStore() Database
|
||||
SetBlockStore(block Database)
|
||||
HasSeparateBlockStore() bool
|
||||
}
|
||||
|
||||
type BlockStoreReader interface {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,10 @@ func (db *Database) BlockStore() ethdb.Database {
|
|||
return db
|
||||
}
|
||||
|
||||
func (db *Database) HasSeparateBlockStore() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (db *Database) SetBlockStore(block ethdb.Database) {
|
||||
panic("not supported")
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue