rustyconover opened a new pull request, #424: URL: https://github.com/apache/arrow-dotnet/pull/424
Continuation of #283, rebased onto current `main` (the original PR had drifted ~76 commits behind and could no longer be evaluated for mergeability). Original work by @cmettler in #283, closing #282. This PR carries those three commits forward unchanged (same authorship) on top of the current `main`, which in the interim gained unrelated IPC changes (RunEndEncodedArray, LargeListView, IPC buffer bounds validation, etc.) that touch the same files. ## What this adds - `ArrowStreamReader.LastBatchCustomMetadata`: exposes the IPC `Message.custom_metadata` key/value pairs for the most recently read batch — the read-side counterpart to pyarrow's `read_next_batch_with_custom_metadata()`. - `ArrowStreamWriter.WriteRecordBatch(batch, customMetadata)` (and async counterpart): lets callers attach per-message `custom_metadata` when writing IPC streams, matching pyarrow's `write_batch(batch, custom_metadata)`. - Cross-language round-trip tests via pythonnet + pyarrow (skipped unless `PYTHONNET_PYDLL` is set, consistent with the existing `CDataSchemaPythonTest` pattern in this repo). ## Verification on this rebase - `dotnet build Apache.Arrow.sln` — succeeds, 0 warnings/errors. - `dotnet test test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj` — full suite: 1876 passed, 30 skipped (pre-existing Python-dependent tests, unrelated to this change), 0 failed. - `dotnet format Apache.Arrow.sln --exclude src/Apache.Arrow/Flatbuf/FlatBuffers/ --verify-no-changes` — clean. Closes https://github.com/apache/arrow-dotnet/issues/282 Supersedes #283 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
