Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CHORE] Implementations of FixedSizeListArray #1281

Merged
merged 14 commits into from
Aug 28, 2023
Merged

Conversation

jaychia
Copy link
Contributor

@jaychia jaychia commented Aug 18, 2023

Summary

This PR replaces our old arrow-backed FixedSizeListArray = DataArray<FixedSizeListType> with a new FixedSizeListArray struct.

In so doing, many changes were required:

  1. Adds a new FixedSizeListArray which is our own struct. Now, FixedSizeListType::ArrayType = FixedSizeListArray.
  2. Adds a new FixedSizeListGrowable.
  3. Refactors all LogicalArrays which rely on FixedSizeListArray as their physical type
    • Refactors each LogicalType to have ::PhysicalType = FixedSizeListType
    • Adds a new impl block for LogicalArrayImpl<L, FixedSizeListArray>
  4. Changes to matching.rs that matches the new semantics for FixedSizeList (i.e. it is not longer an arrow type)
    • Also adds a new with_match_daft_types match statement that matches all possible DataTypes, which we use liberally when implementing nested functionality.
  5. A ton of changes in cast.rs
  6. Implementations over array ops count, filter, from_arrow, full, get, if_else, image.rs, len.rs, list.rs, list_agg.rs, null.rs etc

@github-actions github-actions bot added the chore label Aug 18, 2023
@jaychia jaychia changed the base branch from jay/fsl-array-working-branch to main August 23, 2023 07:38
@jaychia jaychia force-pushed the jay/fsl-array-impl branch 4 times, most recently from 5c7487a to dc366c0 Compare August 25, 2023 06:43
Jay Chia added 8 commits August 25, 2023 17:26
Implement SeriesLike for logical fixed size list arrays using same macro

Refactor image.rs to remove len() from DaftArrayType trait

impl SeriesLike for FixedSizeListArray

Cleanup matching logic -- match on ALL Daft types

Bugfix: logical serieslike rename
impl cast, rename, to_arrow

impl full_null, if_else, to_arrow

impl cast from FixedSizeList to FixedShapeImage

impl take and slice

Switch impl of FixedSizeListArray to always assume padded child

impl concat

impl filter

impl broadcast

impl DaftCountAggable

impl is_null

impl repr

Fix nested guard for Series::try_from arrow2 arrays

Switch to using arrow2::bitmap::Bitmap for validity

Fix FSL->FSL cast

More as_arrow cleanups, excluding image.rs
Fixes to finally compile
@jaychia jaychia changed the title [CHORE][WIP] Implementations for FixedSizeListArray [CHORE] Implementations of FixedSizeListArray Aug 26, 2023
@codecov
Copy link

codecov bot commented Aug 27, 2023

Codecov Report

Merging #1281 (eba52b3) into main (3157b48) will increase coverage by 13.23%.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #1281       +/-   ##
===========================================
+ Coverage   74.09%   87.33%   +13.23%     
===========================================
  Files          61       61               
  Lines        6038     6038               
===========================================
+ Hits         4474     5273      +799     
+ Misses       1564      765      -799     

see 14 files with indirect coverage changes

@jaychia jaychia merged commit b01a2d7 into main Aug 28, 2023
27 checks passed
@jaychia jaychia deleted the jay/fsl-array-impl branch August 28, 2023 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant