Struct datafusion::physical_plan::test::exec::MockExec
source · pub struct MockExec { /* private fields */ }
Expand description
A Mock ExecutionPlan that can be used for writing tests of other ExecutionPlans
Implementations§
source§impl MockExec
impl MockExec
sourcepub fn new(
data: Vec<Result<RecordBatch, DataFusionError>>,
schema: Arc<Schema>
) -> MockExec
pub fn new( data: Vec<Result<RecordBatch, DataFusionError>>, schema: Arc<Schema> ) -> MockExec
Create a new MockExec
with a single partition that returns
the specified Results
s.
By default, the batches are not produced immediately (the
caller has to actually yield and another task must run) to
ensure any poll loops are correct. This behavior can be
changed with with_use_task
sourcepub fn with_use_task(self, use_task: bool) -> MockExec
pub fn with_use_task(self, use_task: bool) -> MockExec
If use_task
is true (the default) then the batches are sent
back using a separate task to ensure the underlying stream is
not immediately ready
Trait Implementations§
source§impl ExecutionPlan for MockExec
impl ExecutionPlan for MockExec
source§fn execute(
&self,
partition: usize,
_context: Arc<TaskContext>
) -> Result<Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>, DataFusionError>
fn execute( &self, partition: usize, _context: Arc<TaskContext> ) -> Result<Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>, DataFusionError>
Returns a stream which yields data
source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Returns the execution plan as
Any
so that it can be
downcast to a specific implementation.source§fn output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Specifies how the output of this
ExecutionPlan
is split into
partitions.source§fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
If the output of this
ExecutionPlan
within each partition is sorted,
returns Some(keys)
with the description of how it was sorted. Read moresource§fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
Get a list of children
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<MockExec>,
_: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn with_new_children( self: Arc<MockExec>, _: Vec<Arc<dyn ExecutionPlan>> ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
Returns a new
ExecutionPlan
where all existing children were replaced
by the children
, in ordersource§fn statistics(&self) -> Result<Statistics, DataFusionError>
fn statistics(&self) -> Result<Statistics, DataFusionError>
Returns statistics for this
ExecutionPlan
node. If statistics are not
available, should return Statistics::new_unknown
(the default), not
an error.source§fn unbounded_output(&self, _children: &[bool]) -> Result<bool, DataFusionError>
fn unbounded_output(&self, _children: &[bool]) -> Result<bool, DataFusionError>
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
ExecutionPlan
, 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 required for all of the children of this
ExecutionPlan
. Read moresource§fn maintains_input_order(&self) -> Vec<bool>
fn maintains_input_order(&self) -> Vec<bool>
Returns
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>
Specifies whether the
ExecutionPlan
benefits from increased
parallelization at its input for each child. Read moresource§fn equivalence_properties(&self) -> EquivalenceProperties
fn equivalence_properties(&self) -> EquivalenceProperties
Get the
EquivalenceProperties
within the plan. 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>
If supported, attempt to increase the partitioning of this
ExecutionPlan
to
produce target_partitions
partitions. Read moresource§fn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Return a snapshot of the set of
Metric
s for this
ExecutionPlan
. If no Metric
s are available, return None. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for MockExec
impl Send for MockExec
impl Sync for MockExec
impl Unpin for MockExec
impl !UnwindSafe for MockExec
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