• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

veeso / wasm-dbms / 38079305667
95%

Build:
DEFAULT BRANCH: main
Ran 10 Oct 2026 07:33PM UTC
Jobs 1
Files 132
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Oct 2026 07:18PM UTC coverage: 94.54% (+0.09%) from 94.454%
38079305667

push

github

web-flow
feat(dbms)!: execute joins with a hash join into JoinResultSet (#182)

The join engine compared every left row with every right row and cloned both rows for each match, so a join cost grew with the product of the two table sizes and 10,000 by 10,000 rows took over half a second for 10,000 output rows. On top of that the result repeated a JoinColumnDef with owned strings in every cell, which alone cost a quarter of the join time. Each join clause now builds a hash table over the right rows and probes it once per left row, intermediate rows are kept as row indices until filter, ordering, offset and limit have run, and select_join returns a JoinResultSet with the column list once and the rows as plain values. The left join keys are pushed down as an IN filter only when the right join column leads an index and the distinct key count fits the planner's 64-alternative limit; other inner and left joins scan non-null right keys once. DatabaseSchema::table_indexes exposes declared indexes. Filter gains a borrowing matches_joined_row_ref variant and the comparison benchmark gains a query/join_large case.

BREAKING CHANGE: Database::select_join and DatabaseSchema::select_join return DbmsResult<JoinResultSet> instead of DbmsResult<Vec<Vec<(JoinColumnDef, Value)>>>. Iterate the result with for row in &result and row.iter(), or resolve a column once with column_index and index result.rows. SqlResult::Rows is unchanged.

closes #181

771 of 787 new or added lines in 7 files covered. (97.97%)

1 existing line in 1 file now uncovered.

28953 of 30625 relevant lines covered (94.54%)

1709039.73 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
98.84
0.77% crates/wasm-dbms/wasm-dbms/src/join.rs
5
91.32
-1.1% crates/wasm-dbms/wasm-dbms/src/schema.rs
3
97.84
crates/wasm-dbms/wasm-dbms-api/src/dbms/query/join_result.rs
1
39.53
0.0% crates/wasm-dbms/wasm-dbms-api/src/dbms/foreign_fetcher.rs

Coverage Regressions

Lines Coverage ∆ File
1
98.84
0.77% crates/wasm-dbms/wasm-dbms/src/join.rs
Jobs
ID Job ID Ran Files Coverage
1 38079305667.1 10 Oct 2026 07:33PM UTC 132
94.54
GitHub Action Run
Source Files on build 38079305667
  • Tree
  • List 132
  • Changed 8
  • Source Changed 8
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38079305667
  • 2dedc595 on github
  • Prev Build on main (#38040885852)
  • Next Build on main (#38080299188)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc