pub trait AggregationHost: Sync {
// Required methods
fn aggregation_engine(&self) -> &Arc<MVCCEngine> ⓘ;
fn aggregation_function_registry(&self) -> &FunctionRegistry;
fn aggregation_active_transaction(
&self,
) -> &Mutex<Option<ActiveTransaction>>;
fn aggregation_process_where_subqueries(
&self,
expression: &Expression,
context: &ExecutionContext,
) -> Result<Expression>;
fn aggregation_try_process_select_subqueries(
&self,
columns: &[Expression],
context: &ExecutionContext,
) -> Result<Option<Vec<Expression>>>;
fn aggregation_has_correlated_subqueries(
&self,
expression: &Expression,
) -> bool;
fn aggregation_process_correlated_expression(
&self,
expression: &Expression,
context: &ExecutionContext,
) -> Result<Expression>;
fn aggregation_output_column_names(
&self,
select_expressions: &[Expression],
source_columns: &[String],
table_alias: Option<&str>,
) -> Vec<String>;
}Expand description
Narrow composition contract for the remaining correlated-subquery hooks. Storage and function dependencies stay explicit and downward-only.
Required Methods§
fn aggregation_engine(&self) -> &Arc<MVCCEngine> ⓘ
fn aggregation_function_registry(&self) -> &FunctionRegistry
fn aggregation_active_transaction(&self) -> &Mutex<Option<ActiveTransaction>>
fn aggregation_process_where_subqueries( &self, expression: &Expression, context: &ExecutionContext, ) -> Result<Expression>
fn aggregation_try_process_select_subqueries( &self, columns: &[Expression], context: &ExecutionContext, ) -> Result<Option<Vec<Expression>>>
fn aggregation_output_column_names( &self, select_expressions: &[Expression], source_columns: &[String], table_alias: Option<&str>, ) -> Vec<String>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".