Struct mz_compute_client::plan::top_k::MonotonicTopKPlan
source · pub struct MonotonicTopKPlan {
pub group_key: Vec<usize>,
pub order_key: Vec<ColumnOrder>,
pub limit: Option<usize>,
pub arity: usize,
pub must_consolidate: bool,
}
Expand description
A plan for monotonic TopKs with an offset of 0 and an arbitrary limit.
Fields§
§group_key: Vec<usize>
The columns that form the key for each group.
order_key: Vec<ColumnOrder>
Ordering that is used within each group.
limit: Option<usize>
Optionally, an upper bound on the per-group ordinal position of the records to produce from each group.
arity: usize
The number of columns in the input and output.
must_consolidate: bool
True if the input is not physically monotonic, and the operator must perform
consolidation to remove potential negations. The operator implementation is
free to consolidate as late as possible while ensuring correctness, so it is
not a requirement that the input be directly subjected to consolidation.
More details in the monotonic one-shot SELECT
s design doc.1
1 https://github.com/MaterializeInc/materialize/blob/main/doc/developer/design/20230421_stabilize_monotonic_select.md
Trait Implementations§
source§impl Arbitrary for MonotonicTopKPlan
impl Arbitrary for MonotonicTopKPlan
§type Parameters = (<Vec<usize, Global> as Arbitrary>::Parameters, <Vec<ColumnOrder, Global> as Arbitrary>::Parameters, <Option<usize> as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters)
type Parameters = (<Vec<usize, Global> as Arbitrary>::Parameters, <Vec<ColumnOrder, Global> as Arbitrary>::Parameters, <Option<usize> as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters)
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<(<Vec<usize, Global> as Arbitrary>::Strategy, <Vec<ColumnOrder, Global> as Arbitrary>::Strategy, <Option<usize> as Arbitrary>::Strategy, <usize as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy), fn(_: (Vec<usize, Global>, Vec<ColumnOrder, Global>, Option<usize>, usize, bool)) -> MonotonicTopKPlan>
type Strategy = Map<(<Vec<usize, Global> as Arbitrary>::Strategy, <Vec<ColumnOrder, Global> as Arbitrary>::Strategy, <Option<usize> as Arbitrary>::Strategy, <usize as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy), fn(_: (Vec<usize, Global>, Vec<ColumnOrder, Global>, Option<usize>, usize, bool)) -> MonotonicTopKPlan>
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
source§impl Clone for MonotonicTopKPlan
impl Clone for MonotonicTopKPlan
source§fn clone(&self) -> MonotonicTopKPlan
fn clone(&self) -> MonotonicTopKPlan
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MonotonicTopKPlan
impl Debug for MonotonicTopKPlan
source§impl<'de> Deserialize<'de> for MonotonicTopKPlan
impl<'de> Deserialize<'de> for MonotonicTopKPlan
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl PartialEq<MonotonicTopKPlan> for MonotonicTopKPlan
impl PartialEq<MonotonicTopKPlan> for MonotonicTopKPlan
source§fn eq(&self, other: &MonotonicTopKPlan) -> bool
fn eq(&self, other: &MonotonicTopKPlan) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl RustType<ProtoMonotonicTopKPlan> for MonotonicTopKPlan
impl RustType<ProtoMonotonicTopKPlan> for MonotonicTopKPlan
source§fn into_proto(&self) -> ProtoMonotonicTopKPlan
fn into_proto(&self) -> ProtoMonotonicTopKPlan
Self
into a Proto
value.source§fn from_proto(proto: ProtoMonotonicTopKPlan) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoMonotonicTopKPlan) -> Result<Self, TryFromProtoError>
source§impl Serialize for MonotonicTopKPlan
impl Serialize for MonotonicTopKPlan
impl Eq for MonotonicTopKPlan
impl StructuralEq for MonotonicTopKPlan
impl StructuralPartialEq for MonotonicTopKPlan
Auto Trait Implementations§
impl RefUnwindSafe for MonotonicTopKPlan
impl Send for MonotonicTopKPlan
impl Sync for MonotonicTopKPlan
impl Unpin for MonotonicTopKPlan
impl UnwindSafe for MonotonicTopKPlan
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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> Pointable for T
impl<T> Pointable 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
.