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

joaoh82 / rust_sqlite / 25425173432
65%

Build:
DEFAULT BRANCH: main
Ran 06 May 2026 08:45AM UTC
Jobs 1
Files 48
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

06 May 2026 08:41AM UTC coverage: 65.306% (+0.7%) from 64.597%
25425173432

push

github

web-flow
feat(sql): JOINs — INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER (SQLR-5) (#99)

Adds the four-flavor JOIN quartet with explicit ON conditions and
table aliases. SQLite ships only INNER and LEFT OUTER; we implement
RIGHT and FULL OUTER as well because the per-flavor delta on top of
a shared nested-loop driver is just NULL-padding policy. See
docs/design-decisions.md §14a for the reasoning.

Engine changes:
  - New RowScope trait abstracts column lookup; SingleTableScope
    preserves the legacy fast path verbatim, JoinedScope handles
    multi-table resolution with NULL padding.
  - eval_expr / eval_predicate / eval_function / json_fn_* / FTS
    helpers / vector-arg extractor refactored to take &dyn RowScope.
  - execute_select_rows_joined: left-folded nested-loop driver,
    O(N×M) per join level. ON only sees tables in scope at that
    join level (forward refs error). ON reuses eval_predicate_scope
    so non-zero ints are truthy, matching WHERE.
  - Parser: SelectQuery gains table_alias + joins; ProjectionKind
    Column carries an optional qualifier for t.col disambiguation.
    USING / NATURAL / CROSS / comma joins, plus aggregates / GROUP
    BY / DISTINCT over JOIN, surface as friendly NotImplemented.

17 new tests covering all four flavors, NULL padding both ways,
qualified/unqualified resolution, ambiguity, self-join rejection,
three-table chaining, chained LEFT OUTER, NULL ordering on outer
joins, ON-references-later-table errors, and truthy-int ON.

Docs: README + supported-sql.md + design-decisions.md +
architecture.md + sql-engine.md updated.

526 tests passing, 0 failures. Build, fmt, clippy clean.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

387 of 450 new or added lines in 2 files covered. (86.0%)

3 existing lines in 2 files now uncovered.

8704 of 13328 relevant lines covered (65.31%)

1.21 hits per line

Uncovered Changes

Lines Coverage ∆ File
39
81.54
2.32% src/sql/executor.rs
24
67.35
2.6% src/sql/parser/select.rs

Coverage Regressions

Lines Coverage ∆ File
2
81.54
2.32% src/sql/executor.rs
1
67.35
2.6% src/sql/parser/select.rs
Jobs
ID Job ID Ran Files Coverage
1 25425173432.1 06 May 2026 08:45AM UTC 48
65.31
GitHub Action Run
Source Files on build 25425173432
  • Tree
  • List 48
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 998329e1 on github
  • Prev Build on main (#25417336632)
  • Next Build on main (#25425399620)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc