CurtHagenlocher opened a new pull request, #472:
URL: https://github.com/apache/arrow-dotnet/pull/472

   ## What's Changed
   
   Adds overloads that take an `ExtensionTypeRegistry`:
   
   ```csharp
   CArrowArrayStreamImporter.ImportArrayStream(CArrowArrayStream* ptr, 
ExtensionTypeRegistry extensionRegistry)
   
CArrowDeviceArrayStreamImporter.ImportDeviceArrayStream(CArrowDeviceArrayStream*
 ptr, ExtensionTypeRegistry extensionRegistry)
   ```
   
   These import the stream's schema with the registry. The record batch 
importer already builds extension arrays when a field's type is an 
`ExtensionType`, so a `arrow.uuid` column from a native producer now comes back 
as a `GuidType` field with a `GuidArray`, rather than a `FixedSizeBinaryArray` 
that only has the extension name in its metadata. The existing overloads behave 
as before. The device stream importer had the same gap, so it gets the same 
overload.
   
   ### Nested fields
   
   `CArrowSchemaImporter` previously applied the registry only to top-level 
fields, so `list<arrow.uuid>` still imported as a list of `FixedSizeBinary` 
even with a registry. The registry is now threaded through child fields of 
list, large list, list view, large list view, fixed-size list, struct, map, 
union and run-end encoded types, and dictionary value types. This affects 
`ImportSchema` and `ImportField` with a registry as well as the new stream 
overloads. As a side effect, `GetAsSchema` no longer parses the top-level 
fields twice when a registry is given.
   
   ### Tests
   
   - Stream import with and without a registry, for both the array stream and 
device array stream importers.
   - Schema import resolving `arrow.uuid` nested inside each of the types 
listed above, including `list<list<uuid>>`.
   - A `list<uuid>` stream end to end, including `GetSlicedValues` returning 
`GuidArray`s (#468).
   - A pyarrow-produced stream with top-level and list-nested `arrow.uuid` 
columns.
   
   Closes #466.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   
   Co-Authored-By: Claude Opus 5.5 <[email protected]>
   


-- 
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]

Reply via email to