pub struct PartitionedTopKOperator { /* private fields */ }Expand description
Partitioned top-K operator.
Maintains independent top-K heaps per partition key.
Supports the ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) WHERE rn <= N pattern.
Implementations§
Source§impl PartitionedTopKOperator
impl PartitionedTopKOperator
Sourcepub fn new(
operator_id: String,
k: usize,
partition_columns: Vec<PartitionColumn>,
sort_columns: Vec<TopKSortColumn>,
emit_strategy: TopKEmitStrategy,
max_partitions: usize,
) -> Self
pub fn new( operator_id: String, k: usize, partition_columns: Vec<PartitionColumn>, sort_columns: Vec<TopKSortColumn>, emit_strategy: TopKEmitStrategy, max_partitions: usize, ) -> Self
Creates a new partitioned top-K operator.
Sourcepub fn partition_count(&self) -> usize
pub fn partition_count(&self) -> usize
Returns the number of active partitions.
Sourcepub fn total_entries(&self) -> usize
pub fn total_entries(&self) -> usize
Returns the total number of entries across all partitions.
Sourcepub fn partition_size(&self, partition_key: &[u8]) -> usize
pub fn partition_size(&self, partition_key: &[u8]) -> usize
Returns the number of entries in a specific partition.
Sourcepub fn pending_changes_count(&self) -> usize
pub fn pending_changes_count(&self) -> usize
Returns the number of pending changelog records.
Trait Implementations§
Source§impl Operator for PartitionedTopKOperator
impl Operator for PartitionedTopKOperator
Source§fn process(
&mut self,
event: &Event,
_ctx: &mut OperatorContext<'_>,
) -> OutputVec
fn process( &mut self, event: &Event, _ctx: &mut OperatorContext<'_>, ) -> OutputVec
Process an incoming event
Source§fn on_timer(
&mut self,
_timer: Timer,
_ctx: &mut OperatorContext<'_>,
) -> OutputVec
fn on_timer( &mut self, _timer: Timer, _ctx: &mut OperatorContext<'_>, ) -> OutputVec
Handle timer expiration
Source§fn checkpoint(&self) -> OperatorState
fn checkpoint(&self) -> OperatorState
Checkpoint the operator’s state
Source§fn restore(&mut self, state: OperatorState) -> Result<(), OperatorError>
fn restore(&mut self, state: OperatorState) -> Result<(), OperatorError>
Restore from a checkpoint Read more
Auto Trait Implementations§
impl Freeze for PartitionedTopKOperator
impl !RefUnwindSafe for PartitionedTopKOperator
impl Send for PartitionedTopKOperator
impl Sync for PartitionedTopKOperator
impl Unpin for PartitionedTopKOperator
impl UnsafeUnpin for PartitionedTopKOperator
impl !UnwindSafe for PartitionedTopKOperator
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
§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>
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 more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.