use super::index_decode::DecodedKvIndexes;
use crate::engine::kv::{KvEngine, RestoreCompositeIndexParams, RestoreFieldIndexParams};
pub(super) fn restore_collection_indexes(
engine: &mut KvEngine,
database_id: u64,
tenant_id: u64,
collection: &str,
indexes: &DecodedKvIndexes,
) {
for field_index in &indexes.fields {
engine.restore_field_index(RestoreFieldIndexParams {
database_id,
tenant_id,
collection,
field: &field_index.field,
field_position: field_index.field_position,
entries: &field_index.entries,
});
}
for composite in &indexes.composites {
engine.restore_composite_index(RestoreCompositeIndexParams {
database_id,
tenant_id,
collection,
fields: &composite.fields,
field_positions: &composite.field_positions,
entries: &composite.entries,
});
}
for sorted in &indexes.sorted {
engine.restore_sorted_index(database_id, tenant_id, sorted.def.clone(), &sorted.entries);
}
}