Skip to content

test(proto): split roundtrip_physical_plan.rs by plan category - #24223

Merged
alamb merged 1 commit into
apache:mainfrom
pydantic:claude/datafusion-prs-24172-jdme9l-split-roundtrip-tests
Aug 10, 2026
Merged

alamb merged 1 commit into
apache:mainfrom
pydantic:claude/datafusion-prs-24172-jdme9l-split-roundtrip-tests

Conversation

@adriangb

Copy link
Copy Markdown
Contributor

roundtrip_physical_plan.rs had grown to 5,682 lines, so finding the tests for a given plan — or noticing that a plan has none — meant scrolling through every other plan's tests. #24171 (e) proposed splitting it by plan category; this does that.

The tests now live in tests/cases/plans/, grouped by what they cover: leaves, dispatch, limits, filters, joins, sorts, aggregates, windows, sources, sinks, udfs, exprs, dynamic_filters, scalar_subquery, misc and tpch. The shared round-trip helpers (roundtrip_test and friends) stay in plans/mod.rs; every other item moved into exactly one file, and each file carries its own imports rather than inheriting one 140-line block.

Pure code motion: no test was added, removed, renamed or edited. Every moved item is byte-identical to its previous form, and the test inventory (--list) is unchanged at 222 entries.

Which issue does this PR close?

  • Closes #.

Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

@github-actions github-actions Bot added the proto Related to proto crate label Aug 10, 2026
@adriangb

Copy link
Copy Markdown
Contributor Author

@andygrove a refactor related to the proto tests

`roundtrip_physical_plan.rs` had grown to 5,785 lines, so finding the
tests for a given plan — or noticing that a plan has none — meant scrolling
through every other plan's tests. apache#24171 (e) proposed splitting it by plan
category; this does that.

The tests now live in `tests/cases/plans/`, grouped by what they cover:
leaves, dispatch, limits, filters, joins, sorts, aggregates, windows,
sources, sinks, udfs, exprs, dynamic_filters, scalar_subquery, misc and
tpch. The shared round-trip helpers (`roundtrip_test` and friends) stay in
`plans/mod.rs`; every other item moved into exactly one file, and each file
carries its own imports rather than inheriting one 140-line block.

Pure code motion: no test was added, removed, renamed or edited. Every
moved item is byte-identical to its previous form, and the test inventory
(`--list`) is unchanged at 224 entries.
@adriangb
adriangb force-pushed the claude/datafusion-prs-24172-jdme9l-split-roundtrip-tests branch from 1d8d61b to d792cc5 Compare August 10, 2026 14:05
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.98%. Comparing base (f4c8ba1) to head (d792cc5).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24223      +/-   ##
==========================================
- Coverage   80.98%   80.98%   -0.01%     
==========================================
  Files        1106     1106              
  Lines      383232   383232              
  Branches   383232   383232              
==========================================
- Hits       310372   310371       -1     
+ Misses      54543    54540       -3     
- Partials    18317    18321       +4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@alamb alamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a nice cleanup -- thank you @adriangb

I had claude review and confirm that this is a pure code motion refactor

Give its high liklihood of conflicts, I will put it in the merge queue immediately

@alamb
alamb added this pull request to the merge queue Aug 10, 2026
Merged via the queue into apache:main with commit d443bab Aug 10, 2026
37 checks passed
@adriangb
adriangb deleted the claude/datafusion-prs-24172-jdme9l-split-roundtrip-tests branch August 10, 2026 19:11
@adriangb

Copy link
Copy Markdown
Contributor Author

Thanks so much @alamb !

kosiew pushed a commit to kosiew/datafusion that referenced this pull request Aug 12, 2026
…e#24223)

`roundtrip_physical_plan.rs` had grown to 5,682 lines, so finding the
tests for a given plan — or noticing that a plan has none — meant
scrolling through every other plan's tests. apache#24171 (e) proposed
splitting it by plan category; this does that.

The tests now live in `tests/cases/plans/`, grouped by what they cover:
leaves, dispatch, limits, filters, joins, sorts, aggregates, windows,
sources, sinks, udfs, exprs, dynamic_filters, scalar_subquery, misc and
tpch. The shared round-trip helpers (`roundtrip_test` and friends) stay
in `plans/mod.rs`; every other item moved into exactly one file, and
each file carries its own imports rather than inheriting one 140-line
block.

Pure code motion: no test was added, removed, renamed or edited. Every
moved item is byte-identical to its previous form, and the test
inventory (`--list`) is unchanged at 222 entries.

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes #.

## Rationale for this change

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.

Please explain the problem you are trying to solve in terms of the
user-visible
behavior, rather than the implementation.

For example, "The code in `foo.rs` doesn't handle nulls" is a symptom of
the
implementation. "COUNT(DISTINCT) returns wrong results when the column
contains
nulls" is the user-visible problem.
-->

## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here, but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.

If there are any breaking changes to public APIs, please add the `api
change` label.
-->

Co-authored-by: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

proto Related to proto crate v55.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants