Struct mz_expr::row::collection::RowCollection
source · pub struct RowCollection {
encoded: Bytes,
metadata: Arc<[EncodedRowMetadata]>,
runs: Vec<usize>,
}
Expand description
Fields§
§encoded: Bytes
Contiguous blob of encoded Rows.
metadata: Arc<[EncodedRowMetadata]>
Metadata about an individual Row in the blob.
runs: Vec<usize>
Ends of non-empty, sorted runs of rows in index into metadata
.
Implementations§
source§impl RowCollection
impl RowCollection
sourcepub fn new(rows: Vec<(Row, NonZeroUsize)>, order_by: &[ColumnOrder]) -> Self
pub fn new(rows: Vec<(Row, NonZeroUsize)>, order_by: &[ColumnOrder]) -> Self
Create a new RowCollection
from a collection of Row
s. Sorts data by order_by
.
Note that all row collections to be merged must be constructed with the same order_by
to ensure a consistent sort order. Anything else is undefined behavior.
sourcepub fn merge(&mut self, other: &RowCollection)
pub fn merge(&mut self, other: &RowCollection)
Merge another RowCollection
into self
.
sourcepub fn count(&self, offset: usize, limit: Option<usize>) -> usize
pub fn count(&self, offset: usize, limit: Option<usize>) -> usize
Total count of Row
s represented by this collection, considering a
possible OFFSET
and LIMIT
.
sourcepub fn entries(&self) -> usize
pub fn entries(&self) -> usize
Total count of (Row
, EncodedRowMetadata
) pairs in this collection.
sourcepub fn byte_len(&self) -> usize
pub fn byte_len(&self) -> usize
Returns the number of bytes this RowCollection
uses.
sourcepub fn get(&self, idx: usize) -> Option<(&RowRef, &EncodedRowMetadata)>
pub fn get(&self, idx: usize) -> Option<(&RowRef, &EncodedRowMetadata)>
Returns a RowRef
for the entry at idx
, if one exists.
sourcepub fn sorted_view(self, order_by: &[ColumnOrder]) -> SortedRowCollection
pub fn sorted_view(self, order_by: &[ColumnOrder]) -> SortedRowCollection
“Sorts” the RowCollection
by the column order in order_by
. Returns a sorted view over
the collection.
fn sorted_view_inner<F>(self, cmp: &F) -> SortedRowCollection
Trait Implementations§
source§impl Clone for RowCollection
impl Clone for RowCollection
source§fn clone(&self) -> RowCollection
fn clone(&self) -> RowCollection
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RowCollection
impl Debug for RowCollection
source§impl Default for RowCollection
impl Default for RowCollection
source§fn default() -> RowCollection
fn default() -> RowCollection
source§impl PartialEq for RowCollection
impl PartialEq for RowCollection
source§impl RustType<ProtoRowCollection> for RowCollection
impl RustType<ProtoRowCollection> for RowCollection
source§fn into_proto(&self) -> ProtoRowCollection
fn into_proto(&self) -> ProtoRowCollection
Self
into a Proto
value.source§fn from_proto(proto: ProtoRowCollection) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoRowCollection) -> Result<Self, TryFromProtoError>
source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.impl StructuralPartialEq for RowCollection
Auto Trait Implementations§
impl !Freeze for RowCollection
impl RefUnwindSafe for RowCollection
impl Send for RowCollection
impl Sync for RowCollection
impl Unpin for RowCollection
impl UnwindSafe for RowCollection
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.