pub trait PhysicalOp: Send {
// Required methods
fn schema(&self) -> &ArraySchema;
fn next_chunk(&mut self) -> Result<Option<Chunk>, ExecError>;
fn reset(&mut self);
// Provided method
fn finalize_aggregate(
&mut self,
) -> Result<Option<Vec<(String, ScalarValue)>>, ExecError> { ... }
}Expand description
Trait for volcano-style physical operators.
Each operator pulls one chunk at a time from its children. Memory usage = O(chunk_size), not O(array_size).
Required Methods§
Sourcefn schema(&self) -> &ArraySchema
fn schema(&self) -> &ArraySchema
Returns the output schema for this operator.
Provided Methods§
Sourcefn finalize_aggregate(
&mut self,
) -> Result<Option<Vec<(String, ScalarValue)>>, ExecError>
fn finalize_aggregate( &mut self, ) -> Result<Option<Vec<(String, ScalarValue)>>, ExecError>
Aggregate operators override this to consume all input and return
scalar results. Returns Ok(None) for non-aggregate operators.