pub enum OrderOperatorConfig {
SourceSatisfied,
TopK(TopKConfig),
WindowLocalSort(WindowLocalSortConfig),
WatermarkBoundedSort(WatermarkSortConfig),
PerGroupTopK(PerGroupTopKConfig),
}Expand description
Configuration for a streaming ORDER BY operator.
Each variant corresponds to a different bounded streaming sort strategy.
Variants§
SourceSatisfied
Source already satisfies the ordering — no operator needed.
TopK(TopKConfig)
Streaming top-K: ORDER BY … LIMIT N.
Maintains a bounded heap of K entries with retraction-based emission.
WindowLocalSort(WindowLocalSortConfig)
Window-local sort: ORDER BY inside a windowed aggregation.
Buffers per-window output, sorts on window close.
WatermarkBoundedSort(WatermarkSortConfig)
Watermark-bounded sort: ORDER BY event_time on out-of-order input.
Buffers events between watermarks, emits sorted on watermark advance.
PerGroupTopK(PerGroupTopKConfig)
Per-group top-K: ROW_NUMBER() OVER (PARTITION BY … ORDER BY …) WHERE rn <= N.
Independent top-K heaps per partition key.
Implementations§
Source§impl OrderOperatorConfig
impl OrderOperatorConfig
Sourcepub fn from_analysis(analysis: &OrderAnalysis) -> Result<Option<Self>, String>
pub fn from_analysis(analysis: &OrderAnalysis) -> Result<Option<Self>, String>
Creates an operator configuration from an ORDER BY analysis.
Maps the classified pattern to the appropriate operator config.
Returns None for OrderPattern::None (no ORDER BY).
§Errors
Returns error string for OrderPattern::Unbounded.
Sourcepub fn watermark_bounded(sort_columns: Vec<OrderColumn>) -> Self
pub fn watermark_bounded(sort_columns: Vec<OrderColumn>) -> Self
Creates a watermark-bounded sort config for event time ordering.
Trait Implementations§
Source§impl Clone for OrderOperatorConfig
impl Clone for OrderOperatorConfig
Source§fn clone(&self) -> OrderOperatorConfig
fn clone(&self) -> OrderOperatorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OrderOperatorConfig
impl Debug for OrderOperatorConfig
Source§impl PartialEq for OrderOperatorConfig
impl PartialEq for OrderOperatorConfig
impl Eq for OrderOperatorConfig
impl StructuralPartialEq for OrderOperatorConfig
Auto Trait Implementations§
impl Freeze for OrderOperatorConfig
impl RefUnwindSafe for OrderOperatorConfig
impl Send for OrderOperatorConfig
impl Sync for OrderOperatorConfig
impl Unpin for OrderOperatorConfig
impl UnsafeUnpin for OrderOperatorConfig
impl UnwindSafe for OrderOperatorConfig
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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