Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Add UnionArray #283

Merged
merged 10 commits into from
Aug 14, 2021
Merged

Add UnionArray #283

merged 10 commits into from
Aug 14, 2021

Conversation

jorgecarleitao
Copy link
Owner

@jorgecarleitao jorgecarleitao commented Aug 12, 2021

  • Added UnionArray
    • equality
    • Display
    • read and write IPC (V4 and V5)
    • write to string (io::print::write)
    • produce and consume FFI
    • UnionArray::iter() with an iterator over values via the Scalar API
    • memory estimation (compute::aggregate::memory)
  • Added roundtrip tests against IPC
  • changed IPC read APIs to support different IPC versions (Union validity changed from V4 to V5 and reading it requires knowing which version the file was written as) (Add MetadataVersion to IPC interfaces #282)
  • changed DataType::Union to contain necessary metadata for IPC and FFI (Change DataType::Union to enable round trips in IPC #281)

I verified that integration tests against C++ pass when union is not skipped.

Closes #281 and #282

@codecov
Copy link

codecov bot commented Aug 12, 2021

Codecov Report

Merging #283 (3fc6c9d) into main (8237800) will decrease coverage by 0.02%.
The diff coverage is 64.78%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #283      +/-   ##
==========================================
- Coverage   77.58%   77.55%   -0.03%     
==========================================
  Files         255      260       +5     
  Lines       20709    21048     +339     
==========================================
+ Hits        16067    16324     +257     
- Misses       4642     4724      +82     
Impacted Files Coverage Δ
arrow-flight/src/utils.rs 0.00% <ø> (ø)
...ng/src/flight_server_scenarios/integration_test.rs 0.00% <ø> (ø)
src/array/ffi.rs 42.10% <0.00%> (-1.14%) ⬇️
src/array/growable/mod.rs 36.23% <ø> (ø)
src/array/union/ffi.rs 0.00% <0.00%> (ø)
src/compute/aggregate/memory.rs 27.69% <0.00%> (-3.35%) ⬇️
src/datatypes/field.rs 18.64% <0.00%> (ø)
src/datatypes/mod.rs 11.76% <ø> (ø)
src/ffi/array.rs 79.20% <0.00%> (-0.80%) ⬇️
src/ffi/schema.rs 55.29% <0.00%> (-6.24%) ⬇️
... and 40 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8237800...3fc6c9d. Read the comment docs.

@jorgecarleitao jorgecarleitao force-pushed the union branch 2 times, most recently from bf64420 to c2c9cf2 Compare August 13, 2021 19:48
@jorgecarleitao jorgecarleitao changed the title Add minimal support for UnionArray Add support for UnionArray Aug 13, 2021
@jorgecarleitao jorgecarleitao changed the title Add support for UnionArray Add UnionArray Aug 13, 2021
@jorgecarleitao jorgecarleitao force-pushed the union branch 2 times, most recently from 744fae9 to 91a2e51 Compare August 14, 2021 07:42
@jorgecarleitao jorgecarleitao merged commit 959d549 into main Aug 14, 2021
@jorgecarleitao jorgecarleitao deleted the union branch August 14, 2021 10:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature A new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Change DataType::Union to enable round trips in IPC
1 participant