Struct SparseArray

Source
pub struct SparseArray { /* private fields */ }

Implementations§

Source§

impl SparseArray

Source

pub fn try_new( indices: ArrayRef, values: ArrayRef, len: usize, fill_value: Scalar, ) -> VortexResult<Self>

Source

pub fn try_new_from_patches( patches: Patches, fill_value: Scalar, ) -> VortexResult<Self>

Source

pub fn patches(&self) -> &Patches

Source

pub fn resolved_patches(&self) -> VortexResult<Patches>

Source

pub fn fill_scalar(&self) -> &Scalar

Source

pub fn encode( array: &dyn Array, fill_value: Option<Scalar>, ) -> VortexResult<ArrayRef>

Encode given array as a SparseArray.

Optionally provided fill value will be respected if the array is less than 90% null.

Trait Implementations§

Source§

impl ArrayCanonicalImpl for SparseArray

Source§

fn _to_canonical(&self) -> VortexResult<Canonical>

Returns the canonical representation of the array. Read more
Source§

fn _append_to_builder( &self, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>

Writes the array into the canonical builder. Read more
Source§

impl ArrayComputeImpl for SparseArray

Source§

const FILTER: Option<KernelRef>

Source§

fn _find_kernel( &self, _compute_fn: &dyn ComputeFn, ) -> Option<ArcRef<dyn Kernel>>

Fallback implementation to lookup compute kernels at runtime.
Source§

impl ArrayImpl for SparseArray

Source§

type Encoding = SparseEncoding

Source§

fn _len(&self) -> usize

Source§

fn _dtype(&self) -> &DType

Source§

fn _vtable(&self) -> VTableRef

Source§

fn _with_children(&self, children: &[ArrayRef]) -> VortexResult<Self>

Replace the children of this array with the given arrays. Read more
Source§

impl ArrayStatisticsImpl for SparseArray

Source§

impl ArrayValidityImpl for SparseArray

Source§

fn _is_valid(&self, index: usize) -> VortexResult<bool>

Returns whether the index item is valid. Read more
Source§

fn _all_valid(&self) -> VortexResult<bool>

Returns whether the array is all valid.
Source§

fn _all_invalid(&self) -> VortexResult<bool>

Returns whether the array is all invalid.
Source§

fn _validity_mask(&self) -> VortexResult<Mask>

Returns the canonical validity mask for the array. Read more
Source§

fn _valid_count(&self) -> Result<usize, VortexError>

Returns the number of valid elements in the array. Read more
Source§

fn _invalid_count(&self) -> Result<usize, VortexError>

Returns the number of invalid elements in the array. Read more
Source§

impl ArrayVariantsImpl for SparseArray

Sparse arrays support all DTypes

Source§

fn _as_null_typed(&self) -> Option<&dyn NullArrayTrait>

Downcasts the array for null-specific behavior.
Source§

fn _as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>

Downcasts the array for bool-specific behavior.
Source§

fn _as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>

Downcasts the array for primitive-specific behavior.
Source§

fn _as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>

Downcasts the array for utf8-specific behavior.
Source§

fn _as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>

Downcasts the array for binary-specific behavior.
Source§

fn _as_struct_typed(&self) -> Option<&dyn StructArrayTrait>

Downcasts the array for struct-specific behavior.
Source§

fn _as_list_typed(&self) -> Option<&dyn ListArrayTrait>

Downcasts the array for list-specific behavior.
Source§

fn _as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>

Downcasts the array for extension-specific behavior.
Source§

impl ArrayVisitorImpl<RkyvMetadata<SparseMetadata>> for SparseArray

Source§

fn _visit_buffers(&self, visitor: &mut dyn ArrayBufferVisitor)

Source§

fn _visit_children(&self, visitor: &mut dyn ArrayChildVisitor)

Source§

fn _metadata(&self) -> RkyvMetadata<SparseMetadata>

Source§

fn _nbuffers(&self) -> usize

Source§

fn _nchildren(&self) -> usize

Source§

impl BinaryNumericFn<&SparseArray> for SparseEncoding

Source§

impl Clone for SparseArray

Source§

fn clone(&self) -> SparseArray

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SparseArray

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ExtensionArrayTrait for SparseArray

Source§

fn storage_data(&self) -> ArrayRef

Returns the underlying ArrayRef, without the ExtDType.
Source§

fn ext_dtype(&self) -> &Arc<ExtDType>

Returns the extension logical DType.
Source§

impl InvertFn<&SparseArray> for SparseEncoding

Source§

fn invert(&self, array: &SparseArray) -> VortexResult<ArrayRef>

Logically invert a boolean array. Converts true -> false, false -> true, null -> null.
Source§

impl PrimitiveArrayTrait for SparseArray

Source§

fn ptype(&self) -> PType

The logical primitive type of the array. Read more
Source§

impl ScalarAtFn<&SparseArray> for SparseEncoding

Source§

fn scalar_at(&self, array: &SparseArray, index: usize) -> VortexResult<Scalar>

Source§

impl SearchSortedFn<&SparseArray> for SparseEncoding

Source§

fn search_sorted( &self, array: &SparseArray, value: &Scalar, side: SearchSortedSide, ) -> VortexResult<SearchResult>

Source§

fn search_sorted_many( &self, array: A, values: &[Scalar], side: SearchSortedSide, ) -> Result<Vec<SearchResult>, VortexError>

Bulk search for many values.
Source§

impl SearchSortedUsizeFn<&SparseArray> for SparseEncoding

Source§

impl SliceFn<&SparseArray> for SparseEncoding

Source§

fn slice( &self, array: &SparseArray, start: usize, stop: usize, ) -> VortexResult<ArrayRef>

Return a zero-copy slice of an array, between start (inclusive) and end (exclusive). If start >= stop, returns an empty array of the same type as self. Assumes that start or stop are out of bounds, may panic otherwise.
Source§

impl StructArrayTrait for SparseArray

Source§

fn maybe_null_field_by_idx(&self, idx: usize) -> VortexResult<ArrayRef>

Return a field’s array by index, ignoring struct nullability
Source§

fn project(&self, projection: &[FieldName]) -> VortexResult<ArrayRef>

Source§

fn names(&self) -> &Arc<[Arc<str>]>

Source§

fn dtypes(&self) -> Vec<DType>

Source§

fn nfields(&self) -> usize

Source§

fn maybe_null_field_by_name( &self, name: &str, ) -> Result<Arc<dyn Array>, VortexError>

Return a field’s array by name, ignoring struct nullability
Source§

impl TakeFn<&SparseArray> for SparseEncoding

Source§

fn take( &self, array: &SparseArray, take_indices: &dyn Array, ) -> VortexResult<ArrayRef>

Create a new array by taking the values from the array at the given indices. Read more
Source§

fn take_into( &self, array: A, indices: &dyn Array, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>

Has the same semantics as Self::take but materializes the result into the provided builder.
Source§

impl TryFrom<Arc<dyn Array>> for SparseArray

Source§

type Error = VortexError

The type returned in the event of a conversion error.
Source§

fn try_from(value: ArrayRef) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl BinaryArrayTrait for SparseArray

Source§

impl BoolArrayTrait for SparseArray

Source§

impl ListArrayTrait for SparseArray

Source§

impl NullArrayTrait for SparseArray

Source§

impl Utf8ArrayTrait for SparseArray

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<A> Array for A
where A: ArrayImpl + 'static,

Source§

fn is_valid(&self, index: usize) -> Result<bool, VortexError>

Returns whether the item at index is valid.

Source§

fn is_invalid(&self, index: usize) -> Result<bool, VortexError>

Returns whether the item at index is invalid.

Source§

fn all_valid(&self) -> Result<bool, VortexError>

Returns whether all items in the array are valid.

This is usually cheaper than computing a precise valid_count.

Source§

fn all_invalid(&self) -> Result<bool, VortexError>

Returns whether the array is all invalid.

This is usually cheaper than computing a precise invalid_count.

Source§

fn valid_count(&self) -> Result<usize, VortexError>

Returns the number of valid elements in the array.

Source§

fn invalid_count(&self) -> Result<usize, VortexError>

Returns the number of invalid elements in the array.

Source§

fn validity_mask(&self) -> Result<Mask, VortexError>

Returns the canonical validity mask for the array.

Source§

fn to_canonical(&self) -> Result<Canonical, VortexError>

Returns the canonical representation of the array.

Source§

fn append_to_builder( &self, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>

Writes the array into the canonical builder.

The DType of the builder must match that of the array.

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the array as a reference to a generic Any trait object.
Source§

fn as_any_arc(self: Arc<A>) -> Arc<dyn Any + Sync + Send>

Returns the array as an Arc reference to a generic Any trait object.
Source§

fn to_array(&self) -> Arc<dyn Array>

Returns the array as an ArrayRef.
Source§

fn into_array(self) -> Arc<dyn Array>

Converts the array into an ArrayRef.
Source§

fn len(&self) -> usize

Returns the length of the array.
Source§

fn dtype(&self) -> &DType

Returns the logical Vortex DType of the array.
Source§

fn encoding(&self) -> ArcRef<str>

Returns the encoding of the array.
Source§

fn vtable(&self) -> ArcRef<dyn EncodingVTable>

Returns the encoding VTable.
Source§

fn find_kernel(&self, compute_fn: &dyn ComputeFn) -> Option<ArcRef<dyn Kernel>>

Attempts to find a kernel for the given compute invocation.
Source§

fn statistics(&self) -> StatsSetRef<'_>

Returns the statistics of the array.
Source§

fn with_children( &self, children: &[Arc<dyn Array>], ) -> Result<Arc<dyn Array>, VortexError>

Replaces the children of the array with the given array references.
Source§

fn is_empty(&self) -> bool

Returns whether the array is empty (has zero rows).
Source§

fn is_encoding(&self, encoding: ArcRef<str>) -> bool

Returns whether the array is of the given encoding.
Source§

fn is_arrow(&self) -> bool

Returns whether this array is an arrow encoding.
Source§

fn is_canonical(&self) -> bool

Whether the array is of a canonical encoding.
Source§

impl<A> ArrayExt for A
where A: Array + ?Sized,

Source§

fn as_<A>(&self) -> &A
where A: Array + 'static,

Returns the array downcast to the given A.
Source§

fn as_opt<A>(&self) -> Option<&A>
where A: Array + 'static,

Returns the array downcast to the given A.
Source§

fn is<A>(&self) -> bool
where A: Array + 'static,

Is self an array with encoding A.
Source§

impl<A> ArrayIteratorArrayExt for A
where A: Array + ?Sized,

Source§

fn to_array_iterator(&self) -> impl ArrayIterator + 'static

Create an ArrayIterator over the array.
Source§

impl<A> ArrayStatistics for A
where A: Array + 'static,

Source§

fn is_constant(&self) -> bool

Make a best effort attempt to try and figure out if the array is constant, without canonicalizing it.
Source§

fn as_constant(&self) -> Option<Scalar>

If Self::is_constant is true, return the actual constant value as a Scalar.
Source§

impl<A> ArrayStreamArrayExt for A
where A: Array + ?Sized,

Source§

fn to_array_stream(&self) -> impl ArrayStream + 'static

Create an ArrayStream over the array.
Source§

impl<A> ArrayVariants for A
where A: ArrayImpl,

Source§

fn as_null_typed(&self) -> Option<&dyn NullArrayTrait>

Downcasts the array for null-specific behavior.

Source§

fn as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>

Downcasts the array for bool-specific behavior.

Source§

fn as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>

Downcasts the array for primitive-specific behavior.

Source§

fn as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>

Downcasts the array for utf8-specific behavior.

Source§

fn as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>

Downcasts the array for binary-specific behavior.

Source§

fn as_struct_typed(&self) -> Option<&dyn StructArrayTrait>

Downcasts the array for struct-specific behavior.

Source§

fn as_list_typed(&self) -> Option<&dyn ListArrayTrait>

Downcasts the array for list-specific behavior.

Source§

fn as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>

Downcasts the array for extension-specific behavior.

Source§

impl<A> ArrayVisitor for A
where A: ArrayImpl,

Source§

fn children(&self) -> Vec<Arc<dyn Array>>

Returns the children of the array.
Source§

fn nchildren(&self) -> usize

Returns the number of children of the array.
Source§

fn children_names(&self) -> Vec<String>

Returns the names of the children of the array.
Source§

fn named_children(&self) -> Vec<(String, Arc<dyn Array>)>

Returns the array’s children with their names.
Source§

fn buffers(&self) -> Vec<Buffer<u8>>

Returns the buffers of the array.
Source§

fn nbuffers(&self) -> usize

Returns the number of buffers of the array.
Source§

fn metadata(&self) -> Option<Vec<u8>>

Returns the serialized metadata of the array.
Source§

fn metadata_fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats a human-readable metadata description.
Source§

impl<A> ArrayVisitorExt for A
where A: Array + ?Sized,

Source§

fn nbuffers_recursive(&self) -> usize

Count the number of buffers encoded by self and all child arrays.
Source§

fn depth_first_traversal(&self) -> impl Iterator<Item = Arc<dyn Array>>

Depth-first traversal of the array and its children.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T> NBytes for T
where T: Array + ?Sized,

Source§

fn nbytes(&self) -> usize

Total size of the array in bytes, including all children and buffers.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<A> ToCanonical for A
where A: Array + ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<A> TryFromArrayRef for A
where A: Array + Clone + 'static,

Source§

fn try_from_array(array: Arc<dyn Array>) -> Result<A, Arc<dyn Array>>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T