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