substrait::df_logical_plan::state

Trait SubstraitPlanningState

pub trait SubstraitPlanningState:
    Sync
    + Send
    + FunctionRegistry {
    // Required methods
    fn serializer_registry(&self) -> &Arc<dyn SerializerRegistry>;
    fn table<'life0, 'life1, 'async_trait>(
        &'life0 self,
        reference: &'life1 TableReference,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn TableProvider>>, DataFusionError>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
}
Expand description

This trait provides the context needed to transform a substrait plan into a [datafusion::logical_expr::LogicalPlan] (via super::consumer::from_substrait_plan) and back again into a substrait plan (via super::producer::to_substrait_plan).

The context is declared as a trait to decouple the substrait plan encoder / decoder from the [SessionState], potentially allowing users to define their own slimmer context just for serializing and deserializing substrait.

[SessionState] implements this trait.

Required Methods§

fn serializer_registry(&self) -> &Arc<dyn SerializerRegistry>

Return SerializerRegistry for extensions

fn table<'life0, 'life1, 'async_trait>( &'life0 self, reference: &'life1 TableReference, ) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn TableProvider>>, DataFusionError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Implementations on Foreign Types§

§

impl SubstraitPlanningState for SessionState

§

fn serializer_registry(&self) -> &Arc<dyn SerializerRegistry>

§

fn table<'life0, 'life1, 'async_trait>( &'life0 self, reference: &'life1 TableReference, ) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn TableProvider>>, DataFusionError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, SessionState: 'async_trait,

Implementors§