From 3ffa6702cdb39c21a26ddc434f46d17d0104cb7b Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Wed, 8 Jan 2025 10:13:00 +0200 Subject: Fix compaction issue where get of valid logkey produced unset metadata row (len = 0) --- log_db/benches/utils.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'log_db/benches/utils.rs') diff --git a/log_db/benches/utils.rs b/log_db/benches/utils.rs index 05ea30f..0f9c620 100644 --- a/log_db/benches/utils.rs +++ b/log_db/benches/utils.rs @@ -12,9 +12,9 @@ pub enum Field { #[derive(PartialEq, Eq, Debug, Clone)] pub struct Inst { - id: i64, - name: String, - data: Vec, + pub id: i64, + pub name: String, + pub data: Vec, } impl Recordable for Inst { type Field = Field; @@ -28,6 +28,10 @@ impl Recordable for Inst { fn primary_key() -> Self::Field { Field::Id } + fn secondary_keys() -> Vec { + vec![Field::Name] + } + fn into_record(self) -> Vec { vec![ Value::Int(self.id), @@ -81,11 +85,17 @@ pub fn random_inst(from_id: i64, to_id: i64) -> Inst { } } -pub fn prefill_db(db: &mut DB, n_records: usize, compact: bool) -> Result<(), DBError> { - for _ in 0..n_records { +pub fn prefill_db( + db: &mut DB, + insts: &mut Vec, + n_records: usize, + compact: bool, +) -> Result<(), DBError> { + for i in 0..(n_records - insts.len()) { let inst = random_inst(0, n_records as i64); + insts.push(inst.clone()); db.upsert(inst)?; - if compact { + if i % 1000 == 0 && compact { db.do_maintenance_tasks()?; } } -- cgit v1.3