adjust integrity_check

This commit is contained in:
pedrocarlo
2025-08-04 13:30:54 -03:00
parent aa05616845
commit e0978844e6

View File

@@ -5617,6 +5617,7 @@ pub struct IntegrityCheckState {
pub current_page: usize,
page_stack: Vec<IntegrityCheckPageEntry>,
first_leaf_level: Option<usize>,
page: Option<PageRef>,
}
impl IntegrityCheckState {
@@ -5629,6 +5630,7 @@ impl IntegrityCheckState {
max_intkey: i64::MAX,
}],
first_leaf_level: None,
page: None,
}
}
}
@@ -5664,11 +5666,17 @@ pub fn integrity_check(
else {
return Ok(IOResult::Done(()));
};
let (page, _c) = btree_read_page(pager, page_idx)?;
return_if_locked_maybe_load!(pager, page);
let page = match state.page.take() {
Some(page) => page,
None => {
let (page, _c) = btree_read_page(pager, page_idx)?;
state.page = Some(page.get());
return Ok(IOResult::IO);
}
};
return_if_locked!(page);
state.page_stack.pop();
let page = page.get();
let contents = page.get_contents();
let usable_space = pager.usable_space() as u16;
let mut coverage_checker = CoverageChecker::new(page.get().id);