Add self.stack.retreat() when balancing is not needed. Fixes: https://github.com/tursodatabase/limbo/issues/1019

This commit is contained in:
krishvishal
2025-03-20 10:47:41 +05:30
parent 38d2afc8dd
commit bc1fd39a8d

View File

@@ -1885,7 +1885,22 @@ impl BTreeCursor {
drop_cell(contents, cell_idx, self.usable_space() as u16)?;
}
// TODO(Krishna): Implement balance after delete. I will implement after balance_nonroot is extended.
let page = self.stack.top();
return_if_locked!(page);
if !page.is_loaded() {
self.pager.load_page(page.clone())?;
return Ok(CursorResult::IO);
}
let contents = page.get().contents.as_ref().unwrap();
let free_space = compute_free_space(contents, self.usable_space() as u16);
if free_space as usize * 3 > self.usable_space() * 2 {
//need balancing
} else {
self.stack.retreat();
return Ok(CursorResult::Ok(()));
}
Ok(CursorResult::Ok(()))
}