From b9d4f912dccf5f94d525dd63e4ab2fe21747a2e1 Mon Sep 17 00:00:00 2001 From: Tpt Date: Sat, 27 Nov 2021 20:40:46 +0100 Subject: [PATCH] Bulk load: avoid not needed lookup It's fine to have some extra inserts and avoid reading the DB state --- lib/src/storage/mod.rs | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/lib/src/storage/mod.rs b/lib/src/storage/mod.rs index 842a8f4a..a1a591d2 100644 --- a/lib/src/storage/mod.rs +++ b/lib/src/storage/mod.rs @@ -957,7 +957,6 @@ impl StorageWriter { #[cfg(not(target_arch = "wasm32"))] pub struct BulkLoader<'a> { storage: &'a Storage, - reader: Reader, id2str: HashMap>, quads: HashSet, triples: HashSet, @@ -970,7 +969,6 @@ impl<'a> BulkLoader<'a> { pub fn new(storage: &'a Storage) -> Self { Self { storage, - reader: storage.db.reader(), id2str: HashMap::default(), quads: HashSet::default(), triples: HashSet::default(), @@ -987,33 +985,21 @@ impl<'a> BulkLoader<'a> { self.buffer.clear(); if quad.graph_name.is_default_graph() { write_spo_quad(&mut self.buffer, &encoded); - if !self - .reader - .contains_key(&self.storage.dspo_cf, &self.buffer)? - && self.triples.insert(encoded.clone()) - { + if self.triples.insert(encoded.clone()) { self.insert_term(quad.subject.as_ref().into(), &encoded.subject)?; self.insert_term(quad.predicate.as_ref().into(), &encoded.predicate)?; self.insert_term(quad.object.as_ref(), &encoded.object)?; } } else { write_spog_quad(&mut self.buffer, &encoded); - if !self - .reader - .contains_key(&self.storage.spog_cf, &self.buffer)? - && self.quads.insert(encoded.clone()) - { + if self.quads.insert(encoded.clone()) { self.insert_term(quad.subject.as_ref().into(), &encoded.subject)?; self.insert_term(quad.predicate.as_ref().into(), &encoded.predicate)?; self.insert_term(quad.object.as_ref(), &encoded.object)?; self.buffer.clear(); write_term(&mut self.buffer, &encoded.graph_name); - if !self - .reader - .contains_key(&self.storage.graphs_cf, &self.buffer)? - && self.graphs.insert(encoded.graph_name.clone()) - { + if self.graphs.insert(encoded.graph_name.clone()) { self.insert_term( match quad.graph_name.as_ref() { GraphNameRef::NamedNode(n) => n.into(),