You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "ump45nose (via GitHub)" <gi...@apache.org> on 2026/10/24 05:09:37 UTC

[PR] feat(ipc): Support run-end encoded arrays in the IPC reader [arrow-nanoarrow]

ump45nose opened a new pull request, #996:
URL: https://github.com/apache/arrow-nanoarrow/pull/996

   Closes #833.
   
   The IPC encoder already writes the `RunEndEncoded` type, but the decoder stopped at the schema with "RunEndEncoded not yet supported in IPC reader". The `RunEndEncoded` type table has no parameters and a run-end encoded array has no buffers of its own (only the `run_ends` and `values` children), so the reader only needs to map the type to the `+r` format. The existing child field and buffer handling already treats it like the other buffer-less layouts, and validation of the run ends is the existing `ArrowArrayView` logic. The new code also checks that the field has exactly two children so a malformed schema gets a clear error.
   
   ### Testing
   
   - Added `run_end_encoded(int16, utf8)`, `run_end_encoded(int32, int64)` and `run_end_encoded(int64, float64)` to the type list used by the decoder roundtrip tests (Arrow C++ schema/array -> IPC -> nanoarrow, and nanoarrow -> IPC -> nanoarrow).
   - Switched `cpp-21.0.0/generated_run_end_encoded.stream` from `NotSupported` to `OK` in `files_test.cc`, so the arrow-testing file is read and compared with Arrow C++'s read, and nanoarrow's written stream is read back by Arrow C++. (The JSON check for that file is still skipped because the testing JSON reader does not know run-end encoded yet.)
   - Without the decoder change, 6 of the new roundtrip tests and the file test fail; with it they pass.
   - Debug build with `NANOARROW_IPC=ON NANOARROW_BUILD_TESTS=ON NANOARROW_BUILD_TESTS_WITH_ARROW=ON` against Arrow C++ 26.0.0 and current apache/arrow-testing: `ctest` 896/896 passed.
   - clang-format 16.0.6 (the pre-commit version) applied.
   
   This PR was prepared with AI assistance; I reviewed the changes and ran the checks above.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] feat(ipc): Support run-end encoded arrays in the IPC reader [arrow-nanoarrow]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #996:
URL: https://github.com/apache/arrow-nanoarrow/pull/996#issuecomment-6380256060

   ## [Codecov](https://app.codecov.io/gh/apache/arrow-nanoarrow/pull/996?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :x: Patch coverage is `50.00000%` with `3 lines` in your changes missing coverage. Please review.
   :white_check_mark: Project coverage is 78.59%. Comparing base ([`41c78c4`](https://app.codecov.io/gh/apache/arrow-nanoarrow/commit/41c78c476817d1d122acc59ddacb7a3cbd00644c?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`923a051`](https://app.codecov.io/gh/apache/arrow-nanoarrow/commit/923a051ed013636301674105bb166c29bfa0f5e1?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/arrow-nanoarrow/pull/996?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
   |---|---|---|
   | [src/nanoarrow/ipc/decoder.c](https://app.codecov.io/gh/apache/arrow-nanoarrow/pull/996?src=pr&el=tree&filepath=src%2Fnanoarrow%2Fipc%2Fdecoder.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL25hbm9hcnJvdy9pcGMvZGVjb2Rlci5j) | 50.00% | [2 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/arrow-nanoarrow/pull/996?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff             @@
   ##             main     #996      +/-   ##
   ==========================================
   + Coverage   78.58%   78.59%   +0.01%     
   ==========================================
     Files         106      106              
     Lines       17173    17177       +4     
     Branches     2045     2046       +1     
   ==========================================
   + Hits        13495    13501       +6     
   + Misses       2427     2423       -4     
   - Partials     1251     1253       +2     
   ```
   </details>
   
   [:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/arrow-nanoarrow/pull/996?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org