hcrosse opened a new pull request, #1526: URL: https://github.com/apache/arrow-go/pull/1526
### Rationale for this change Exporting extension arrays through C data can lose storage buffers, children or dictionaries, producing arrays that cannot be imported or validated. ### What changes are included in this PR? `exportArray` unwraps the storage before choosing the buffer layout and children. The schema is exported first, so extension metadata stays on it. The schema exporter also uses the storage type to export dictionary schemas. Import behavior is unchanged: imported arrays still use storage types with extension metadata. ### Are these changes tested? `TestExtensionArrayRoundTrip` checks `string_view`, `sparse_union` and dictionary storage, buffer counts, imported values and extension metadata. All three cases fail on main and pass with this change. The case in the issue imports successfully. With Go 1.26.10, cgo race and `GOARCH=386` tests, full `go test -tags assert,test ./arrow/...` with pinned test data, `golangci-lint` on the `arrow` module and the Release Audit Tool passed. Vet and tagged lint report existing findings. ### Are there any user-facing changes? Yes. C data exports retain extension storage layout, children and dictionaries. There is no API change. Closes https://github.com/apache/arrow-go/issues/1523. -- 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]
