chore: minor refactorings around dense_set deletions (#4390)

chore: refactorings around deletions

Done as a preparation to introduce asynchronous deletions for sets/zsets/hmaps.
1. Restrict the interface around DbSlice::Del. Now it requires for the iterator to be valid and the checks should
be explicit before the call. Most callers already provides a valid iterator.

2. Some minor refactoring in compact_object_test.
3. Expose DenseSet::ClearStep to allow iterative deletions of elements.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
This commit is contained in:
Roman Gershman 2025-01-02 11:35:55 +02:00 committed by GitHub
parent 3b082e42b8
commit 7a68528022
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 116 additions and 93 deletions

View file

@ -346,7 +346,8 @@ class DbSlice {
// Delete a key referred by its iterator.
void PerformDeletion(Iterator del_it, DbTable* table);
bool Del(Context cntx, Iterator it);
// Deletes the iterator. The iterator must be valid.
void Del(Context cntx, Iterator it);
constexpr static DbIndex kDbAll = 0xFFFF;