Skip to main content

ScalarSubqueryRunner

Trait ScalarSubqueryRunner 

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

Source

fn execute_subquery( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<SubqueryResult, SQLError>

Provided Methods§

Source

fn execute_subquery_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<SubqueryResult, SQLError>

Source

fn scalar_subquery_value( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<Value, SQLError>

Source

fn scalar_subquery_value_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<Value, SQLError>

Source

fn subquery_exists( &self, subquery: SubqueryId, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<bool, SQLError>

Source

fn subquery_exists_physical( &self, subquery: SubqueryId, outer_schema: &RowSchema, outer_row: &PhysicalRow, params: &[SQLParam], ) -> Result<bool, SQLError>

Source

fn subquery_contains( &self, subquery: SubqueryId, needle: &Value, outer_row: Option<&dyn RowLookup>, params: &[SQLParam], ) -> Result<Option<bool>, SQLError>

Source

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

Implementors§