pub struct BoundedWindowAggExec {
pub partition_keys: Vec<Arc<dyn PhysicalExpr>>,
pub input_order_mode: InputOrderMode,
/* private fields */
}
Expand description
Window execution plan
Fields§
§partition_keys: Vec<Arc<dyn PhysicalExpr>>
Partition Keys
input_order_mode: InputOrderMode
Describes how the input is ordered relative to the partition keys
Implementations§
source§impl BoundedWindowAggExec
impl BoundedWindowAggExec
sourcepub fn try_new(
window_expr: Vec<Arc<dyn WindowExpr>>,
input: Arc<dyn ExecutionPlan>,
partition_keys: Vec<Arc<dyn PhysicalExpr>>,
input_order_mode: InputOrderMode,
) -> Result<Self>
pub fn try_new( window_expr: Vec<Arc<dyn WindowExpr>>, input: Arc<dyn ExecutionPlan>, partition_keys: Vec<Arc<dyn PhysicalExpr>>, input_order_mode: InputOrderMode, ) -> Result<Self>
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>>
pub fn partition_by_sort_keys(&self) -> Result<Vec<PhysicalSortExpr>>
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 BoundedWindowAggExec
impl Debug for BoundedWindowAggExec
source§impl DisplayAs for BoundedWindowAggExec
impl DisplayAs for BoundedWindowAggExec
source§impl ExecutionPlan for BoundedWindowAggExec
impl ExecutionPlan for BoundedWindowAggExec
source§fn name(&self) -> &'static str
fn name(&self) -> &'static str
Short name for the ExecutionPlan, such as ‘ParquetExec’. Read more
source§fn properties(&self) -> &PlanProperties
fn properties(&self) -> &PlanProperties
Return properties of the output of the
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>>
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 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 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 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>>
Returns a new
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 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>
fn statistics(&self) -> Result<Statistics>
Returns statistics for this
ExecutionPlan
node. If statistics are not
available, should return Statistics::new_unknown
(the default), not
an error.source§fn static_name() -> &'static strwhere
Self: Sized,
fn static_name() -> &'static strwhere
Self: Sized,
Short name for the ExecutionPlan, such as ‘ParquetExec’.
Like
name
but can be called without an instance.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>>>
fn repartitioned( &self, _target_partitions: usize, _config: &ConfigOptions, ) -> Result<Option<Arc<dyn ExecutionPlan>>>
If supported, attempt to increase the partitioning of this
ExecutionPlan
to
produce target_partitions
partitions. 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>>
Returns a fetching variant of this
ExecutionPlan
node, if it supports
fetch limits. Returns None
otherwise.Auto Trait Implementations§
impl Freeze for BoundedWindowAggExec
impl !RefUnwindSafe for BoundedWindowAggExec
impl Send for BoundedWindowAggExec
impl Sync for BoundedWindowAggExec
impl Unpin for BoundedWindowAggExec
impl !UnwindSafe for BoundedWindowAggExec
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
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>
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 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>
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