Skip to content

test(linux): run the million-row case on SQLite in its own binary - #3583

Merged
datlechin merged 2 commits into
mainfrom
test/linux-sqlite-million-rows
Oct 19, 2026
Merged

datlechin merged 2 commits into
mainfrom
test/linux-sqlite-million-rows

Conversation

@datlechin

Copy link
Copy Markdown
Member

Why

Release criterion 4 still needed the 1,000,000-row page-and-export test on SQLite. Its suites run in the unit suite under cargo test, where one binary's tests share a process, so a resident peak measured there would count theirs too.

Change

  • crates/drivers/sqlite/tests/large_table.rs is a test target holding only this case, so its process is its own. The fast job's unit suite runs it.
  • large_table_conformance_suite! takes docker: true | false. The five server drivers pass true.
  • SQLite's adapter moves to tests/integration/sqlite_engine.rs, which both targets include. It fills the table with a recursive CTE.
  • The roadmap row and testing docs say SQLite runs it.

Verified

  • Docker, debug: walk 3.6 to 12 s, export 3.5 to 9.2 s, run 9 to 22 s. Release: about 5 s. Peak growth 2 MiB or less. The shared bounds hold.
  • With stream_read buffering every row, the case fails at +313.7 MiB.
  • Adds about 10 to 25 s of run and one test binary to build per unit-suite job.

@datlechin
datlechin merged commit 1643006 into main Oct 19, 2026
30 checks passed
@datlechin
datlechin deleted the test/linux-sqlite-million-rows branch October 19, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant