Database schema optimization - part 2

This commit is contained in:
mdecimus
2025-10-31 18:25:01 +01:00
parent 3e1d2d54e4
commit d5c5f12adf
43 changed files with 2266 additions and 1853 deletions

View File

@@ -22,7 +22,7 @@ use std::{sync::Arc, time::Instant};
use store::{
SerializeInfallible,
roaring::RoaringBitmap,
write::{BatchBuilder, TaskQueueClass, ValueClass, now},
write::{BatchBuilder, SearchIndex, TaskQueueClass, ValueClass, now},
};
use trc::AddContext;
use types::{
@@ -190,12 +190,16 @@ impl<T: SessionStream> SessionData<T> {
);
if metadata.inner.mailboxes.len() == 1 {
// Tombstone message
// Delete message
batch
.custom(ObjectIndexBuilder::<_, ()>::new().with_current(metadata))
.caused_by(trc::location!())?
.set(
ValueClass::TaskQueue(TaskQueueClass::UnindexEmail { due }),
ValueClass::TaskQueue(TaskQueueClass::UpdateIndex {
index: SearchIndex::Email,
due,
is_insert: false,
}),
0u64.serialize(),
)
.commit_point();

View File

@@ -305,7 +305,7 @@ impl<T: SessionStream> SessionData<T> {
collection: Collection::Email.into(),
document_id: 0,
class: ValueClass::IndexProperty(IndexPropertyClass::Integer {
property: EmailField::Stats.into(),
property: EmailField::ReceivedToSize.into(),
value: 0,
}),
},
@@ -314,7 +314,7 @@ impl<T: SessionStream> SessionData<T> {
collection: Collection::Email.into(),
document_id: u32::MAX,
class: ValueClass::IndexProperty(IndexPropertyClass::Integer {
property: EmailField::Stats.into(),
property: EmailField::ReceivedToSize.into(),
value: u64::MAX,
}),
},