Add the pagination_limited_to setting to the database

This commit is contained in:
Kerollmops 2022-06-08 17:31:21 +02:00
parent 69931e50d2
commit 445d5474cc
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4
2 changed files with 34 additions and 4 deletions

View File

@ -1101,6 +1101,22 @@ impl Index {
pub(crate) fn delete_max_values_per_facet(&self, txn: &mut RwTxn) -> heed::Result<bool> {
self.main.delete::<_, Str>(txn, main_key::MAX_VALUES_PER_FACET)
}
pub fn pagination_limited_to(&self, txn: &RoTxn) -> heed::Result<Option<usize>> {
self.main.get::<_, Str, OwnedType<usize>>(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<usize>>(txn, main_key::PAGINATION_LIMITED_TO, &val)
}
pub(crate) fn delete_pagination_limited_to(&self, txn: &mut RwTxn) -> heed::Result<bool> {
self.main.delete::<_, Str>(txn, main_key::PAGINATION_LIMITED_TO)
}
}
#[cfg(test)]

View File

@ -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<F>(&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<F>(mut self, progress_callback: F) -> Result<()>
where
F: Fn(UpdateIndexingStep) + Sync,