Skip to content

Tracking Issue: Fixed-Size List Arrays #4372

Closed
1 of 1 issue completed
Closed

Description

@connortsui20

Tracking Issue: Fixed-Size List Arrays

This is a tracking issue for adding fixed-size list arrays to Vortex.

The main difference between lists and fixed-size lists is that fixed-size lists do not need to store an offsets buffer, since we are able to use the predictable stride pattern to jump to data. This allows us to more efficiently store data with known size (like matrices or tensors) as well as compute more efficiently with SIMD.

Public API

pub enum DType {
    /// A logical fixed-size list type.
    ///
    /// This is parameterized by a `DType` that represents the element type of the inner lists, as
    /// well as a `u32` size that determines the fixed length of each `FixedSizeList` scalar.
    FixedSizeList(Arc<DType>, u32, Nullability),
}

#[cfg(not(target_arch = "wasm32"))]
const_assert_eq!(size_of::<DType>(), 16);

#[cfg(target_arch = "wasm32")]
const_assert_eq!(size_of::<DType>(), 12); // Increase size to 12 bytes because of the `u32` field.

Prior Art

Steps / History

Unresolved Questions

  • Is it okay to increase the size of DType to 12 bytes on WASM (instead of the previous size of 8)? Or instead have an FixedListElementType that Arcs both the DType and the u32 size? If we do that then List should also be changed
  • Is u32 the correct type to use here (Arrow uses i32 for Java)

Activity

  1. self-assigned this
    on Aug 26, 2025
  2. added
    epicPublic roadmap umbrella for a major initiative, with work tracked in sub-issues.
    on Aug 26, 2025
  3. lwwmanning commented on Aug 27, 2025

    @lwwmanning
    Contributor

    FixedSizedList doesn't actually increase DType size (which was already 16 and remains 16)

  4. robert3005 commented on Aug 27, 2025

    @robert3005
    Contributor

    It has increased it for wasm from 8 to 12. Though don’t think it matters

  5. removed theissue type on Jan 22, 2026
  6. added
    featureA feature request
    and removed on Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

epicPublic roadmap umbrella for a major initiative, with work tracked in sub-issues.featureA feature request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions