From a63160d4c9926356e2ec2b38374e1e1c038e8246 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Fri, 29 Aug 2025 01:17:43 +0800 Subject: [PATCH] nil as the later ranges --- core/rawdb/database.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/rawdb/database.go b/core/rawdb/database.go index 7b972e50e1..93fb453f99 100644 --- a/core/rawdb/database.go +++ b/core/rawdb/database.go @@ -444,7 +444,21 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { ) processRange := func(rangePrefix []byte) error { - it := db.NewIterator(slices.Concat(keyPrefix, rangePrefix), keyStart) + // Skip ranges that are entirely before keyStart + if len(keyStart) > 0 && len(rangePrefix) > 0 && rangePrefix[0] < keyStart[0] { + return nil + } + + var ( + prefix = slices.Concat(keyPrefix, rangePrefix) + start = []byte(nil) + ) + // 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 + } + + it := db.NewIterator(prefix, start) defer it.Release() for it.Next() {