Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Replace manual `RowSelection` bitmap conversion with `force_mask()` after arrow-rs release

Open Beginner friendly
#26,030 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
rust

Research direction

After the parquet dependency includes RowSelection::force_mask(), start in datafusion/datasource-parquet/src/access_plan.rs and find the manual selector-to-bitmap conversion in ParquetAccessPlan::scan_and_select. Replace that conversion with the upstream API, remove imports made unused, and run the existing row-selection intersection tests to confirm bitmap backing and selected rows are preserved.

Written by the indexing model from the issue text.

Description

enhancement
Is your feature request related to a problem or challenge?

PR #25731 preserves bitmap-backed Parquet row selections. When intersecting an existing bitmap-backed selection with a selector-backed selection, ParquetAccessPlan::scan_and_select currently builds a bitmap manually using BooleanBufferBuilder.

The upstream API proposed in apache/arrow-rs#11337, RowSelection::force_mask(), encapsulates this conversion. This issue tracks adopting it once DataFusion depends on a released parquet version that includes the API.

Describe the solution you'd like

After upgrading to a parquet version that provides RowSelection::force_mask():

  • Replace the manual selector-to-bitmap conversion in datafusion/datasource-parquet/src/access_plan.rs with selection.force_mask().
  • Remove any imports made unused by the change.
  • Verify that the existing row-selection intersection tests continue to pass, preserving bitmap backing and selected rows.
Describe alternatives you've considered

Keep the current manual conversion. It preserves the required behavior, but duplicates functionality provided by parquet once the new API is available.

Additional context
Dominant language
Rust
Stars
9.4k
Forks
2.5k
Avg merge
3d 18h
Merged PRs (30d)
381

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/datafusion

All issues in apache/datafusion

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.