fix: with context

This commit is contained in:
jsvisa 2025-08-31 09:47:56 +08:00
parent 57fec99aac
commit 9e80e2fd1d

View file

@ -445,21 +445,20 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error {
) )
processRange := func(ctx context.Context, rangePrefix []byte) error { processRange := func(ctx context.Context, rangePrefix []byte) error {
// Skip ranges that are entirely before keyStart var start = []byte(nil)
if len(keyStart) > 0 && len(rangePrefix) > 0 && rangePrefix[0] < keyStart[0] {
return nil
}
var ( if len(keyStart) > 0 && len(rangePrefix) > 0 {
prefix = slices.Concat(keyPrefix, rangePrefix) r0, s0 := rangePrefix[0], keyStart[0]
start = []byte(nil) if r0 < s0 {
) // Skip ranges that are entirely before keyStart
return nil
} else if r0 == s0 {
// Only apply keyStart to the range that contains it // Only apply keyStart to the range that contains it
if len(keyStart) > 0 && len(rangePrefix) > 0 && rangePrefix[0] == keyStart[0] {
start = keyStart[1:] // skip the first byte, as it's in rangePrefix start = keyStart[1:] // skip the first byte, as it's in rangePrefix
} }
}
it := db.NewIterator(prefix, start) it := db.NewIterator(slices.Concat(keyPrefix, rangePrefix), start)
defer it.Release() defer it.Release()
for it.Next() { for it.Next() {