mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-19 16:14:21 +01:00
Merge 'Fix database header contents on initialization' from Pere Diaz Bou
After moving page1 write to be async I moved the contents update to wrong place. This should fix it. Fixes #1842 Fixes #1837 Closes #1860
This commit is contained in:
@@ -1004,9 +1004,13 @@ impl Pager {
|
||||
AllocatePage1State::Start => {
|
||||
tracing::trace!("allocate_page1(Start)");
|
||||
self.is_empty.store(DB_STATE_INITIALIZING, Ordering::SeqCst);
|
||||
let default_header = DatabaseHeader::default();
|
||||
let mut default_header = DatabaseHeader::default();
|
||||
default_header.database_size += 1;
|
||||
let page = allocate_page(1, &self.buffer_pool, 0);
|
||||
|
||||
let contents = page.get_contents();
|
||||
contents.write_database_header(&default_header);
|
||||
|
||||
let page1 = Arc::new(BTreePageInner {
|
||||
page: RefCell::new(page),
|
||||
});
|
||||
@@ -1039,11 +1043,7 @@ impl Pager {
|
||||
return Ok(CursorResult::IO);
|
||||
}
|
||||
tracing::trace!("allocate_page1(Writing done)");
|
||||
let mut default_header = DatabaseHeader::default();
|
||||
default_header.database_size += 1;
|
||||
let page1_ref = page.get();
|
||||
let contents = page1_ref.get().contents.as_mut().unwrap();
|
||||
contents.write_database_header(&default_header);
|
||||
let page_key = PageCacheKey::new(page1_ref.get().id);
|
||||
let mut cache = self.page_cache.write();
|
||||
cache.insert(page_key, page1_ref.clone()).map_err(|e| {
|
||||
|
||||
Reference in New Issue
Block a user