pub trait AggregationExecutorExt: AggregationHost {
// Provided methods
fn execute_select_with_aggregation(
&self,
statement: &SelectStatement,
context: &ExecutionContext,
rows: RowVec,
columns: &[String],
) -> Result<Box<dyn QueryResult>> { ... }
fn execute_aggregation_for_window(
&self,
statement: &SelectStatement,
context: &ExecutionContext,
rows: &[(i64, Row)],
columns: &[String],
) -> Result<(Vec<String>, RowVec)> { ... }
fn try_aggregation_pushdown(
&self,
table: &dyn Table,
statement: &SelectStatement,
context: &ExecutionContext,
classification: &Arc<QueryClassification>,
) -> Result<Option<Box<dyn QueryResult>>> { ... }
fn try_filtered_aggregation_pushdown(
&self,
table: &dyn Table,
statement: &SelectStatement,
context: &ExecutionContext,
classification: &Arc<QueryClassification>,
columns: &[String],
) -> Result<Option<Box<dyn QueryResult>>> { ... }
fn try_streaming_global_aggregation(
&self,
table: &dyn Table,
statement: &SelectStatement,
context: &ExecutionContext,
classification: &Arc<QueryClassification>,
) -> Result<Option<Box<dyn QueryResult>>> { ... }
fn try_streaming_derived_table_aggregation(
&self,
source: Box<dyn QueryResult>,
statement: &SelectStatement,
classification: &Arc<QueryClassification>,
context: &ExecutionContext,
) -> Result<DerivedAggregationAttempt> { ... }
fn try_storage_aggregation(
&self,
table: &dyn Table,
statement: &SelectStatement,
context: &ExecutionContext,
columns: &[String],
classification: &QueryClassification,
) -> Option<Box<dyn QueryResult>> { ... }
fn try_fast_count_distinct_compiled(
&self,
statement: &SelectStatement,
compiled: &RwLock<CompiledExecution>,
) -> Option<Result<Box<dyn QueryResult>>> { ... }
fn try_fast_count_star_compiled(
&self,
statement: &SelectStatement,
compiled: &RwLock<CompiledExecution>,
) -> Option<Result<Box<dyn QueryResult>>> { ... }
}Expand description
Internal call surface between aggregation phases and the SELECT owner.
Provided Methods§
fn execute_select_with_aggregation( &self, statement: &SelectStatement, context: &ExecutionContext, rows: RowVec, columns: &[String], ) -> Result<Box<dyn QueryResult>>
fn execute_aggregation_for_window( &self, statement: &SelectStatement, context: &ExecutionContext, rows: &[(i64, Row)], columns: &[String], ) -> Result<(Vec<String>, RowVec)>
fn try_aggregation_pushdown( &self, table: &dyn Table, statement: &SelectStatement, context: &ExecutionContext, classification: &Arc<QueryClassification>, ) -> Result<Option<Box<dyn QueryResult>>>
fn try_filtered_aggregation_pushdown( &self, table: &dyn Table, statement: &SelectStatement, context: &ExecutionContext, classification: &Arc<QueryClassification>, columns: &[String], ) -> Result<Option<Box<dyn QueryResult>>>
fn try_streaming_global_aggregation( &self, table: &dyn Table, statement: &SelectStatement, context: &ExecutionContext, classification: &Arc<QueryClassification>, ) -> Result<Option<Box<dyn QueryResult>>>
fn try_streaming_derived_table_aggregation( &self, source: Box<dyn QueryResult>, statement: &SelectStatement, classification: &Arc<QueryClassification>, context: &ExecutionContext, ) -> Result<DerivedAggregationAttempt>
fn try_storage_aggregation( &self, table: &dyn Table, statement: &SelectStatement, context: &ExecutionContext, columns: &[String], classification: &QueryClassification, ) -> Option<Box<dyn QueryResult>>
fn try_fast_count_distinct_compiled( &self, statement: &SelectStatement, compiled: &RwLock<CompiledExecution>, ) -> Option<Result<Box<dyn QueryResult>>>
fn try_fast_count_star_compiled( &self, statement: &SelectStatement, compiled: &RwLock<CompiledExecution>, ) -> Option<Result<Box<dyn QueryResult>>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".