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]

Reply via email to