DynExprVTable

Trait DynExprVTable 

Source
pub trait DynExprVTable:
    'static
    + Send
    + Sync
    + Sealed {
Show 22 methods // Required methods fn as_any(&self) -> &dyn Any; fn id(&self) -> ExprId; fn fmt_sql(&self, expression: &Expression, f: &mut Formatter<'_>) -> Result; fn options_serialize( &self, options: &dyn Any, ) -> VortexResult<Option<Vec<u8>>>; fn options_deserialize( &self, metadata: &[u8], ) -> VortexResult<Box<dyn Any + Send + Sync>>; fn options_clone(&self, options: &dyn Any) -> Box<dyn Any + Send + Sync>; fn options_eq(&self, a: &dyn Any, b: &dyn Any) -> bool; fn options_hash(&self, options: &dyn Any, hasher: &mut dyn Hasher); fn options_display( &self, options: &dyn Any, fmt: &mut Formatter<'_>, ) -> Result; fn options_debug( &self, options: &dyn Any, fmt: &mut Formatter<'_>, ) -> Result; fn return_dtype( &self, options: &dyn Any, arg_types: &[DType], ) -> VortexResult<DType>; fn simplify( &self, expression: &Expression, ctx: &dyn SimplifyCtx, ) -> VortexResult<Option<Expression>>; fn simplify_untyped( &self, expression: &Expression, ) -> VortexResult<Option<Expression>>; fn execute( &self, options: &dyn Any, args: ExecutionArgs, ) -> VortexResult<Datum>; fn evaluate( &self, expression: &Expression, scope: &ArrayRef, ) -> VortexResult<ArrayRef>; fn reduce( &self, options: &dyn Any, node: &dyn ReduceNode, ctx: &dyn ReduceCtx, ) -> VortexResult<Option<ReduceNodeRef>>; fn arity(&self, options: &dyn Any) -> Arity; fn child_name(&self, options: &dyn Any, child_idx: usize) -> ChildName; fn stat_falsification( &self, expression: &Expression, catalog: &dyn StatsCatalog, ) -> Option<Expression>; fn stat_expression( &self, expression: &Expression, stat: Stat, catalog: &dyn StatsCatalog, ) -> Option<Expression>; fn is_null_sensitive(&self, options: &dyn Any) -> bool; fn is_fallible(&self, options: &dyn Any) -> bool;
}
Expand description

An object-safe trait for dynamic dispatch of Vortex expression vtables.

This trait is automatically implemented via the VTableAdapter for any type that implements VTable, and lifts the associated types into dynamic trait objects.

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Source

fn id(&self) -> ExprId

Source

fn fmt_sql(&self, expression: &Expression, f: &mut Formatter<'_>) -> Result

Source

fn options_serialize(&self, options: &dyn Any) -> VortexResult<Option<Vec<u8>>>

Source

fn options_deserialize( &self, metadata: &[u8], ) -> VortexResult<Box<dyn Any + Send + Sync>>

Source

fn options_clone(&self, options: &dyn Any) -> Box<dyn Any + Send + Sync>

Source

fn options_eq(&self, a: &dyn Any, b: &dyn Any) -> bool

Source

fn options_hash(&self, options: &dyn Any, hasher: &mut dyn Hasher)

Source

fn options_display(&self, options: &dyn Any, fmt: &mut Formatter<'_>) -> Result

Source

fn options_debug(&self, options: &dyn Any, fmt: &mut Formatter<'_>) -> Result

Source

fn return_dtype( &self, options: &dyn Any, arg_types: &[DType], ) -> VortexResult<DType>

Source

fn simplify( &self, expression: &Expression, ctx: &dyn SimplifyCtx, ) -> VortexResult<Option<Expression>>

Source

fn simplify_untyped( &self, expression: &Expression, ) -> VortexResult<Option<Expression>>

Source

fn execute(&self, options: &dyn Any, args: ExecutionArgs) -> VortexResult<Datum>

Source

fn evaluate( &self, expression: &Expression, scope: &ArrayRef, ) -> VortexResult<ArrayRef>

Source

fn reduce( &self, options: &dyn Any, node: &dyn ReduceNode, ctx: &dyn ReduceCtx, ) -> VortexResult<Option<ReduceNodeRef>>

Source

fn arity(&self, options: &dyn Any) -> Arity

Source

fn child_name(&self, options: &dyn Any, child_idx: usize) -> ChildName

Source

fn stat_falsification( &self, expression: &Expression, catalog: &dyn StatsCatalog, ) -> Option<Expression>

Source

fn stat_expression( &self, expression: &Expression, stat: Stat, catalog: &dyn StatsCatalog, ) -> Option<Expression>

Source

fn is_null_sensitive(&self, options: &dyn Any) -> bool

Source

fn is_fallible(&self, options: &dyn Any) -> bool

Implementors§