Implement the Join Operator

The join operator is also a stateful operator. It keeps the input deltas
stored in the state, for both the left and right branches of the join.

JOINs extract a join key, which is the values that were used in the
join's equality statement. That key is now our zset_id, and it points
to a collection of rows.
This commit is contained in:
Glauber Costa
2025-09-16 12:10:00 -05:00
parent 2e7a45559b
commit 6be5eb74d9
2 changed files with 1582 additions and 36 deletions

View File

@@ -75,6 +75,10 @@ impl HashableRow {
hasher.finish()
}
pub fn cached_hash(&self) -> u64 {
self.cached_hash
}
}
impl Hash for HashableRow {
@@ -168,7 +172,7 @@ impl Delta {
}
/// A pair of deltas for operators that process two inputs
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Default)]
pub struct DeltaPair {
pub left: Delta,
pub right: Delta,

File diff suppressed because it is too large Load Diff