diff --git a/milli/src/index.rs b/milli/src/index.rs index f7e3aa14a..28c870592 100644 --- a/milli/src/index.rs +++ b/milli/src/index.rs @@ -1101,6 +1101,22 @@ impl Index { pub(crate) fn delete_max_values_per_facet(&self, txn: &mut RwTxn) -> heed::Result { self.main.delete::<_, Str>(txn, main_key::MAX_VALUES_PER_FACET) } + + pub fn pagination_limited_to(&self, txn: &RoTxn) -> heed::Result> { + self.main.get::<_, Str, OwnedType>(txn, main_key::PAGINATION_LIMITED_TO) + } + + pub(crate) fn put_pagination_limited_to( + &self, + txn: &mut RwTxn, + val: usize, + ) -> heed::Result<()> { + self.main.put::<_, Str, OwnedType>(txn, main_key::PAGINATION_LIMITED_TO, &val) + } + + pub(crate) fn delete_pagination_limited_to(&self, txn: &mut RwTxn) -> heed::Result { + self.main.delete::<_, Str>(txn, main_key::PAGINATION_LIMITED_TO) + } } #[cfg(test)] diff --git a/milli/src/update/settings.rs b/milli/src/update/settings.rs index ce4bfbc70..174d7073d 100644 --- a/milli/src/update/settings.rs +++ b/milli/src/update/settings.rs @@ -258,12 +258,12 @@ impl<'a, 't, 'u, 'i> Settings<'a, 't, 'u, 'i> { self.max_values_per_facet = Setting::Reset; } - pub fn set_limit_pagination_to(&mut self, value: usize) { - self.limit_pagination_to = Setting::Set(value); + pub fn set_pagination_limited_to(&mut self, value: usize) { + self.pagination_limited_to = Setting::Set(value); } - pub fn reset_limit_pagination_to(&mut self) { - self.limit_pagination_to = Setting::Reset; + pub fn reset_pagination_limited_to(&mut self) { + self.pagination_limited_to = Setting::Reset; } fn reindex(&mut self, cb: &F, old_fields_ids_map: FieldsIdsMap) -> Result<()> @@ -646,6 +646,20 @@ impl<'a, 't, 'u, 'i> Settings<'a, 't, 'u, 'i> { Ok(()) } + fn update_pagination_limited_to(&mut self) -> Result<()> { + match self.pagination_limited_to { + Setting::Set(max) => { + self.index.put_pagination_limited_to(&mut self.wtxn, max)?; + } + Setting::Reset => { + self.index.delete_pagination_limited_to(&mut self.wtxn)?; + } + Setting::NotSet => (), + } + + Ok(()) + } + pub fn execute(mut self, progress_callback: F) -> Result<()> where F: Fn(UpdateIndexingStep) + Sync,