Skip to main content

SubqueryExecutorExt

Trait SubqueryExecutorExt 

Source
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§

Source

fn process_where_subqueries( &self, expression: &Expression, context: &ExecutionContext, ) -> Result<Expression>

Source

fn execute_exists_subquery( &self, statement: &SelectStatement, context: &ExecutionContext, ) -> Result<bool>

Source

fn try_process_select_subqueries( &self, columns: &[Expression], context: &ExecutionContext, ) -> Result<Option<Vec<Expression>>>

Source

fn process_correlated_expression( &self, expression: &Expression, context: &ExecutionContext, ) -> Result<Expression>

Source

fn process_correlated_where( &self, expression: &Expression, context: &ExecutionContext, ) -> Result<Expression>

Source

fn should_use_index_nested_loop_for_anti_join( &self, info: &SemiJoinInfo, outer_limit: Option<i64>, ) -> bool

Source

fn execute_semi_join_optimization( &self, info: &SemiJoinInfo, context: &ExecutionContext, ) -> Result<CompactArc<ValueSet>>

Source

fn execute_anti_join( &self, info: &SemiJoinInfo, outer_rows: CompactArc<Vec<Row>>, outer_columns: &[String], context: &ExecutionContext, ) -> Result<RowVec>

Source

fn try_optimize_exists_to_semi_join( &self, expression: &Expression, context: &ExecutionContext, outer_tables: &[String], outer_limit: Option<i64>, ) -> Result<Option<Expression>>

Source

fn try_optimize_in_to_semi_join( &self, expression: &Expression, context: &ExecutionContext, outer_tables: &[String], ) -> Result<Option<Expression>>

Source

fn has_subqueries(expression: &Expression) -> bool
where Self: Sized,

Source

fn has_correlated_subqueries(expression: &Expression) -> bool
where Self: Sized,

Source

fn has_correlated_select_subqueries(columns: &[Expression]) -> bool
where Self: Sized,

Source

fn is_subquery_correlated(statement: &SelectStatement) -> bool
where Self: Sized,

Source

fn try_extract_not_exists_info( expression: &Expression, outer_tables: &[String], ) -> Option<SemiJoinInfo>
where Self: Sized,

Source

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".

Implementors§