mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-29 05:54:21 +01:00
adjust integrity_check
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user