GH-184: Add Arrow C Data Interface import foundation#603
Open
samtalki wants to merge 1 commit into
Open
Conversation
This was referenced Jul 6, 2026
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #603 +/- ##
==========================================
- Coverage 87.43% 86.93% -0.51%
==========================================
Files 26 28 +2
Lines 3288 3797 +509
==========================================
+ Hits 2875 3301 +426
- Misses 413 496 +83 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add ArrowSchema and ArrowArray ABI structs plus C Data import for null and primitive arrays. Root struct arrays are exposed as Tables.jl column tables with DataAPI metadata. Add validation for pointer layout, child counts, buffers, offset arithmetic, metadata bounds, dictionary pointer consistency, release idempotency, and reads after release. Keep aligned imported buffers rooted behind a shared owner, and mirror arrow-rs by copying misaligned fixed width buffers into aligned storage before typed access. The copy and collect methods materialize Julia owned arrays. Adjust dictionary encoding offsets for non 1-based reference pools so categorical pools with missing values keep correct dictionary indices. Co-authored-by: Robert Buessow <robert.buessow@relational.ai> Co-authored-by: Olle Martensson <olle.martensson@gmail.com> Generated-by: OpenAI Codex
3b5999e to
6c0b4b8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #184.
Adds the import foundation for the Arrow C Data Interface:
ArrowSchemaandArrowArraydefinitions with layout coverage.Arrow.from_c_data,Arrow.from_c_data_table, andArrow.release_c_data.copy/collect.This intentionally leaves broader type support and export support for follow up PRs.
Validation:
julia --project=. -e 'using Arrow, Test, Tables, DataAPI; include("test/cdata.jl")'julia --project=. --check-bounds=yes -e 'using Arrow, Test, Tables, DataAPI; include("test/cdata.jl")'julia --project=. -e 'using Pkg; Pkg.test()'julia --project=. -e 'using Pkg; Pkg.test(; julia_args=["--check-bounds=yes"])'git diff --check upstream/main...HEADAI assistance was used and the generated changes were reviewed before submission.
Generated-by: OpenAI Codex