Update sanity checks

This commit is contained in:
Louis Dureuil 2025-01-02 23:54:37 +01:00
parent 50b41509cb
commit 46104a2836
No known key found for this signature in database

View File

@ -720,24 +720,6 @@ pub(crate) fn sanity_checks(
panic!("wrong parent left bound"); panic!("wrong parent left bound");
} }
if let Some(current_parent_facet_value) = current_parent_facet_value {
if current_parent_facet_value.field_id != parent_facet_value.field_id {
panic!("wrong parent parent fid");
}
if current_parent_facet_value.level + 1 != parent_facet_value.level {
panic!("wrong parent parent level");
}
if current_parent_facet_value.left_bound < parent_facet_value.left_bound {
panic!("wrong parent parent level");
}
}
if let Some(current_parent_docids) = current_parent_docids {
if !current_parent_docids.bitmap.is_superset(&parent_docids.bitmap) {
panic!("missing docids in parent parent");
}
}
if !leaf_docids.bitmap.is_subset(&parent_docids.bitmap) { if !leaf_docids.bitmap.is_subset(&parent_docids.bitmap) {
panic!( panic!(
"missing docids from leaf in parent, current_level={}, parent={}, child={}, missing={missing:?}, child_len={}, child={:?}", "missing docids from leaf in parent, current_level={}, parent={}, child={}, missing={missing:?}, child_len={}, child={:?}",
@ -750,6 +732,30 @@ pub(crate) fn sanity_checks(
) )
} }
if let Some(current_parent_facet_value) = current_parent_facet_value {
if current_parent_facet_value.field_id != parent_facet_value.field_id {
panic!("wrong parent parent fid");
}
if current_parent_facet_value.level + 1 != parent_facet_value.level {
panic!("wrong parent parent level");
}
if current_parent_facet_value.left_bound < parent_facet_value.left_bound {
panic!("wrong parent parent left bound");
}
}
if let Some(current_parent_docids) = current_parent_docids {
if !current_parent_docids.bitmap.is_subset(&parent_docids.bitmap) {
panic!("missing docids from intermediate node in parent, parent_level={}, parent={}, intermediate={}, missing={missing:?}, intermediate={:?}",
parent_facet_value.level,
facet_to_string(parent_facet_value.left_bound, facet_type),
facet_to_string(current_parent_facet_value.unwrap().left_bound, facet_type),
current_parent_docids.bitmap.clone(),
missing=current_parent_docids.bitmap - parent_docids.bitmap,
);
}
}
current_parent_facet_value = Some(parent_facet_value); current_parent_facet_value = Some(parent_facet_value);
current_parent_docids = Some(parent_docids); current_parent_docids = Some(parent_docids);
} }
@ -829,6 +835,9 @@ pub(crate) fn sanity_checks(
fn facet_to_string(facet_value: &[u8], facet_type: FacetType) -> String { fn facet_to_string(facet_value: &[u8], facet_type: FacetType) -> String {
match facet_type { match facet_type {
FacetType::String => bstr::BStr::new(facet_value).to_string(), FacetType::String => bstr::BStr::new(facet_value).to_string(),
FacetType::Number => OrderedF64Codec::bytes_decode(facet_value).unwrap().to_string(), FacetType::Number => match OrderedF64Codec::bytes_decode(facet_value) {
Ok(value) => value.to_string(),
Err(e) => format!("error: {e} (bytes: {facet_value:?}"),
},
} }
} }