Struct datafusion::physical_plan::windows::WindowAggExec
source · pub struct WindowAggExec {
pub partition_keys: Vec<Arc<dyn PhysicalExpr>>,
/* private fields */
}
Expand description
Window execution plan
Fields§
§partition_keys: Vec<Arc<dyn PhysicalExpr>>
Partition Keys
Implementations§
source§impl WindowAggExec
impl WindowAggExec
sourcepub fn try_new(
window_expr: Vec<Arc<dyn WindowExpr>>,
input: Arc<dyn ExecutionPlan>,
partition_keys: Vec<Arc<dyn PhysicalExpr>>
) -> Result<WindowAggExec, DataFusionError>
pub fn try_new( window_expr: Vec<Arc<dyn WindowExpr>>, input: Arc<dyn ExecutionPlan>, partition_keys: Vec<Arc<dyn PhysicalExpr>> ) -> Result<WindowAggExec, DataFusionError>
Create a new execution plan for window aggregates
sourcepub fn window_expr(&self) -> &[Arc<dyn WindowExpr>]
pub fn window_expr(&self) -> &[Arc<dyn WindowExpr>]
Window expressions
sourcepub fn input(&self) -> &Arc<dyn ExecutionPlan>
pub fn input(&self) -> &Arc<dyn ExecutionPlan>
Input plan
sourcepub fn partition_by_sort_keys(
&self
) -> Result<Vec<PhysicalSortExpr>, DataFusionError>
pub fn partition_by_sort_keys( &self ) -> Result<Vec<PhysicalSortExpr>, DataFusionError>
Return the output sort order of partition keys: For example OVER(PARTITION BY a, ORDER BY b) -> would give sorting of the column a
Trait Implementations§
source§impl Debug for WindowAggExec
impl Debug for WindowAggExec
source§impl DisplayAs for WindowAggExec
impl DisplayAs for WindowAggExec
source§impl ExecutionPlan for WindowAggExec
impl ExecutionPlan for WindowAggExec
source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Return a reference to Any that can be used for downcasting
source§fn output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Get the output partitioning of this plan
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 equivalence_properties(&self) -> EquivalenceProperties
fn equivalence_properties(&self) -> EquivalenceProperties
Get the EquivalenceProperties
within the plan
source§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 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 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 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 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 with_new_children(
self: Arc<WindowAggExec>,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn with_new_children( self: Arc<WindowAggExec>, children: Vec<Arc<dyn ExecutionPlan>> ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
Returns a new
ExecutionPlan
where all existing children were replaced
by the children
, oi ordersource§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>
source§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 moresource§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 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 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 moreAuto Trait Implementations§
impl !RefUnwindSafe for WindowAggExec
impl Send for WindowAggExec
impl Sync for WindowAggExec
impl Unpin for WindowAggExec
impl !UnwindSafe for WindowAggExec
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