pub trait SubqueryExecutorExt: SubqueryHost {
Show 16 methods
// Provided methods
fn process_where_subqueries(
&self,
expression: &Expression,
context: &ExecutionContext,
) -> Result<Expression> { ... }
fn execute_exists_subquery(
&self,
statement: &SelectStatement,
context: &ExecutionContext,
) -> Result<bool> { ... }
fn try_process_select_subqueries(
&self,
columns: &[Expression],
context: &ExecutionContext,
) -> Result<Option<Vec<Expression>>> { ... }
fn process_correlated_expression(
&self,
expression: &Expression,
context: &ExecutionContext,
) -> Result<Expression> { ... }
fn process_correlated_where(
&self,
expression: &Expression,
context: &ExecutionContext,
) -> Result<Expression> { ... }
fn should_use_index_nested_loop_for_anti_join(
&self,
info: &SemiJoinInfo,
outer_limit: Option<i64>,
) -> bool { ... }
fn execute_semi_join_optimization(
&self,
info: &SemiJoinInfo,
context: &ExecutionContext,
) -> Result<CompactArc<ValueSet>> { ... }
fn execute_anti_join(
&self,
info: &SemiJoinInfo,
outer_rows: CompactArc<Vec<Row>>,
outer_columns: &[String],
context: &ExecutionContext,
) -> Result<RowVec> { ... }
fn try_optimize_exists_to_semi_join(
&self,
expression: &Expression,
context: &ExecutionContext,
outer_tables: &[String],
outer_limit: Option<i64>,
) -> Result<Option<Expression>> { ... }
fn try_optimize_in_to_semi_join(
&self,
expression: &Expression,
context: &ExecutionContext,
outer_tables: &[String],
) -> Result<Option<Expression>> { ... }
fn has_subqueries(expression: &Expression) -> bool
where Self: Sized { ... }
fn has_correlated_subqueries(expression: &Expression) -> bool
where Self: Sized { ... }
fn has_correlated_select_subqueries(columns: &[Expression]) -> bool
where Self: Sized { ... }
fn is_subquery_correlated(statement: &SelectStatement) -> bool
where Self: Sized { ... }
fn try_extract_not_exists_info(
expression: &Expression,
outer_tables: &[String],
) -> Option<SemiJoinInfo>
where Self: Sized { ... }
fn collect_outer_table_names(table: &Option<Box<Expression>>) -> Vec<String>
where Self: Sized { ... }
}Expand description
Internal call surface between subquery traversal and the SELECT owner.
Provided Methods§
fn process_where_subqueries( &self, expression: &Expression, context: &ExecutionContext, ) -> Result<Expression>
fn execute_exists_subquery( &self, statement: &SelectStatement, context: &ExecutionContext, ) -> Result<bool>
fn try_process_select_subqueries( &self, columns: &[Expression], context: &ExecutionContext, ) -> Result<Option<Vec<Expression>>>
fn should_use_index_nested_loop_for_anti_join( &self, info: &SemiJoinInfo, outer_limit: Option<i64>, ) -> bool
fn execute_semi_join_optimization( &self, info: &SemiJoinInfo, context: &ExecutionContext, ) -> Result<CompactArc<ValueSet>>
fn execute_anti_join( &self, info: &SemiJoinInfo, outer_rows: CompactArc<Vec<Row>>, outer_columns: &[String], context: &ExecutionContext, ) -> Result<RowVec>
fn try_optimize_exists_to_semi_join( &self, expression: &Expression, context: &ExecutionContext, outer_tables: &[String], outer_limit: Option<i64>, ) -> Result<Option<Expression>>
fn try_optimize_in_to_semi_join( &self, expression: &Expression, context: &ExecutionContext, outer_tables: &[String], ) -> Result<Option<Expression>>
fn has_subqueries(expression: &Expression) -> boolwhere
Self: Sized,
fn try_extract_not_exists_info(
expression: &Expression,
outer_tables: &[String],
) -> Option<SemiJoinInfo>where
Self: Sized,
fn collect_outer_table_names(table: &Option<Box<Expression>>) -> Vec<String>where
Self: Sized,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".