pub struct MemoryExec { /* private fields */ }
Expand description
Execution plan for reading in-memory batches of data
Implementationsยง
Sourceยงimpl MemoryExec
impl MemoryExec
Sourcepub fn try_new(
partitions: &[Vec<RecordBatch>],
schema: SchemaRef,
projection: Option<Vec<usize>>,
) -> Result<Self>
pub fn try_new( partitions: &[Vec<RecordBatch>], schema: SchemaRef, projection: Option<Vec<usize>>, ) -> Result<Self>
Create a new execution plan for reading in-memory record batches
The provided schema
should not have the projection applied.
Sourcepub fn try_new_as_values(
schema: SchemaRef,
data: Vec<Vec<Arc<dyn PhysicalExpr>>>,
) -> Result<Self>
pub fn try_new_as_values( schema: SchemaRef, data: Vec<Vec<Arc<dyn PhysicalExpr>>>, ) -> Result<Self>
Create a new execution plan from a list of constant values (ValuesExec
)
Sourcepub fn try_new_from_batches(
schema: SchemaRef,
batches: Vec<RecordBatch>,
) -> Result<Self>
pub fn try_new_from_batches( schema: SchemaRef, batches: Vec<RecordBatch>, ) -> Result<Self>
Create a new plan using the provided schema and batches.
Errors if any of the batches donโt match the provided schema, or if no batches are provided.
pub fn with_constraints(self, constraints: Constraints) -> Self
Sourcepub fn with_show_sizes(self, show_sizes: bool) -> Self
pub fn with_show_sizes(self, show_sizes: bool) -> Self
Set show_sizes
to determine whether to display partition sizes
Sourcepub fn constraints(&self) -> &Constraints
pub fn constraints(&self) -> &Constraints
Ref to constraints
Sourcepub fn partitions(&self) -> &[Vec<RecordBatch>]
pub fn partitions(&self) -> &[Vec<RecordBatch>]
Ref to partitions
Sourcepub fn projection(&self) -> &Option<Vec<usize>>
pub fn projection(&self) -> &Option<Vec<usize>>
Ref to projection
Sourcepub fn show_sizes(&self) -> bool
pub fn show_sizes(&self) -> bool
Show sizes
Sourcepub fn sort_information(&self) -> &[LexOrdering]
pub fn sort_information(&self) -> &[LexOrdering]
Ref to sort information
Sourcepub fn try_with_sort_information(
self,
sort_information: Vec<LexOrdering>,
) -> Result<Self>
pub fn try_with_sort_information( self, sort_information: Vec<LexOrdering>, ) -> Result<Self>
A memory table can be ordered by multiple expressions simultaneously.
EquivalenceProperties
keeps track of expressions that describe the
global ordering of the schema. These columns are not necessarily same; e.g.
โ-------โ
| a | b |
|---|---|
| 1 | 9 |
| 2 | 8 |
| 3 | 7 |
| 5 | 5 |
โ---โด---โ
where both a ASC
and b DESC
can describe the table ordering. With
EquivalenceProperties
, we can keep track of these equivalences
and treat a ASC
and b DESC
as the same ordering requirement.
Note that if there is an internal projection, that projection will be
also applied to the given sort_information
.
Sourcepub fn original_schema(&self) -> SchemaRef
pub fn original_schema(&self) -> SchemaRef
Arc clone of ref to original schema
Trait Implementationsยง
Sourceยงimpl Clone for MemoryExec
impl Clone for MemoryExec
Sourceยงfn clone(&self) -> MemoryExec
fn clone(&self) -> MemoryExec
1.0.0 ยท Sourceยงfn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSourceยงimpl Debug for MemoryExec
impl Debug for MemoryExec
Sourceยงimpl DisplayAs for MemoryExec
impl DisplayAs for MemoryExec
Sourceยงimpl ExecutionPlan for MemoryExec
impl ExecutionPlan for MemoryExec
Sourceยงfn statistics(&self) -> Result<Statistics>
fn statistics(&self) -> Result<Statistics>
We recompute the statistics dynamically from the arrow metadata as it is pretty cheap to do so
Sourceยงfn name(&self) -> &'static str
fn name(&self) -> &'static str
Sourceยงfn properties(&self) -> &PlanProperties
fn properties(&self) -> &PlanProperties
ExecutionPlan
, such as output
ordering(s), partitioning information etc. Read moreSourceยงfn children(&self) -> Vec<&Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<&Arc<dyn ExecutionPlan>>
ExecutionPlan
s that act as inputs to this plan.
The returned list will be empty for leaf nodes such as scans, will contain
a single value for unary nodes, or two values for binary nodes (such as
joins).Sourceยงfn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn ExecutionPlan>>,
) -> Result<Arc<dyn ExecutionPlan>>
fn with_new_children( self: Arc<Self>, children: Vec<Arc<dyn ExecutionPlan>>, ) -> Result<Arc<dyn ExecutionPlan>>
ExecutionPlan
where all existing children were replaced
by the children
, in orderSourceยงfn execute(
&self,
partition: usize,
context: Arc<TaskContext>,
) -> Result<SendableRecordBatchStream>
fn execute( &self, partition: usize, context: Arc<TaskContext>, ) -> Result<SendableRecordBatchStream>
Sourceยงfn try_swapping_with_projection(
&self,
projection: &ProjectionExec,
) -> Result<Option<Arc<dyn ExecutionPlan>>>
fn try_swapping_with_projection( &self, projection: &ProjectionExec, ) -> Result<Option<Arc<dyn ExecutionPlan>>>
ExecutionPlan
. Read moreSourceยงfn static_name() -> &'static strwhere
Self: Sized,
fn static_name() -> &'static strwhere
Self: Sized,
name
but can be called without an instance.Sourceยงfn check_invariants(
&self,
_check: InvariantLevel,
) -> Result<(), DataFusionError>
fn check_invariants( &self, _check: InvariantLevel, ) -> Result<(), DataFusionError>
Sourceยงfn required_input_distribution(&self) -> Vec<Distribution>
fn required_input_distribution(&self) -> Vec<Distribution>
ExecutionPlan
, By default itโs [Distribution::UnspecifiedDistribution] for each child,Sourceยงfn required_input_ordering(&self) -> Vec<Option<LexRequirement>>
fn required_input_ordering(&self) -> Vec<Option<LexRequirement>>
ExecutionPlan
. Read moreSourceยงfn maintains_input_order(&self) -> Vec<bool>
fn maintains_input_order(&self) -> Vec<bool>
false
if this ExecutionPlan
โs implementation may reorder
rows within or between partitions. Read moreSourceยงfn benefits_from_input_partitioning(&self) -> Vec<bool>
fn benefits_from_input_partitioning(&self) -> Vec<bool>
ExecutionPlan
benefits from increased
parallelization at its input for each child. Read moreSourceยงfn repartitioned(
&self,
_target_partitions: usize,
_config: &ConfigOptions,
) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
fn repartitioned( &self, _target_partitions: usize, _config: &ConfigOptions, ) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
ExecutionPlan
to
produce target_partitions
partitions. Read moreSourceยงfn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Metric
s for this
ExecutionPlan
. If no Metric
s are available, return None. Read moreSourceยงfn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
Sourceยงfn with_fetch(&self, _limit: Option<usize>) -> Option<Arc<dyn ExecutionPlan>>
fn with_fetch(&self, _limit: Option<usize>) -> Option<Arc<dyn ExecutionPlan>>
ExecutionPlan
node, if it supports
fetch limits. Returns None
otherwise.Sourceยงfn fetch(&self) -> Option<usize>
fn fetch(&self) -> Option<usize>
None
means there is no fetch.Sourceยงfn cardinality_effect(&self) -> CardinalityEffect
fn cardinality_effect(&self) -> CardinalityEffect
Auto Trait Implementationsยง
impl Freeze for MemoryExec
impl !RefUnwindSafe for MemoryExec
impl Send for MemoryExec
impl Sync for MemoryExec
impl Unpin for MemoryExec
impl !UnwindSafe for MemoryExec
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
Sourceยงimpl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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