Skip to content

Conversation

@suxiaogang223
Copy link
Contributor

@suxiaogang223 suxiaogang223 commented Oct 4, 2025

Summary

Implements Phase 1 of the RowSelection API as proposed in #58.
Related Issue: #58 (Phase 1 implementation)

What's Implemented

✅ Phase 1: Basic API (MVP) - COMPLETE

All items from Phase 1 checklist in #58:

  • Define RowSelector and RowSelection types (src/row_selection.rs)
  • Implement FromIterator and basic conversions
  • Add with_row_selection() to ArrowReaderBuilder
  • Pass selection through to stripe decoder
  • Implement basic skip in decoders (decode and discard)

Example Usage

See the design in #58 for detailed API examples. Quick example:

use orc_rust::{ArrowReaderBuilder, RowSelection, RowSelector};

let selection = vec![
    RowSelector::skip(1000),
    RowSelector::select(500),
].into();

let reader = ArrowReaderBuilder::try_new(file)?
    .with_row_selection(selection)
    .build();

@suxiaogang223 suxiaogang223 changed the title feature: Impl RowSelector API feat: Implement RowSelection API for efficient row filtering (Phase 1) Oct 4, 2025
@suxiaogang223 suxiaogang223 mentioned this pull request Oct 4, 2025
15 tasks
@suxiaogang223
Copy link
Contributor Author

@WenyXu fixed🤓

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 92.93785% with 25 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (main@93484df). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #59   +/-   ##
=======================================
  Coverage        ?   84.57%           
=======================================
  Files           ?       43           
  Lines           ?     5770           
  Branches        ?        0           
=======================================
  Hits            ?     4880           
  Misses          ?      890           
  Partials        ?        0           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@WenyXu WenyXu merged commit 47d26d6 into datafusion-contrib:main Oct 5, 2025
12 checks passed
@WenyXu
Copy link
Collaborator

WenyXu commented Oct 5, 2025

@WenyXu fixed🤓

Thanks! Let's move forward!

@suxiaogang223 suxiaogang223 deleted the impl_mvp branch October 5, 2025 10:53
@sunng87 sunng87 mentioned this pull request Oct 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants