Add support for running sql benchmarks with command line arguments#23772
Open
Omega359 wants to merge 1 commit into
Open
Add support for running sql benchmarks with command line arguments#23772Omega359 wants to merge 1 commit into
Omega359 wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #23772 +/- ##
==========================================
+ Coverage 80.71% 80.77% +0.06%
==========================================
Files 1089 1090 +1
Lines 368748 370359 +1611
Branches 368748 370359 +1611
==========================================
+ Hits 297633 299171 +1538
- Misses 53372 53416 +44
- Partials 17743 17772 +29 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Omega359
marked this pull request as ready for review
July 21, 2026 19:40
Contributor
Author
|
@alamb - this should be the last main PR for the cli. The remaining work is in the bench.sh script to use the benchmark_runner and updated documentation. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Rationale for this change
SQL benchmark suites expose configuration through environment variables. Contributors must consult the source or documentation to discover suite-specific settings, and Cargo does not forward custom arguments to benchmark targets.
This change lets
benchmark_runnerexpose those settings as validated command-line arguments. It also adds suite-specific help and a dry-run mode for inspecting resolved configuration without executing a benchmark.What changes are included in this PR?
This PR adds TOML
.suitemetadata files that define each SQL benchmark suite’s:benchmark_runneruses this metadata to:--pathfor suites that declare aDATA_DIRreplacement.--result-modefor result persistence and validation.--dry-runJSON output containing the resolved options, paths, value sources, filters, and execution mode without loading benchmarkdefinitions or executing SQL.
The existing basic runner, Criterion mode, and suite-listing functionality remain in place.
Are these changes tested?
Yes. New tests cover:
Are there any user-facing changes?
Yes. Contributors can configure suite-specific settings through command-line arguments and inspect them through suite help:
Environment variables remain supported for compatibility with direct cargo bench invocations and existing benchmark definitions.
The SQL benchmark README documents the command-line options, resolution precedence, dry-run behaviour, and .suite metadata format.
I have a script that cover a large number of combinations to exercise the benchmark_runner as much as possible.