Skip to main content

ExpressionEvaluator

Trait ExpressionEvaluator 

Source
pub trait ExpressionEvaluator: Send + Sync {
    // Required method
    fn evaluate(
        &self,
        expression: &ScalarExpr,
        row: &dyn RowLookup,
    ) -> ExecResult<Value>;

    // Provided methods
    fn evaluate_physical(
        &self,
        expression: &ScalarExpr,
        schema: &RowSchema,
        row: &PhysicalRow,
    ) -> ExecResult<Value> { ... }
    fn parameters(&self) -> &[SQLParam] { ... }
    fn expression_type(
        &self,
        expression: &ScalarExpr,
        schema: &RowSchema,
    ) -> Result<Option<ColumnType>, SQLError> { ... }
    fn star_column_visible(&self, _column: &str) -> bool { ... }
    fn project_star(
        &self,
        row: &dyn RowLookup,
    ) -> ExecResult<Vec<(String, Value)>> { ... }
}

Required Methods§

Source

fn evaluate( &self, expression: &ScalarExpr, row: &dyn RowLookup, ) -> ExecResult<Value>

Provided Methods§

Source

fn evaluate_physical( &self, expression: &ScalarExpr, schema: &RowSchema, row: &PhysicalRow, ) -> ExecResult<Value>

Source

fn parameters(&self) -> &[SQLParam]

Bound SQL parameters used by static type resolution. Implementations that do not evaluate parameters may keep the empty default.

Source

fn expression_type( &self, expression: &ScalarExpr, schema: &RowSchema, ) -> Result<Option<ColumnType>, SQLError>

Source

fn star_column_visible(&self, _column: &str) -> bool

Source

fn project_star(&self, row: &dyn RowLookup) -> ExecResult<Vec<(String, Value)>>

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§