pub struct NullableRowAddrSet { /* private fields */ }Expand description
A set of row ids, with optional set of nulls.
This is often a result of a filter, where selected represents the rows that
passed the filter, and nulls represents the rows where the filter evaluated
to null. For example, in SQL NULL > 5 evaluates to null. This is distinct
from being deselected to support proper three-valued logic for NOT.
(NOT FALSE is TRUE, NOT TRUE is FALSE, but NOT NULL is NULL.
NULL | TRUE = TRUE, NULL & FALSE = FALSE, but NULL | FALSE = NULL
and NULL & TRUE = NULL).
Implementations§
Source§impl NullableRowAddrSet
impl NullableRowAddrSet
Sourcepub fn new(selected: RowAddrTreeMap, nulls: RowAddrTreeMap) -> Self
pub fn new(selected: RowAddrTreeMap, nulls: RowAddrTreeMap) -> Self
Create a new RowSelection from selected rows and null rows.
nulls may have overlap with selected. Rows in nulls are considered NULL,
even if they are also in selected.
pub fn with_nulls(self, nulls: RowAddrTreeMap) -> Self
Sourcepub fn empty() -> Self
pub fn empty() -> Self
Create an empty selection. Alias for Default::default
Sourcepub fn len(&self) -> Option<u64>
pub fn len(&self) -> Option<u64>
Get the number of TRUE rows (selected but not null).
Returns None if the number of TRUE rows cannot be determined. This happens if the underlying RowAddrTreeMap has full fragments selected.
pub fn is_empty(&self) -> bool
Sourcepub fn null_rows(&self) -> &RowAddrTreeMap
pub fn null_rows(&self) -> &RowAddrTreeMap
Get the null rows
Sourcepub fn true_rows(&self) -> RowAddrTreeMap
pub fn true_rows(&self) -> RowAddrTreeMap
Get the TRUE rows (selected but not null)
pub fn union_all(selections: &[Self]) -> Self
Trait Implementations§
Source§impl BitAndAssign<&NullableRowAddrSet> for NullableRowAddrSet
impl BitAndAssign<&NullableRowAddrSet> for NullableRowAddrSet
Source§fn bitand_assign(&mut self, rhs: &Self)
fn bitand_assign(&mut self, rhs: &Self)
&= operation. Read moreSource§impl BitOrAssign<&NullableRowAddrSet> for NullableRowAddrSet
impl BitOrAssign<&NullableRowAddrSet> for NullableRowAddrSet
Source§fn bitor_assign(&mut self, rhs: &Self)
fn bitor_assign(&mut self, rhs: &Self)
|= operation. Read moreSource§impl Clone for NullableRowAddrSet
impl Clone for NullableRowAddrSet
Source§fn clone(&self) -> NullableRowAddrSet
fn clone(&self) -> NullableRowAddrSet
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NullableRowAddrSet
impl Debug for NullableRowAddrSet
Source§impl DeepSizeOf for NullableRowAddrSet
impl DeepSizeOf for NullableRowAddrSet
Source§fn deep_size_of_children(&self, context: &mut Context) -> usize
fn deep_size_of_children(&self, context: &mut Context) -> usize
Source§fn deep_size_of(&self) -> usize
fn deep_size_of(&self) -> usize
Source§impl Default for NullableRowAddrSet
impl Default for NullableRowAddrSet
Source§fn default() -> NullableRowAddrSet
fn default() -> NullableRowAddrSet
Source§impl PartialEq for NullableRowAddrSet
impl PartialEq for NullableRowAddrSet
Auto Trait Implementations§
impl Freeze for NullableRowAddrSet
impl RefUnwindSafe for NullableRowAddrSet
impl Send for NullableRowAddrSet
impl Sync for NullableRowAddrSet
impl Unpin for NullableRowAddrSet
impl UnwindSafe for NullableRowAddrSet
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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