fix wrong check order

main
Ziyang Hu 1 year ago
parent 26c6872435
commit 23600e11ac

@ -260,12 +260,12 @@ impl<'s, S: Storage<'s>> Db<S> {
) -> Result<NamedRows, Report> { ) -> Result<NamedRows, Report> {
let mut callback_collector = BTreeMap::new(); let mut callback_collector = BTreeMap::new();
let mut write_lock_names = BTreeSet::new(); let mut write_lock_names = BTreeSet::new();
if readonly && !write_lock_names.is_empty() {
bail!("Read-only imperative program attempted to acquire write locks");
}
for p in ps { for p in ps {
p.needs_write_locks(&mut write_lock_names); p.needs_write_locks(&mut write_lock_names);
} }
if readonly && !write_lock_names.is_empty() {
bail!("Read-only imperative program attempted to acquire write locks");
}
let is_write = !write_lock_names.is_empty(); let is_write = !write_lock_names.is_empty();
let write_lock = self.obtain_relation_locks(write_lock_names.iter()); let write_lock = self.obtain_relation_locks(write_lock_names.iter());
let _write_lock_guards = write_lock.iter().map(|l| l.read().unwrap()).collect_vec(); let _write_lock_guards = write_lock.iter().map(|l| l.read().unwrap()).collect_vec();

Loading…
Cancel
Save