Skip to content
This repository was archived by the owner on Jul 30, 2026. It is now read-only.

Commit fb5ec4a

Browse files
authored
Merge pull request #380 from FalkorDB/effects-buffer
feat: pending attrs split + effects buffer
2 parents 0858052 + 7c72209 commit fb5ec4a

4 files changed

Lines changed: 701 additions & 73 deletions

File tree

graph/src/runtime/ops/commit.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,25 @@ impl<'a> Iterator for CommitOp<'a> {
7878
{
7979
return Some(Err(e));
8080
}
81+
// Commit succeeded — build effects buffer from pending data, then clear.
82+
{
83+
let pending = self.runtime.pending.borrow();
84+
if pending.effects_count() > 0 {
85+
let mut buf_ref = self.runtime.effects_buffer.borrow_mut();
86+
let buf = buf_ref.get_or_insert_with(Vec::new);
87+
let n_effects = pending.build_effects_buffer(&self.runtime.g, buf);
88+
self.runtime
89+
.effects_count
90+
.set(self.runtime.effects_count.get() + n_effects);
91+
}
92+
}
93+
self.runtime.pending.borrow_mut().clear();
94+
// Update schema baseline so the next commit in this query only
95+
// emits newly added schema entries.
96+
self.runtime
97+
.pending
98+
.borrow_mut()
99+
.set_schema_baseline(&self.runtime.g);
81100
// Reverse once so we can pop from the end in O(1) while preserving order.
82101
self.results.reverse();
83102
}

0 commit comments

Comments
 (0)