pub struct DefaultSubstraitConsumer<'a> { /* private fields */ }
Expand description
Default SubstraitConsumer for converting standard Substrait without user-defined extensions.
Used as the consumer in from_substrait_plan
Implementations§
Source§impl<'a> DefaultSubstraitConsumer<'a>
impl<'a> DefaultSubstraitConsumer<'a>
pub fn new(extensions: &'a Extensions, state: &'a SessionState) -> Self
Trait Implementations§
Source§impl SubstraitConsumer for DefaultSubstraitConsumer<'_>
impl SubstraitConsumer for DefaultSubstraitConsumer<'_>
fn resolve_table_ref<'life0, 'life1, 'async_trait>(
&'life0 self,
table_ref: &'life1 TableReference,
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn TableProvider>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_extensions(&self) -> &Extensions
fn get_function_registry(&self) -> &impl FunctionRegistry
fn consume_extension_leaf<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ExtensionLeafRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_extension_single<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ExtensionSingleRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_extension_multi<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ExtensionMultiRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn consume_rel<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 Rel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_rel<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 Rel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
All Rels to be converted pass through this method.
You can provide your own implementation if you wish to customize the conversion behaviour.
fn consume_read<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ReadRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_filter<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 FilterRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 FetchRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_aggregate<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 AggregateRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_sort<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 SortRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_join<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 JoinRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_project<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ProjectRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_set<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 SetRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_cross<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 CrossRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_consistent_partition_window<'life0, 'life1, 'async_trait>(
&'life0 self,
_rel: &'life1 ConsistentPartitionWindowRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_exchange<'life0, 'life1, 'async_trait>(
&'life0 self,
rel: &'life1 ExchangeRel,
) -> Pin<Box<dyn Future<Output = Result<LogicalPlan>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn consume_expression<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 Expression,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_expression<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 Expression,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
All Expressions to be converted pass through this method.
You can provide your own implementation if you wish to customize the conversion behaviour.
fn consume_literal<'life0, 'life1, 'async_trait>(
&'life0 self,
expr: &'life1 Literal,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn consume_field_reference<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 FieldReference,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_scalar_function<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 ScalarFunction,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_window_function<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 WindowFunction,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_if_then<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 IfThen,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_switch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_expr: &'life1 SwitchExpression,
_input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_singular_or_list<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 SingularOrList,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_multi_or_list<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_expr: &'life1 MultiOrList,
_input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_cast<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 Cast,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_subquery<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
expr: &'life1 Subquery,
input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_nested<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_expr: &'life1 Nested,
_input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_enum<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_expr: &'life1 Enum,
_input_schema: &'life2 DFSchema,
) -> Pin<Box<dyn Future<Output = Result<Expr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume_user_defined_type( &self, user_defined_type: &UserDefined, ) -> Result<DataType>
fn consume_user_defined_literal( &self, user_defined_literal: &UserDefined, ) -> Result<ScalarValue>
Auto Trait Implementations§
impl<'a> Freeze for DefaultSubstraitConsumer<'a>
impl<'a> !RefUnwindSafe for DefaultSubstraitConsumer<'a>
impl<'a> Send for DefaultSubstraitConsumer<'a>
impl<'a> Sync for DefaultSubstraitConsumer<'a>
impl<'a> Unpin for DefaultSubstraitConsumer<'a>
impl<'a> !UnwindSafe for DefaultSubstraitConsumer<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more