Skip to content

[spark] Implement SupportsRuntimeV2Filtering - #4550

Open
Yohahaha wants to merge 1 commit into
apache:mainfrom
Yohahaha:spark/dsv2-runtime-filter
Open

Yohahaha wants to merge 1 commit into
apache:mainfrom
Yohahaha:spark/dsv2-runtime-filter

Conversation

@Yohahaha

@Yohahaha Yohahaha commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #3344

Enable dynamic partition pruning for Spark batch reads through SupportsRuntimeV2Filtering.

Brief change log

  • Advertise readable partition columns and apply supported runtime partition predicates.
  • Filter the initially planned splits while preserving their order, offsets, snapshots, time ranges, and reader factory.
  • Support append, upsert, incremental, and lake-union reads, combining runtime filters with static partition pruning.

Tests

  • FlussRuntimeFilteringTest: partition attributes, special column names, projected schemas, empty and null predicates, multiple partition keys, static pruning, repeated filtering, batch lifecycle, split boundaries, and lake partition metadata.
  • SparkRuntimeFilteringTest: append/upsert joins with AQE enabled and disabled, incremental reads, DPP result equivalence and split pruning, and data written after initial planning.
  • SparkLakeRuntimeFilteringTest: append/upsert joins with dynamic partition pruning for lake-only and combined lake/log reads.

API and Format

No public Fluss API or storage format changes.

Documentation

Adds automatic runtime partition pruning for eligible Spark batch reads. No user documentation changes.

Prune initially planned batch splits using runtime partition predicates
for append, upsert, incremental, and lake-union Spark reads. Reuse
original offsets, snapshots, partition metadata, and reader factories.

Fixes apache#3344

Co-Authored-By: Codex <noreply@openai.com>
AI-Model: gpt-6
AI-Contributed/Feature: 132/132
AI-Contributed/UT: 530/530
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[spark] Implement SupportsRuntimeV2Filtering

1 participant