pub trait PushOperator: Send + Sync {
// Required methods
fn push(
&mut self,
chunk: DataChunk,
sink: &mut dyn Sink,
) -> Result<bool, OperatorError>;
fn finalize(&mut self, sink: &mut dyn Sink) -> Result<(), OperatorError>;
fn name(&self) -> &'static str;
// Provided method
fn preferred_chunk_size(&self) -> ChunkSizeHint { ... }
}Expand description
Push-based operator trait.
Unlike pull-based operators that return data on next() calls,
push-based operators receive data via push() and forward results
to a downstream sink.
Required Methods§
Sourcefn push(
&mut self,
chunk: DataChunk,
sink: &mut dyn Sink,
) -> Result<bool, OperatorError>
fn push( &mut self, chunk: DataChunk, sink: &mut dyn Sink, ) -> Result<bool, OperatorError>
Process an incoming chunk and push results to the sink.
Returns Ok(true) to continue processing, Ok(false) for early termination.
Provided Methods§
Sourcefn preferred_chunk_size(&self) -> ChunkSizeHint
fn preferred_chunk_size(&self) -> ChunkSizeHint
Hint for preferred chunk size.
Implementors§
impl PushOperator for CardinalityTrackingOperator
impl PushOperator for AggregatePushOperator
impl PushOperator for DistinctMaterializingOperator
impl PushOperator for DistinctPushOperator
impl PushOperator for FilterPushOperator
impl PushOperator for LimitPushOperator
impl PushOperator for ProjectPushOperator
impl PushOperator for SkipLimitPushOperator
impl PushOperator for SkipPushOperator
impl PushOperator for SortPushOperator
impl PushOperator for SpillableAggregatePushOperator
Available on crate feature
spill only.impl PushOperator for SpillableSortPushOperator
Available on crate feature
spill only.