Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#26,030 1 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
76/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
data-engineering

Hướng nghiên cứu

Sau khi dependency parquet bao gồm RowSelection::force_mask(), bắt đầu tại datafusion/datasource-parquet/src/access_plan.rs và tìm phần chuyển đổi thủ công từ selector sang bitmap trong ParquetAccessPlan::scan_and_select. Thay thế phần chuyển đổi đó bằng upstream API, xóa các imports không còn được sử dụng và chạy các bài kiểm thử giao của row-selection hiện có để xác nhận rằng phần backing bằng bitmap và các hàng được chọn vẫn được giữ nguyên.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
Rust
Star
9.4k
Fork
2.5k
Merge trung bình
3 ngày 18 giờ
Pull request đã merge (30 ngày)
381

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/datafusion

Tất cả issue của apache/datafusion

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.