CurtHagenlocher opened a new issue, #466:
URL: https://github.com/apache/arrow-dotnet/issues/466

   ### Describe the enhancement requested
   
   `CArrowSchemaImporter.ImportSchema` and `ImportField` have overloads that 
take an `ExtensionTypeRegistry`, but 
`CArrowArrayStreamImporter.ImportArrayStream` doesn't. It always imports the 
stream's schema without a registry. So a stream from a native producer comes 
back with storage types: for example, a UUID column is a `FixedSizeBinaryArray` 
whose field has `ARROW:extension:name = arrow.uuid` in its metadata, rather 
than a `GuidType` field with a `GuidArray`. This happens even if the extension 
definition is registered with `ExtensionTypeRegistry.Default`.
   
   Consumers have to work around this themselves: resolve each field's 
extension type from its metadata, then wrap every column of every batch with 
`ExtensionType.CreateArray`. The ADBC ADO.NET client now does this 
(apache/arrow-adbc#4918).
   
   Proposal: add an overload
   
   ```csharp
   public static unsafe IArrowArrayStream ImportArrayStream(CArrowArrayStream* 
ptr, ExtensionTypeRegistry extensionRegistry)
   ```
   
   that imports the schema with `ImportSchema(&cSchema, extensionRegistry)` and 
builds the imported batches from that schema, so columns with a resolved 
extension type come back as extension arrays.
   
   ### Component(s)
   
   C#
   


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