Skip to content

Comments

[regression] Error with adaptive predicate pushdown: "Invalid offset in sparse column chunk data: 754, no matching page found."#9301

Merged
alamb merged 3 commits intoapache:mainfrom
sdf-jkl:regression-fix
Jan 30, 2026
Merged

[regression] Error with adaptive predicate pushdown: "Invalid offset in sparse column chunk data: 754, no matching page found."#9301
alamb merged 3 commits intoapache:mainfrom
sdf-jkl:regression-fix

Conversation

@sdf-jkl
Copy link
Contributor

@sdf-jkl sdf-jkl commented Jan 29, 2026

Which issue does this PR close?

Rationale for this change

Check issue

What changes are included in this PR?

Added a copy of override_selector_strategy_if_needed to the filter application stage.

Now if we use mask selection, and there are skipped pages in predicate projection we enforce RLE selection.

Are these changes tested?

Yes, using #9243

Are there any user-facing changes?

@github-actions github-actions bot added the parquet Changes to the parquet crate label Jan 29, 2026
@sdf-jkl
Copy link
Contributor Author

sdf-jkl commented Jan 29, 2026

@alamb that's it?

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

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

Thank you @sdf-jkl -- this is a great find and fix that makes total sense to me 🙏 I am going to keep working on some more testing to be extra confident, but overall I think this is a perfect PR for fixing the bug while we sort out the better solution

@@ -437,6 +437,18 @@ impl RowGroupReaderBuilder {
.with_parquet_metadata(&self.metadata)
.build_array_reader(self.fields.as_deref(), predicate.projection())?;
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a great fix -- and it makes total sense to me (basically that filter evaluation is a different path, so we need to revert the selector strategy on the filter path as well)

@alamb
Copy link
Contributor

alamb commented Jan 30, 2026

FYI @hhhizzz

@alamb alamb merged commit b3ad9a8 into apache:main Jan 30, 2026
16 checks passed
@alamb
Copy link
Contributor

alamb commented Jan 30, 2026

Thank you again so much for all your help with this @sdf-jkl

@sdf-jkl sdf-jkl deleted the regression-fix branch January 30, 2026 14:26
alamb added a commit to alamb/arrow-rs that referenced this pull request Jan 30, 2026
…in sparse column chunk data: 754, no matching page found." (apache#9301)

<!--
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.
-->

- Closes apache#9239.

Check issue
<!--
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.
-->

Added a copy of `override_selector_strategy_if_needed` to the filter
application stage.

Now if we use mask selection, and there are skipped pages in predicate
projection we enforce RLE selection.
<!--
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.
-->

Yes, using apache#9243
<!--
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)?
-->

<!--
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 call them out.
-->

---------

Co-authored-by: Andrew Lamb <[email protected]>
@alamb
Copy link
Contributor

alamb commented Jan 30, 2026

alamb added a commit that referenced this pull request Feb 2, 2026
… "Invalid offset …(#9301) (#9309)

- Part of #9240
- Related to #9239

This is a backport of the following PRs  to the 57 line
- #9243 from @erratic-pattern
(test)
- #9301 from @sdf-jkl  (the fix)

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

Labels

parquet Changes to the parquet crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[regression] Error with adaptive predicate pushdown: "Invalid offset in sparse column chunk data: 754, no matching page found."

2 participants