pub struct VariantStructSqueezedArray { /* private fields */ }Expand description
Squeezed representation for variant arrays that contain multiple typed fields.
Implementations§
Source§impl VariantStructSqueezedArray
impl VariantStructSqueezedArray
Sourcepub fn new(
values: Vec<(Arc<str>, LiquidArrayRef)>,
nulls: Option<NullBuffer>,
original_arrow_type: DataType,
) -> Self
pub fn new( values: Vec<(Arc<str>, LiquidArrayRef)>, nulls: Option<NullBuffer>, original_arrow_type: DataType, ) -> Self
Create a squeezed representation that keeps only the typed variant columns resident.
Sourcepub fn contains_path(&self, path: &str) -> bool
pub fn contains_path(&self, path: &str) -> bool
Returns true if the squeezed contains the provided variant path.
Sourcepub fn to_arrow_array_with_paths<'a>(
&self,
paths: impl IntoIterator<Item = &'a str>,
) -> Result<ArrayRef, NeedsBacking>
pub fn to_arrow_array_with_paths<'a>( &self, paths: impl IntoIterator<Item = &'a str>, ) -> Result<ArrayRef, NeedsBacking>
Build an Arrow array that includes only the provided variant paths.
If paths is empty or none match, it falls back to the full array.
Sourcepub fn typed_values(&self) -> Vec<(Arc<str>, LiquidArrayRef)>
pub fn typed_values(&self) -> Vec<(Arc<str>, LiquidArrayRef)>
Clone the stored typed values keyed by variant path.
Sourcepub fn nulls(&self) -> Option<NullBuffer>
pub fn nulls(&self) -> Option<NullBuffer>
Null buffer shared by all stored paths, if present.
Trait Implementations§
Source§impl Debug for VariantStructSqueezedArray
impl Debug for VariantStructSqueezedArray
Source§impl LiquidSqueezedArray for VariantStructSqueezedArray
impl LiquidSqueezedArray for VariantStructSqueezedArray
Source§fn get_array_memory_size(&self) -> usize
fn get_array_memory_size(&self) -> usize
Get the memory size of the Liquid array.
Source§fn to_arrow_array<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn to_arrow_array<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Convert the Liquid array to an Arrow array.
Source§fn data_type(&self) -> LiquidDataType
fn data_type(&self) -> LiquidDataType
Get the logical data type of the Liquid array.
Source§fn original_arrow_data_type(&self) -> DataType
fn original_arrow_data_type(&self) -> DataType
Get the original arrow data type of the Liquid squeezed array.
Source§fn disk_backing(&self) -> SqueezedBacking
fn disk_backing(&self) -> SqueezedBacking
Describe how the squeezed array persists its backing bytes on disk.
Source§fn to_best_arrow_array<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn to_best_arrow_array<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Convert the Liquid array to an Arrow array.
Except that it will pick the best encoding for the arrow array.
Meaning that it may not obey the data type of the original arrow array.
Source§fn filter<'life0, 'life1, 'async_trait>(
&'life0 self,
selection: &'life1 BooleanBuffer,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn filter<'life0, 'life1, 'async_trait>(
&'life0 self,
selection: &'life1 BooleanBuffer,
) -> Pin<Box<dyn Future<Output = ArrayRef> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Filter the Liquid array with a boolean array and return an arrow array.
Source§fn try_eval_predicate<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_predicate: &'life1 Arc<dyn PhysicalExpr>,
_filter: &'life2 BooleanBuffer,
) -> Pin<Box<dyn Future<Output = Option<BooleanArray>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn try_eval_predicate<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_predicate: &'life1 Arc<dyn PhysicalExpr>,
_filter: &'life2 BooleanBuffer,
) -> Pin<Box<dyn Future<Output = Option<BooleanArray>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Try to evaluate a predicate on the Liquid array with a filter.
Returns
Ok(None) if the predicate is not supported. Read moreAuto Trait Implementations§
impl Freeze for VariantStructSqueezedArray
impl !RefUnwindSafe for VariantStructSqueezedArray
impl Send for VariantStructSqueezedArray
impl Sync for VariantStructSqueezedArray
impl Unpin for VariantStructSqueezedArray
impl UnsafeUnpin for VariantStructSqueezedArray
impl !UnwindSafe for VariantStructSqueezedArray
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request