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]
