pub trait ScalarSubqueryRunner {
// Required method
fn execute_subquery(
&self,
subquery: SubqueryId,
outer_row: Option<&dyn RowLookup>,
params: &[SQLParam],
) -> Result<SubqueryResult, SQLError>;
// Provided methods
fn execute_subquery_physical(
&self,
subquery: SubqueryId,
outer_schema: &RowSchema,
outer_row: &PhysicalRow,
params: &[SQLParam],
) -> Result<SubqueryResult, SQLError> { ... }
fn scalar_subquery_value(
&self,
subquery: SubqueryId,
outer_row: Option<&dyn RowLookup>,
params: &[SQLParam],
) -> Result<Value, SQLError> { ... }
fn scalar_subquery_value_physical(
&self,
subquery: SubqueryId,
outer_schema: &RowSchema,
outer_row: &PhysicalRow,
params: &[SQLParam],
) -> Result<Value, SQLError> { ... }
fn subquery_exists(
&self,
subquery: SubqueryId,
outer_row: Option<&dyn RowLookup>,
params: &[SQLParam],
) -> Result<bool, SQLError> { ... }
fn subquery_exists_physical(
&self,
subquery: SubqueryId,
outer_schema: &RowSchema,
outer_row: &PhysicalRow,
params: &[SQLParam],
) -> Result<bool, SQLError> { ... }
fn subquery_contains(
&self,
subquery: SubqueryId,
needle: &Value,
outer_row: Option<&dyn RowLookup>,
params: &[SQLParam],
) -> Result<Option<bool>, SQLError> { ... }
fn subquery_contains_physical(
&self,
subquery: SubqueryId,
needle: &Value,
outer_schema: &RowSchema,
outer_row: &PhysicalRow,
params: &[SQLParam],
) -> Result<Option<bool>, SQLError> { ... }
}Expand description
Runtime callback for query children referenced by SubqueryId. The
planner owns the actual query-plan arena; execution only needs this stable
slot interface.
Required Methods§
fn execute_subquery( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<SubqueryResult, SQLError>
Provided Methods§
fn execute_subquery_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<SubqueryResult, SQLError>
fn scalar_subquery_value( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<Value, SQLError>
fn scalar_subquery_value_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<Value, SQLError>
fn subquery_exists( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<bool, SQLError>
fn subquery_exists_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<bool, SQLError>
fn subquery_contains( &self, subquery: SubqueryId, needle: &Value, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<Option<bool>, SQLError>
fn subquery_contains_physical( &self, subquery: SubqueryId, needle: &Value, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<Option<bool>, SQLError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".