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 {
self.create_relation(meta.clone())?
} else {
self.get_relation(&meta.name, true)?
self.get_relation(&meta.name, false)?
};
if let Some((old_put, old_retract)) = replaced_old_triggers {
relation_store.put_triggers = old_put;

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

Loading…
Cancel
Save