SQLStorm Benchmark

July 2, 2026 ยท View on GitHub

This folder contains the LPTS SQLStorm runner and the upstream SQLStorm query corpus. The upstream SQLStorm project README is in benchmark/sqlstorm/SQLStorm/README.md.

SQLStorm

Build LPTS first:

GEN=ninja make

Run the benchmark:

build/release/extension/lpts/lpts_sqlstorm_benchmark --tpch_sf 0.001 --timeout 10

The runner re-runs each SQLStorm TPC-H query under SET lpts_check = true to verify round-trip correctness. It reports success, DuckDB errors, LPTS errors, unsupported cases, timeouts, and incorrect results.

Useful options:

OptionDescription
--queries <dir>Override the SQLStorm TPC-H query directory.
--out <csv>Write results to a specific CSV path.
--timeout <sec>Set the per-query timeout.
--tpch_sf <float>Set the generated TPC-H scale factor.
--compare_perfCompare original DuckDB execution time against generated SQL execution time.

Run SQLStorm only when a feature is complete or before pushing. A regression in the number of successful queries needs investigation before the change is ready.

DuckDB sqllogic suite

A second, broader correctness sweep runs DuckDB's own sqllogic corpus (duckdb/test/sql/**) through LPTS in parallel and gates against a committed baseline โ€” this is part of make test (also available as make coverage-check / make coverage-baseline). See test.md and the driver test/corpus_gate/lpts_corpus_gate.cpp.