Struct datafusion::physical_plan::memory::MemoryExec
source · 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_owned_data(
partitions: Vec<Vec<RecordBatch>>,
schema: SchemaRef,
projection: Option<Vec<usize>>
) -> Result<Self>
pub fn try_new_owned_data( partitions: Vec<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 with_sort_information(
self,
sort_information: Vec<PhysicalSortExpr>
) -> Self
pub fn with_sort_information( self, sort_information: Vec<PhysicalSortExpr> ) -> Self
Set sort information
Trait Implementations§
source§impl Debug for MemoryExec
impl Debug for MemoryExec
source§impl ExecutionPlan for MemoryExec
impl ExecutionPlan for MemoryExec
source§fn output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Get the output partitioning of this plan
source§fn statistics(&self) -> Statistics
fn statistics(&self) -> Statistics
We recompute the statistics dynamically from the arrow metadata as it is pretty cheap to do so
source§fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
Get a list of child execution plans that provide the input for this plan. The returned list
will be empty for leaf nodes, will contain a single value for unary nodes, or two
values for binary nodes (such as joins).
source§fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
If the output of this operator within each partition is sorted,
returns
Some(keys)
with the description of how it was sorted. Read moresource§fn with_new_children(
self: Arc<Self>,
_: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn with_new_children( self: Arc<Self>, _: Vec<Arc<dyn ExecutionPlan>> ) -> Result<Arc<dyn ExecutionPlan>>
Returns a new plan where all children were replaced by new plans.
source§fn execute(
&self,
partition: usize,
_context: Arc<TaskContext>
) -> Result<SendableRecordBatchStream>
fn execute( &self, partition: usize, _context: Arc<TaskContext> ) -> Result<SendableRecordBatchStream>
creates an iterator
source§fn unbounded_output(&self, _children: &[bool]) -> Result<bool>
fn unbounded_output(&self, _children: &[bool]) -> Result<bool>
Specifies whether this plan generates an infinite stream of records.
If the plan does not support pipelining, but its input(s) are
infinite, returns an error to indicate this.
source§fn required_input_distribution(&self) -> Vec<Distribution>
fn required_input_distribution(&self) -> Vec<Distribution>
Specifies the data distribution requirements for all the
children for this operator, By default it’s [Distribution::UnspecifiedDistribution] for each child,
source§fn required_input_ordering(&self) -> Vec<Option<Vec<PhysicalSortRequirement>>>
fn required_input_ordering(&self) -> Vec<Option<Vec<PhysicalSortRequirement>>>
Specifies the ordering requirements for all of the children
For each child, it’s the local ordering requirement within
each partition rather than the global ordering Read more
source§fn maintains_input_order(&self) -> Vec<bool>
fn maintains_input_order(&self) -> Vec<bool>
Returns
false
if this operator’s implementation may reorder
rows within or between partitions. Read moresource§fn benefits_from_input_partitioning(&self) -> bool
fn benefits_from_input_partitioning(&self) -> bool
Returns
true
if this operator would benefit from
partitioning its input (and thus from more parallelism). For
operators that do very little work the overhead of extra
parallelism may outweigh any benefits Read moresource§fn equivalence_properties(&self) -> EquivalenceProperties
fn equivalence_properties(&self) -> EquivalenceProperties
Get the EquivalenceProperties within the plan
source§fn ordering_equivalence_properties(&self) -> OrderingEquivalenceProperties
fn ordering_equivalence_properties(&self) -> OrderingEquivalenceProperties
Get the OrderingEquivalenceProperties within the plan
source§fn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Auto Trait Implementations§
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
Mutably borrows from an owned value. Read more