feat: 14 - dry run#16
Merged
Merged
Conversation
joefrost01
commented
Apr 11, 2026
Contributor
Author
joefrost01
left a comment
There was a problem hiding this comment.
Claude review complete: LGTM on dry-run behavior, test coverage, and code quality; ready to merge once CI passes.
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.
What problem are you trying to solve?
--dry-runonly printed a one-line count summary and did not provide the execution plan details required by the spec (resolved files, format summary, SQL/config overview). It also errored for zero matched files, which made dry-run less useful as an informational planning mode.What does this PR change?
This implements a detailed dry-run plan renderer in the query pipeline, including file list preview, format/schema/query/output summary, and key execution flags. It also adds dry-run-specific file resolution behavior for zero-file scenarios and
--pipe dataplaceholder handling without consuming stdin payload.Does this change align with DESIGN.md?
Yes. Dry run remains an early pipeline exit and still avoids DuckDB execution and downstream processing. The change only expands pre-execution reporting and keeps normal query behavior unchanged when
--dry-runis not set.What alternatives did you consider?
I considered extending the existing single-line dry-run message with ad-hoc fields, but that made testing and formatting brittle. Building a dedicated plan string generator made behavior explicit and testable, including truncation/mixed-format logic.
Does this PR contain multiple unrelated changes?
No. All changes are scoped to feature 14 dry-run behavior.
Existing PRs
Testing
cargo testpassescargo clippypasses with no warningscargo fmthas been rundry_run_plan_truncates_file_list_and_shows_summary_fieldsdry_run_allows_zero_files_for_missing_globdry_run_pipe_data_uses_stdin_placeholder_without_reading_inputEvaluation
--pipe dataand stdin format set (stdin placeholder plan path)Human review