Skip to content

Add plan parent-reduction rule API - #9196

Draft
joseph-isaacs wants to merge 1 commit into
vortex-planfrom
vortex-plan-rules
Draft

Add plan parent-reduction rule API#9196
joseph-isaacs wants to merge 1 commit into
vortex-planfrom
vortex-plan-rules

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Summary

  • add a typed PlanParentReduceRule API for child-driven physical-plan rewrites
  • add a type-erased adapter for collecting heterogeneous typed rules
  • add an ordered static PlanParentRuleSet whose first successful rewrite wins
  • verify in debug builds that rewrites preserve the parent row count and dtype
  • expose the framework through vortex_layout::plan::optimizer

Stack

This draft is stacked on #9142 and targets vortex-plan.

The concrete expression optimization rules are intentionally excluded and live in #9166, which is stacked on this PR.

Scope

This PR only introduces the rule framework and APIs. It registers no concrete rules and does not change optimization behavior.

Checks

  • cargo test -p vortex-layout — 211 passed
  • cargo clippy -p vortex-layout --all-targets --all-features -- -D warnings
  • cargo +nightly fmt --all -- --check
  • git diff --check

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@codspeed-hq

codspeed-hq Bot commented Aug 5, 2026

Copy link
Copy Markdown

Hooray! CodSpeed harness just leveled up!

The base and head of this comparison were measured with different runner settings, so their benchmark values are not directly comparable.

What changed between base and head:

Re-run the base with the same settings to get a valid performance comparison.


Comparing vortex-plan-rules (ed09b04) with vortex-plan (bd412f3)

Open in CodSpeed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant