Repository navigation
feat(read): complete nested projection pushdown for Parquet - #1248
Merged
JingsongLi merged 1 commit intoOct 29, 2026
Merged
Conversation
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.
Purpose
A read type that selects only fields inside an ARRAY or MAP must reach the Parquet leaf-column projection. For example, reading only
items[].wantedfromARRAY<ROW<wanted, unused>>should avoid decodingunused, including through mixed ROW/ARRAY/MAP nesting.This also makes formats without nested projection support read complete physical fields and restore the requested shape outside the decoder, while preserving Java Paimon's field-ID and null/anchor semantics.
Brief change log
Tests
cargo fmt --all -- --check: passed.vortex: 4671 passed, 6 ignored.cargo clippy --locked --all-targets --workspace --features vortex -- -D warnings -A clippy::nonminimal_bool: passed. Strict Clippy is blocked by four pre-existing warnings in unchangedde_vector_read.rs(two),table_merge_into.rs, andvector_search_common.rs.Local full-suite builds used
CARGO_INCREMENTAL=0andCARGO_PROFILE_TEST_DEBUG=0to limit build artifacts.API and Format
No public API, table option, or on-disk format changes. Nested requests continue to use
with_read_type. Readers that cannot prune nested fields keep full decoder types and apply projection outside the format reader.Documentation
Implementation comments document the format capability, Java-compatible pruning behavior, and Vortex validity fallback. Fixture generators are included alongside the saved test files.
AI assistance
Codex assisted with implementation, regression testing, and review.