core/rawdb: add DeleteRange to tableReplayer

This commit is contained in:
sashass1315 2026-02-06 19:55:44 +02:00 committed by GitHub
parent 777265620d
commit cb06b56d7c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -17,6 +17,8 @@
package rawdb
import (
"errors"
"github.com/ethereum/go-ethereum/ethdb"
)
@ -272,6 +274,16 @@ func (r *tableReplayer) Delete(key []byte) error {
return r.w.Delete(trimmed)
}
// DeleteRange implements the interface KeyValueRangeDeleter.
func (r *tableReplayer) DeleteRange(start, end []byte) error {
trimmedStart := start[len(r.prefix):]
trimmedEnd := end[len(r.prefix):]
if rangeDeleter, ok := r.w.(ethdb.KeyValueRangeDeleter); ok {
return rangeDeleter.DeleteRange(trimmedStart, trimmedEnd)
}
return errors.New("ethdb.KeyValueWriter does not implement DeleteRange")
}
// Replay replays the batch contents.
func (b *tableBatch) Replay(w ethdb.KeyValueWriter) error {
return b.batch.Replay(&tableReplayer{w: w, prefix: b.prefix})