Skip to main content

NavigationHost

Trait NavigationHost 

Source
pub trait NavigationHost: AggregationHost {
    // Required methods
    fn navigation_engine(&self) -> &Arc<MVCCEngine> ;
    fn navigation_active_transaction(&self) -> &Mutex<Option<ActiveTransaction>>;
    fn navigation_execute_select(
        &self,
        statement: &SelectStatement,
        context: &ExecutionContext,
    ) -> Result<Box<dyn QueryResult>>;
    fn navigation_project_rows_with_alias(
        &self,
        select_expressions: &[Expression],
        rows: RowVec,
        columns: &[String],
        columns_lower: Option<&[String]>,
        context: &ExecutionContext,
        table_alias: Option<&str>,
    ) -> Result<RowVec>;

    // Provided method
    fn navigation_source_materialized(
        &self,
        _plan: &ReferenceExpandPlan,
        _context: &ExecutionContext,
    ) { ... }
}
Expand description

Narrow composition contract for navigation execution. Binding, graph planning and lookup policy remain in this crate; the host supplies only recursive SELECT/projection callbacks and transaction ownership.

Required Methods§

Source

fn navigation_engine(&self) -> &Arc<MVCCEngine>

Source

fn navigation_active_transaction(&self) -> &Mutex<Option<ActiveTransaction>>

Source

fn navigation_execute_select( &self, statement: &SelectStatement, context: &ExecutionContext, ) -> Result<Box<dyn QueryResult>>

Source

fn navigation_project_rows_with_alias( &self, select_expressions: &[Expression], rows: RowVec, columns: &[String], columns_lower: Option<&[String]>, context: &ExecutionContext, table_alias: Option<&str>, ) -> Result<RowVec>

Provided Methods§

Source

fn navigation_source_materialized( &self, _plan: &ReferenceExpandPlan, _context: &ExecutionContext, )

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§