CurtHagenlocher commented on code in PR #472:
URL: https://github.com/apache/arrow-dotnet/pull/472#discussion_r4309084398
##########
src/Apache.Arrow/C/CArrowSchemaImporter.cs:
##########
@@ -372,7 +381,7 @@ public Field GetAsField(ExtensionTypeRegistry
extensionRegistry)
bool nullable =
_cSchema->GetFlag(CArrowSchema.ArrowFlagNullable);
- IArrowType type = GetAsType();
+ IArrowType type = GetAsType(extensionRegistry);
Review Comment:
Good catch, but this is pre-existing rather than introduced here, and it's
tracked in #473. The root cause is on the export side: Arrow C++ puts a
dictionary value type's extension metadata on the `dictionary` child schema,
whereas `CArrowSchemaExporter` puts it on the field. Resolving the field-level
metadata against `ValueType` on import would make .NET-to-.NET round trips
work, but it would also make the non-standard placement look supported, and
pyarrow interop would still be broken in both directions. I'd rather fix the
export and import sides together, plus a direct `dictionary<int32, uuid>` test,
in a follow-up for #473.
--
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]