Skip to content

Run end encoded mutability#670

Open
Alex-PLACET wants to merge 31 commits intoman-group:mainfrom
Alex-PLACET:run_end_encoded_mutability
Open

Run end encoded mutability#670
Alex-PLACET wants to merge 31 commits intoman-group:mainfrom
Alex-PLACET:run_end_encoded_mutability

Conversation

@Alex-PLACET
Copy link
Copy Markdown
Collaborator

No description provided.

@Alex-PLACET Alex-PLACET self-assigned this Apr 1, 2026
@Alex-PLACET Alex-PLACET force-pushed the run_end_encoded_mutability branch from 2c7b2f3 to 7761bbc Compare April 1, 2026 13:23
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 1, 2026

Codecov Report

❌ Patch coverage is 88.39286% with 52 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.75%. Comparing base (f45383a) to head (c9c4f00).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/run_end_encoded_array.cpp 88.15% 52 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #670      +/-   ##
==========================================
+ Coverage   88.65%   88.75%   +0.09%     
==========================================
  Files         115      115              
  Lines        9512     9920     +408     
==========================================
+ Hits         8433     8804     +371     
- Misses       1079     1116      +37     
Flag Coverage Δ
unittests 88.75% <88.39%> (+0.09%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Alex-PLACET Alex-PLACET force-pushed the run_end_encoded_mutability branch from 65f3564 to f363099 Compare April 1, 2026 14:57
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds mutability support to sparrow::run_end_encoded_array, introducing a writable proxy reference type and implementing common container-like mutation operations (index assignment, insert/erase, push/pop, resize/clear), with accompanying test updates and iterator adjustments.

Changes:

  • Add run_end_encoded_reference and mutable accessors (operator[], front(), back()) plus mutation APIs (insert/erase/push_back/pop_back/resize/clear) for run_end_encoded_array.
  • Update run-end-encoded iterators to return a mutable proxy reference for non-const iteration.
  • Expand tests for mutation behaviors and add a GCC 11.2 variant-visitation workaround helper for tests.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
test/test_utils.hpp Adds a GCC 11.2 helper to unwrap nested base_type wrappers for std::visit in tests.
test/test_run_end_encoded_array.cpp Adds mutation-focused subcases (assignment/insert/erase/push_back, and slice-mutation rejection) and updates visitation workaround usage.
test/test_builder_run_end_encoded.cpp Adjusts tests to explicitly exercise const indexing behavior.
src/run_end_encoded_array.cpp Implements the new mutable reference type and mutation logic; refactors run lookup and cache refresh paths.
include/sparrow/run_end_encoded_array.hpp Declares run_end_encoded_reference and the new mutable/mutating API surface.
include/sparrow/layout/run_end_encoded_iterator.hpp Updates iterator reference/value types and mutable dereference behavior.
include/sparrow/array_api.hpp Makes array(arrow_proxy&&) publicly available (was private).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Alex-PLACET Alex-PLACET requested a review from Copilot April 2, 2026 11:30
Comment on lines -433 to -439
/**
* Constructs an array from an arrow proxy.
*
* @param proxy The arrow proxy to construct from.
*/
SPARROW_API array(arrow_proxy&& proxy);

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Moved to public

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Alex-PLACET Alex-PLACET marked this pull request as ready for review April 3, 2026 07:58
@Alex-PLACET Alex-PLACET requested a review from JohanMabille April 3, 2026 07:59
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.

2 participants