diff --git a/crates/database/src/query/index_range.rs b/crates/database/src/query/index_range.rs index 79f9919d..b35b4212 100644 --- a/crates/database/src/query/index_range.rs +++ b/crates/database/src/query/index_range.rs @@ -214,6 +214,20 @@ impl IndexRange { })) } + fn process_fetch( + &mut self, + page: Vec<(IndexKeyBytes, GenericDocument, WriteTimestamp)>, + fetch_cursor: CursorPosition, + ) -> anyhow::Result<()> { + let (_, new_unfetched_interval) = self.unfetched_interval.split(fetch_cursor, self.order); + anyhow::ensure!(self.unfetched_interval != new_unfetched_interval); + self.unfetched_interval = new_unfetched_interval; + self.page_count += 1; + self.rows_read += page.len(); + self.page.extend(page); + Ok(()) + } + #[convex_macro::instrument_future] async fn _next( &mut self, @@ -229,13 +243,7 @@ impl IndexRange { .await .remove(&0) .context("batch_key missing")??; - let (_, new_unfetched_interval) = - self.unfetched_interval.split(fetch_cursor, self.order); - anyhow::ensure!(self.unfetched_interval != new_unfetched_interval); - self.unfetched_interval = new_unfetched_interval; - self.page_count += 1; - self.rows_read += page.len(); - self.page.extend(page); + self.process_fetch(page, fetch_cursor)?; } } }