Remove transactions
This commit is contained in:
parent
7d31b34bac
commit
acb3aca28e
97
src/api.rs
97
src/api.rs
|
@ -138,34 +138,18 @@ impl StartInsertState {
|
|||
&self,
|
||||
connection: &C,
|
||||
) -> Result<HashMap<String, u128>, bonsaidb::core::Error> {
|
||||
// TODO: Batch, don't use transaction
|
||||
let mut tx = Transaction::new();
|
||||
// TODO: Batch
|
||||
let mut strings = HashMap::with_capacity(self.strings.len());
|
||||
|
||||
let ordered_strings = self.strings.iter().collect::<Vec<_>>();
|
||||
|
||||
for string in &ordered_strings {
|
||||
crate::schema::LiteralString {
|
||||
string: (*string).clone(),
|
||||
for string in &self.strings {
|
||||
let doc = crate::schema::LiteralString {
|
||||
string: string.clone(),
|
||||
}
|
||||
.push_in_transaction(&mut tx)?;
|
||||
}
|
||||
.push_into_async(connection)
|
||||
.await?;
|
||||
|
||||
let strings = tx
|
||||
.apply_async(connection)
|
||||
.await?
|
||||
.iter()
|
||||
.zip(ordered_strings)
|
||||
.filter_map(|(operation_result, string)| match operation_result {
|
||||
bonsaidb::core::transaction::OperationResult::Success => {
|
||||
eprintln!("Got empty Success, expected DocumentUpdated");
|
||||
None
|
||||
}
|
||||
bonsaidb::core::transaction::OperationResult::DocumentDeleted { .. } => None,
|
||||
bonsaidb::core::transaction::OperationResult::DocumentUpdated {
|
||||
header, ..
|
||||
} => Some((string.clone(), header.id.deserialize::<u128>().ok()?)),
|
||||
})
|
||||
.collect();
|
||||
strings.insert(string.clone(), doc.header.id);
|
||||
}
|
||||
|
||||
Ok(strings)
|
||||
}
|
||||
|
@ -174,34 +158,18 @@ impl StartInsertState {
|
|||
&self,
|
||||
connection: &C,
|
||||
) -> Result<HashMap<langtag::LanguageTagBuf, u128>, bonsaidb::core::Error> {
|
||||
// TODO: Batch, don't use transaction
|
||||
let mut tx = Transaction::new();
|
||||
// TODO: Batch
|
||||
let mut langtags = HashMap::with_capacity(self.langtags.len());
|
||||
|
||||
let ordered_langtags = self.langtags.iter().collect::<Vec<_>>();
|
||||
|
||||
for langtag in &ordered_langtags {
|
||||
crate::schema::LiteralLanguageTag {
|
||||
langtag: (*langtag).clone().into(),
|
||||
for langtag in &self.langtags {
|
||||
let doc = crate::schema::LiteralLanguageTag {
|
||||
langtag: langtag.clone().into(),
|
||||
}
|
||||
.push_in_transaction(&mut tx)?;
|
||||
}
|
||||
.push_into_async(connection)
|
||||
.await?;
|
||||
|
||||
let langtags = tx
|
||||
.apply_async(connection)
|
||||
.await?
|
||||
.iter()
|
||||
.zip(ordered_langtags)
|
||||
.filter_map(|(operation_result, string)| match operation_result {
|
||||
bonsaidb::core::transaction::OperationResult::Success => {
|
||||
eprintln!("Got empty Success, expected DocumentUpdated");
|
||||
None
|
||||
}
|
||||
bonsaidb::core::transaction::OperationResult::DocumentDeleted { .. } => None,
|
||||
bonsaidb::core::transaction::OperationResult::DocumentUpdated {
|
||||
header, ..
|
||||
} => Some((string.clone(), header.id.deserialize::<u128>().ok()?)),
|
||||
})
|
||||
.collect();
|
||||
langtags.insert(langtag.clone(), doc.header.id);
|
||||
}
|
||||
|
||||
Ok(langtags)
|
||||
}
|
||||
|
@ -210,31 +178,16 @@ impl StartInsertState {
|
|||
&self,
|
||||
connection: &C,
|
||||
) -> Result<HashMap<rdf_types::BlankIdBuf, u128>, bonsaidb::core::Error> {
|
||||
// TODO: Batch, don't use transaction
|
||||
let mut tx = Transaction::new();
|
||||
// TODO: Batch
|
||||
let mut blank_nodes = HashMap::with_capacity(self.blank_nodes.len());
|
||||
|
||||
for _ in 0..self.blank_nodes.len() {
|
||||
crate::schema::BlankId.push_in_transaction(&mut tx)?;
|
||||
for blank_node in &self.blank_nodes {
|
||||
let doc = crate::schema::BlankId.push_into_async(connection).await?;
|
||||
|
||||
blank_nodes.insert(blank_node.clone(), doc.header.id);
|
||||
}
|
||||
|
||||
let langtags = tx
|
||||
.apply_async(connection)
|
||||
.await?
|
||||
.iter()
|
||||
.zip(&self.blank_nodes)
|
||||
.filter_map(|(operation_result, blank_node)| match operation_result {
|
||||
bonsaidb::core::transaction::OperationResult::Success => {
|
||||
eprintln!("Got empty Success, expected DocumentUpdated");
|
||||
None
|
||||
}
|
||||
bonsaidb::core::transaction::OperationResult::DocumentDeleted { .. } => None,
|
||||
bonsaidb::core::transaction::OperationResult::DocumentUpdated {
|
||||
header, ..
|
||||
} => Some((blank_node.clone(), header.id.deserialize::<u128>().ok()?)),
|
||||
})
|
||||
.collect();
|
||||
|
||||
Ok(langtags)
|
||||
Ok(blank_nodes)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue