mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-25 08:21:10 +00:00
Safe and sane multi-item storage removal (#11490)
* Fix overlay prefix removal result * Second part of the overlay prefix removal fix. * Report only items deleted from storage in clear_prefix * Fix kill_prefix * Formatting * Remove unused code * Fixes * Fixes * Introduce clear_prefix host function v3 * Formatting * Use v2 for now * Fixes * Formatting * Docs * Child prefix removal should also hide v3 for now * Fixes * Fixes * Formatting * Fixes * apply_to_keys_whle takes start_at * apply_to_keys_whle takes start_at * apply_to_keys_whle takes start_at * Cursor API; force limits * Use unsafe deprecated functions * Formatting * Fixes * Grumbles * Fixes * Docs * Some nitpicks 🙈 * Update primitives/externalities/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Formatting * Fixes * cargo fmt * Fixes * Update primitives/io/src/lib.rs Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> * Formatting * Fixes Co-authored-by: Bastian Köcher <info@kchr.de> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
This commit is contained in:
@@ -202,11 +202,28 @@ where
|
||||
unhashed::kill(&Self::storage_double_map_final_key(k1, k2))
|
||||
}
|
||||
|
||||
fn remove_prefix<KArg1>(k1: KArg1, limit: Option<u32>) -> sp_io::KillStorageResult
|
||||
fn remove_prefix<KArg1>(k1: KArg1, maybe_limit: Option<u32>) -> sp_io::KillStorageResult
|
||||
where
|
||||
KArg1: EncodeLike<K1>,
|
||||
{
|
||||
unhashed::kill_prefix(Self::storage_double_map_final_key1(k1).as_ref(), limit)
|
||||
unhashed::clear_prefix(Self::storage_double_map_final_key1(k1).as_ref(), maybe_limit, None)
|
||||
.into()
|
||||
}
|
||||
|
||||
fn clear_prefix<KArg1>(
|
||||
k1: KArg1,
|
||||
limit: u32,
|
||||
maybe_cursor: Option<&[u8]>,
|
||||
) -> sp_io::MultiRemovalResults
|
||||
where
|
||||
KArg1: EncodeLike<K1>,
|
||||
{
|
||||
unhashed::clear_prefix(
|
||||
Self::storage_double_map_final_key1(k1).as_ref(),
|
||||
Some(limit),
|
||||
maybe_cursor,
|
||||
)
|
||||
.into()
|
||||
}
|
||||
|
||||
fn iter_prefix_values<KArg1>(k1: KArg1) -> storage::PrefixIterator<V>
|
||||
|
||||
@@ -183,7 +183,22 @@ where
|
||||
where
|
||||
K: HasKeyPrefix<KP>,
|
||||
{
|
||||
unhashed::kill_prefix(&Self::storage_n_map_partial_key(partial_key), limit)
|
||||
unhashed::clear_prefix(&Self::storage_n_map_partial_key(partial_key), limit, None).into()
|
||||
}
|
||||
|
||||
fn clear_prefix<KP>(
|
||||
partial_key: KP,
|
||||
limit: u32,
|
||||
maybe_cursor: Option<&[u8]>,
|
||||
) -> sp_io::MultiRemovalResults
|
||||
where
|
||||
K: HasKeyPrefix<KP>,
|
||||
{
|
||||
unhashed::clear_prefix(
|
||||
&Self::storage_n_map_partial_key(partial_key),
|
||||
Some(limit),
|
||||
maybe_cursor,
|
||||
)
|
||||
}
|
||||
|
||||
fn iter_prefix_values<KP>(partial_key: KP) -> PrefixIterator<V>
|
||||
|
||||
Reference in New Issue
Block a user