diff --git a/core/storage/sqlite3_ondisk.rs b/core/storage/sqlite3_ondisk.rs index a08483c66..5fb353804 100644 --- a/core/storage/sqlite3_ondisk.rs +++ b/core/storage/sqlite3_ondisk.rs @@ -1929,9 +1929,9 @@ impl StreamingWalReader { } } -pub fn begin_read_wal_frame_raw( +pub fn begin_read_wal_frame_raw( buffer_pool: &Arc, - io: &Arc, + io: &F, offset: u64, complete: Box, ) -> Result { @@ -1942,8 +1942,8 @@ pub fn begin_read_wal_frame_raw( Ok(c) } -pub fn begin_read_wal_frame( - io: &Arc, +pub fn begin_read_wal_frame( + io: &F, offset: u64, buffer_pool: Arc, complete: Box, @@ -2083,7 +2083,7 @@ pub fn prepare_wal_frame( (final_checksum, Arc::new(buffer)) } -pub fn begin_write_wal_header(io: &Arc, header: &WalHeader) -> Result { +pub fn begin_write_wal_header(io: &F, header: &WalHeader) -> Result { tracing::trace!("begin_write_wal_header"); let buffer = { let buffer = Buffer::new_temporary(WAL_HEADER_SIZE); diff --git a/core/storage/wal.rs b/core/storage/wal.rs index 005b0139c..881afacd0 100644 --- a/core/storage/wal.rs +++ b/core/storage/wal.rs @@ -1126,7 +1126,7 @@ impl Wal for WalFile { shared.file.as_ref().unwrap().clone() }; begin_read_wal_frame( - &file, + file.as_ref(), offset + WAL_FRAME_HEADER_SIZE as u64, buffer_pool, complete, @@ -1186,7 +1186,7 @@ impl Wal for WalFile { let shared = self.get_shared(); assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled"); let file = shared.file.as_ref().unwrap(); - let c = begin_read_wal_frame_raw(&self.buffer_pool, file, offset, complete)?; + let c = begin_read_wal_frame_raw(&self.buffer_pool, file.as_ref(), offset, complete)?; Ok(c) } @@ -1246,7 +1246,7 @@ impl Wal for WalFile { assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled"); let file = shared.file.as_ref().unwrap(); let c = begin_read_wal_frame( - file, + file.as_ref(), offset + WAL_FRAME_HEADER_SIZE as u64, buffer_pool, complete, @@ -1448,7 +1448,7 @@ impl Wal for WalFile { let shared = self.get_shared(); assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled"); let file = shared.file.as_ref().unwrap(); - let c = sqlite3_ondisk::begin_write_wal_header(file, &shared.wal_header.lock())?; + let c = sqlite3_ondisk::begin_write_wal_header(file.as_ref(), &shared.wal_header.lock())?; Ok(Some(c)) } @@ -2245,7 +2245,7 @@ impl WalFile { assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled"); let file = shared.file.as_ref().unwrap(); let c = begin_read_wal_frame( - file, + file.as_ref(), offset + WAL_FRAME_HEADER_SIZE as u64, self.buffer_pool.clone(), complete, diff --git a/tests/integration/query_processing/test_btree.rs b/tests/integration/query_processing/test_btree.rs index 5a4fa79c8..171e6147d 100644 --- a/tests/integration/query_processing/test_btree.rs +++ b/tests/integration/query_processing/test_btree.rs @@ -418,15 +418,15 @@ impl BTreeGenerator<'_> { assert_eq!(file.size().unwrap(), 4096 * 2); for (i, page) in pages.iter().enumerate() { let page = self.create_page(page, &page_numbers); - write_at(&io, file.clone(), 4096 * (i + 1), &page); + write_at(&io, file.as_ref(), 4096 * (i + 1), &page); } let size = 1 + pages.len(); let size_bytes = U32::new(size as u32).to_bytes(); - write_at(&io, file, 28, &size_bytes); + write_at(&io, file.as_ref(), 28, &size_bytes); } } -fn write_at(io: &impl IO, file: Arc, offset: usize, data: &[u8]) { +fn write_at(io: &impl IO, file: &F, offset: usize, data: &[u8]) { #[allow(clippy::arc_with_non_send_sync)] let buffer = Arc::new(Buffer::new(data.to_vec())); let _buf = buffer.clone();