don't lock relations needlessly

main
Ziyang Hu 2 years ago
parent a91cfc840d
commit 45f4d2f257

@ -75,7 +75,7 @@ impl<'a> SessionTx<'a> {
let mut relation_store = if op == RelationOp::Replace || op == RelationOp::Create { let mut relation_store = if op == RelationOp::Replace || op == RelationOp::Create {
self.create_relation(meta.clone())? self.create_relation(meta.clone())?
} else { } else {
self.get_relation(&meta.name, true)? self.get_relation(&meta.name, false)?
}; };
if let Some((old_put, old_retract)) = replaced_old_triggers { if let Some((old_put, old_retract)) = replaced_old_triggers {
relation_store.put_triggers = old_put; relation_store.put_triggers = old_put;

@ -214,7 +214,7 @@ impl<'s, S: Storage<'s>> Db<S> {
s s
} }
}; };
let handle = tx.get_relation(relation, true)?; let handle = tx.get_relation(relation, false)?;
if handle.access_level < AccessLevel::Protected { if handle.access_level < AccessLevel::Protected {
bail!(InsufficientAccessLevel( bail!(InsufficientAccessLevel(
@ -359,7 +359,7 @@ impl<'s, S: Storage<'s>> Db<S> {
for relation in relations { for relation in relations {
let src_handle = src_tx.get_relation(relation, false)?; let src_handle = src_tx.get_relation(relation, false)?;
let dst_handle = dst_tx.get_relation(relation, true)?; let dst_handle = dst_tx.get_relation(relation, false)?;
if dst_handle.access_level < AccessLevel::Protected { if dst_handle.access_level < AccessLevel::Protected {
bail!(InsufficientAccessLevel( bail!(InsufficientAccessLevel(
@ -771,7 +771,7 @@ impl<'s, S: Storage<'s>> Db<S> {
#[diagnostic(code(eval::stored_relation_not_found))] #[diagnostic(code(eval::stored_relation_not_found))]
struct StoreRelationNotFoundError(String); struct StoreRelationNotFoundError(String);
let existing = tx.get_relation(&meta.name, true)?; let existing = tx.get_relation(&meta.name, false)?;
ensure!( ensure!(
tx.relation_exists(&meta.name)?, tx.relation_exists(&meta.name)?,

Loading…
Cancel
Save