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§
fn evaluate( &self, expression: &ScalarExpr, row: &dyn RowLookup, ) -> ExecResult<Value>
Provided Methods§
fn evaluate_physical( &self, expression: &ScalarExpr, schema: &RowSchema, row: &PhysicalRow, ) -> ExecResult<Value>
Sourcefn parameters(&self) -> &[SQLParam]
fn parameters(&self) -> &[SQLParam]
Bound SQL parameters used by static type resolution. Implementations that do not evaluate parameters may keep the empty default.
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)>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".