core/rawdb: handle prefix in table.compact method (#22911)

This commit is contained in:
Evolution404 2021-05-21 16:33:59 +08:00 committed by GitHub
parent a6c462781f
commit 81662fe827
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -131,6 +131,8 @@ func (t *table) Compact(start []byte, limit []byte) error {
// If no start was specified, use the table prefix as the first value // If no start was specified, use the table prefix as the first value
if start == nil { if start == nil {
start = []byte(t.prefix) start = []byte(t.prefix)
} else {
start = append([]byte(t.prefix), start...)
} }
// If no limit was specified, use the first element not matching the prefix // If no limit was specified, use the first element not matching the prefix
// as the limit // as the limit
@ -147,6 +149,8 @@ func (t *table) Compact(start []byte, limit []byte) error {
limit = nil limit = nil
} }
} }
} else {
limit = append([]byte(t.prefix), limit...)
} }
// Range correctly calculated based on table prefix, delegate down // Range correctly calculated based on table prefix, delegate down
return t.db.Compact(start, limit) return t.db.Compact(start, limit)