limbo/core/translate
Jussi Saurio cd56cff745
Some checks are pending
Build and push limbo-sim image / deploy (push) Waiting to run
C compat Tests / test (push) Waiting to run
Dart/Flutter / test (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Dart/Flutter / test (windows-latest) (push) Waiting to run
Dart/Flutter / precompile (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Dart/Flutter / precompile (macOS-latest) (push) Waiting to run
Dart/Flutter / precompile (windows-latest) (push) Waiting to run
Dart/Flutter / publish (push) Waiting to run
Run long fuzz tests and stress test / run-fuzz-tests (push) Waiting to run
Run long fuzz tests and stress test / run-long-fuzz-tests (push) Waiting to run
Run long fuzz tests and stress test / simple-stress-test (push) Waiting to run
Java Tests / test (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / configure-strategy (push) Waiting to run
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
Merge 'translate/optimizer: Finish implementing ANALYZE' from Preston Thorpe
This PR (mostly) finishes implementing support for `ANALYZE`
It also uses this newly available metadata to improve calculating the
join order.
### Example Queries:
Both the same query, different order:
<img width="757" height="928" alt="image" src="https://github.com/user-
attachments/assets/82edd3bc-ef33-4df0-833d-92106bf4c065" />
Previously, tursodb would have changed the build table when the query
was written with `users` on the RHS. Now that we have the metadata
available, we are able to determine that `products` should _always_ be
the build table for inner equijoin/hash join.
=======================
### AI disclosure
A lot of the emission code in `core/translate/analyze.rs` was written by
codex.
EDIT:  Opus 4.5 was monumental in the cost based optimization work here.
That remains to be seen whether or not it succeeded XD

Closes #4141
2025-12-10 19:35:37 +02:00
..
optimizer Merge 'translate/optimizer: Finish implementing ANALYZE' from Preston Thorpe 2025-12-10 19:35:37 +02:00
aggregation.rs Store Cow<&Expr> in expr_to_reg_cache 2025-11-13 09:32:37 +02:00
alter.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
analyze.rs Add scalar functions to properly support analyze behavior 2025-12-09 19:45:06 -05:00
attach.rs Fix clippy warnings 2025-09-26 12:17:34 -04:00
collate.rs Use expression indexes as covering when possible 2025-11-20 12:47:50 -05:00
compound_select.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
delete.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
display.rs Fix clippy warnings 2025-12-04 16:09:47 -05:00
emitter.rs Cache result column values in the hashtable to prevent additional SeekRowID 2025-12-04 16:09:48 -05:00
expr.rs Add/expand tcl tests for analyze 2025-12-09 20:02:07 -05:00
expression_index.rs Use expression indexes as covering when possible 2025-11-20 12:47:50 -05:00
fkeys.rs cargo fmt 2025-11-17 12:22:55 -05:00
group_by.rs Store Cow<&Expr> in expr_to_reg_cache 2025-11-13 09:32:37 +02:00
index.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
insert.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
integrity_check.rs ignore "virtual" index entries corresponding to the index_methods from integrity check 2025-10-31 14:25:59 +04:00
logical.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
main_loop.rs Fix descending index scan returning rows when seek key is NULL 2025-12-08 13:19:58 +02:00
mod.rs work on finishing ANALYZE impl 2025-12-09 14:46:11 -05:00
order_by.rs Begin to implement index creation on arbitrary expressions 2025-11-20 12:47:45 -05:00
plan.rs Fix condition evaluation that references hash build table now that its no longer in join order 2025-12-04 16:09:49 -05:00
planner.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
pragma.rs adjust registers allocation 2025-11-20 18:00:54 +04:00
result_row.rs triggers: add capability for DeletePlan to write the write set into a RowSet first 2025-11-18 15:19:01 +02:00
rollback.rs translate: refactor arguments and centralize parameter context 2025-09-26 12:06:44 -04:00
schema.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
select.rs Merge 'Fix CTE scope propagation for compound SELECTs' from Martin Mauch 2025-12-10 19:04:03 +02:00
subquery.rs Fix clippy warnings 2025-12-04 16:09:47 -05:00
transaction.rs Add BEGIN CONCURRENT support for MVCC mode 2025-09-11 16:05:52 +03:00
trigger.rs don't allow triggers on system tables 2025-11-26 07:43:15 +05:30
trigger_exec.rs do not store MvStore in Statements. Always get them from database 2025-12-03 10:09:04 -03:00
update.rs chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
upsert.rs run BEFORE and AFTER update triggers on upserts 2025-12-06 15:20:24 -05:00
values.rs feat: fixing name resolution for identifiers inside VALUES() 2025-11-23 12:14:56 +05:30
view.rs Fix: Drop internal DBSP table when dropping materialized view 2025-11-08 20:28:20 +01:00
window.rs Store Cow<&Expr> in expr_to_reg_cache 2025-11-13 09:32:37 +02:00