diff --git a/core/storage/pager.rs b/core/storage/pager.rs index 7d70cb427..361525510 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -1422,7 +1422,7 @@ impl Pager { // Reserve 2 slots for the trunk page header which is 8 bytes or 2*LEAF_ENTRY_SIZE let max_free_list_entries = - (self.usable_space() / LEAF_ENTRY_SIZE) - RESERVED_SLOTS; + (header.usable_space() / LEAF_ENTRY_SIZE) - RESERVED_SLOTS; if number_of_leaf_pages < max_free_list_entries as u32 { turso_assert!( diff --git a/core/storage/sqlite3_ondisk.rs b/core/storage/sqlite3_ondisk.rs index fae5f2ea0..7d3086027 100644 --- a/core/storage/sqlite3_ondisk.rs +++ b/core/storage/sqlite3_ondisk.rs @@ -276,6 +276,10 @@ impl DatabaseHeader { const _CHECK: () = { assert!(Self::SIZE == 100); }; + + pub fn usable_space(self) -> usize { + (self.page_size.get() as usize) - (self.reserved_space as usize) + } } impl Default for DatabaseHeader {