limbo/core
Glauber Costa f149b40e75 Implement JOINs in the DBSP circuit
This PR improves the DBSP circuit so that it handles the JOIN operator.
The JOIN operator exposes a weakness of our current model: we usually
pass a list of columns between operators, and find the right column by
name when needed.

But with JOINs, many tables can have the same columns. The operators
will then find the wrong column (same name, different table), and
produce incorrect results.

To fix this, we must do two things:
1) Change the Logical Plan. It needs to track table provenance.
2) Fix the aggregators: it needs to operate on indexes, not names.

For the aggregators, note that table provenance is the wrong
abstraction. The aggregator is likely working with a logical table that
is the result of previous nodes in the circuit. So we just need to be
able to tell it which index in the column array it should use.
2025-09-19 03:59:28 -05:00
..
benches fmt 2025-09-18 18:40:13 +02:00
ext remove mvvmode and set logical log as default 2025-09-18 18:22:25 +02:00
functions Merge 'core: Support ceiling modifier in datetime' from Ceferino Patino 2025-09-10 14:46:07 +03:00
incremental Implement JOINs in the DBSP circuit 2025-09-19 03:59:28 -05:00
io core: Use sequential consistency for atomics by default 2025-09-18 13:38:13 +03:00
json [*.rs] Resolve warnings (mostly "hiding a lifetime that's elided elsewhere is confusing") 2025-09-18 22:47:43 -05:00
mvcc mvcc: keep existing begin timestamp when upgrading mv tx to exclusive 2025-09-19 09:18:20 +03:00
numeric fix: math function parameter conversion 2025-09-10 20:49:30 -03:00
storage core/storage: Wrap Pager::header_ref_state in RwLock 2025-09-19 08:38:45 +03:00
time
translate Implement JOINs in the DBSP circuit 2025-09-19 03:59:28 -05:00
vdbe Merge 'Fix math functions compatibility issues' from Levy A. 2025-09-19 09:15:11 +03:00
vector rename functions 2025-08-15 17:08:53 -04:00
assert.rs
build.rs
Cargo.toml move as many dependencies as possible to workspace to avoid multiple versions of the same dependency 2025-09-15 17:19:36 -03:00
error.rs Add checksum module 2025-09-13 11:00:37 +05:30
fast_lock.rs [*.rs] Resolve warnings (mostly "hiding a lifetime that's elided elsewhere is confusing") 2025-09-18 22:47:43 -05:00
function.rs core/function: Wrap ExtFunc in Arc 2025-09-17 11:57:23 +03:00
info.rs
lib.rs core/mvcc: Kill noop storage 2025-09-19 08:52:57 +03:00
parameters.rs
pragma.rs core: Panic on fsync() error by default 2025-09-13 10:21:12 +03:00
pseudo.rs
schema.rs extract columns from all tables in case of joins. 2025-09-19 03:57:11 -05:00
series.rs Replace ConstraintInfo::plan_info with ConstraintInfo::index 2025-08-05 05:48:29 +02:00
state_machine.rs core/mvcc: make commit_txn return on I/O 2025-09-02 17:07:38 +02:00
types.rs Don't mutate state in op_agg_final 2025-09-13 10:49:14 +02:00
util.rs extract columns from all tables in case of joins. 2025-09-19 03:57:11 -05:00
uuid.rs
vtab.rs core: Use sequential consistency for atomics by default 2025-09-18 13:38:13 +03:00