Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adaptive Parquet Predicate Pushdown #5523

Open
tustvold opened this issue Mar 17, 2024 · 0 comments
Open

Adaptive Parquet Predicate Pushdown #5523

tustvold opened this issue Mar 17, 2024 · 0 comments
Labels
enhancement Any new improvement worthy of a entry in the changelog

Comments

@tustvold
Copy link
Contributor

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Currently RowSelection stores a list of RowSelector. This is optimised for the case of large runs of skipped or selected rows, allowing this to be pushed down to the underlying decoding machinery. Whilst this works very well for the use-case of skipping data based on the page index, where the selections are necessarily in the thousands of rows, it will potentially degrade in the presence of more granular predicate evaluation, e.g. as performed by ArrowPredicate.

Describe the solution you'd like

In a similar vein to #1248, we should have different strategies based on the selectivity of the predicate. In particular I would like RowSelection to switch between a RowSelector approach that is pushed down to the underlying readers, and a late evaluation approach where it stores a BooleanBuffer that is applied to the columns after the fact

Describe alternatives you've considered

Additional context

@tustvold tustvold added the enhancement Any new improvement worthy of a entry in the changelog label Mar 17, 2024
@tustvold tustvold self-assigned this Mar 17, 2024
@tustvold tustvold removed their assignment May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Any new improvement worthy of a entry in the changelog
Projects
None yet
Development

No branches or pull requests

1 participant