Skip to main content

ForeignSession

Struct ForeignSession 

Source
pub struct ForeignSession { /* private fields */ }
Expand description

This wrapper struct exists on the receiver side of the FFI interface, so it has no guarantees about being able to access the data in private_data. Any functions defined on this struct must use only the stable function pointers in FFI_SessionRef to interact with the foreign session.

§Query planner delegation

If the session owner installed the current foreign query planner, Session::create_physical_plan dispatches back to that planner and Session::query_planner returns that planner. The planner must retain and invoke the session owner’s previous planner instead of using either method to delegate back to the session. Otherwise, repeated delegation exhausts the stack. See crate::query_planner for details.

Trait Implementations§

Source§

impl Debug for ForeignSession

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Send for ForeignSession

Source§

impl Session for ForeignSession

Source§

fn session_id(&self) -> &str

Return the session ID
Source§

fn config(&self) -> &SessionConfig

Return the SessionConfig
Source§

fn config_options(&self) -> &ConfigOptions

return the ConfigOptions
Source§

fn catalog_list(&self) -> Arc<dyn CatalogProviderList>

Return the catalogs registered with this session.
Source§

fn query_planner(&self) -> Arc<dyn QueryPlanner + Send + Sync>

Return the query planner for this session. Read more
Source§

fn optimize(&self, plan: &LogicalPlan) -> Result<LogicalPlan>

Optimize a logical plan. Read more
Source§

fn create_physical_plan<'life0, 'life1, 'async_trait>( &'life0 self, logical_plan: &'life1 LogicalPlan, ) -> Pin<Box<dyn Future<Output = Result<Arc<dyn ExecutionPlan>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Creates a physical ExecutionPlan plan from a LogicalPlan. Read more
Source§

fn create_physical_expr( &self, expr: Expr, df_schema: &DFSchema, ) -> Result<Arc<dyn PhysicalExpr>>

Create a PhysicalExpr from an Expr after applying type coercion, and function rewrites. Read more
Source§

fn physical_optimizers(&self) -> &[Arc<dyn PhysicalOptimizerRule + Send + Sync>]

Return the physical optimizer rules for this session. Read more
Source§

fn scalar_functions(&self) -> &HashMap<String, Arc<ScalarUDF>>

Return reference to scalar_functions
Source§

fn higher_order_functions(&self) -> &HashMap<String, Arc<HigherOrderUDF>>

Return reference to higher_order_functions
Source§

fn aggregate_functions(&self) -> &HashMap<String, Arc<AggregateUDF>>

Return reference to aggregate_functions
Source§

fn window_functions(&self) -> &HashMap<String, Arc<WindowUDF>>

Return reference to window functions
Source§

fn extension_type_registry(&self) -> &ExtensionTypeRegistryRef

Return a reference to the extension type registry
Source§

fn runtime_env(&self) -> &Arc<RuntimeEnv>

Return the runtime env
Source§

fn execution_props(&self) -> &ExecutionProps

Return the execution properties
Source§

fn as_any(&self) -> &dyn Any

Source§

fn table_options(&self) -> &TableOptions

Return the table options
Source§

fn default_table_options(&self) -> TableOptions

return the TableOptions options with its extensions
Source§

fn table_options_mut(&mut self) -> &mut TableOptions

Returns a mutable reference to TableOptions
Source§

fn task_ctx(&self) -> Arc<TaskContext>

Get a new TaskContext to run in this session
Source§

fn statistics_registry(&self) -> Option<&StatisticsRegistry>

Return the optional statistics registry used during physical optimization.
Source§

impl Sync for ForeignSession

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<Source> AccessAs for Source

Source§

fn ref_as<T>(&self) -> <Source as IGuardRef<T>>::Guard<'_>
where Source: IGuardRef<T>, T: ?Sized,

Provides immutable access to a type as if it were its ABI-unstable equivalent.
Source§

fn mut_as<T>(&mut self) -> <Source as IGuardMut<T>>::GuardMut<'_>
where Source: IGuardMut<T>, T: ?Sized,

Provides mutable access to a type as if it were its ABI-unstable equivalent.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, As> IGuardMut<As> for T
where T: Into<As>, As: Into<T>,

Source§

type GuardMut<'a> = MutAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary after applying its changes to the original.
Source§

fn guard_mut_inner(&mut self) -> <T as IGuardMut<As>>::GuardMut<'_>

Construct the temporary and guard it through a mutable reference.
Source§

impl<T, As> IGuardRef<As> for T
where T: Into<As>, As: Into<T>,

Source§

type Guard<'a> = RefAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary.
Source§

fn guard_ref_inner(&self) -> <T as IGuardRef<As>>::Guard<'_>

Construct the temporary and guard it through an immutable reference.
Source§

impl<T> Includes<End> for T

Source§

type Output = End

The result
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V