You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/// Necessary information for building a [Stage] during distributed planning.
7
+
///
8
+
/// [NetworkBoundary]s return this piece of data so that the distributed planner know how to
9
+
/// build the next [Stage] from which the [NetworkBoundary] is going to receive data.
10
+
///
11
+
/// Some network boundaries might perform some modifications in their children, like scaling
12
+
/// up the number of partitions, or injecting a specific [ExecutionPlan] on top.
13
+
pubstructInputStageInfo{
14
+
/// The head plan of the [Stage] that is about to be built.
15
+
pubplan:Arc<dynExecutionPlan>,
16
+
/// The amount of tasks the [Stage] will have.
17
+
pubtask_count:usize,
18
+
}
19
+
20
+
/// This trait represents a node that introduces the necessity of a network boundary in the plan.
21
+
/// The distributed planner, upon stepping into one of these, will break the plan and build a stage
22
+
/// out of it.
23
+
pubtraitNetworkBoundary:ExecutionPlan{
24
+
/// Returns the information necessary for building the next stage from which this
25
+
/// [NetworkBoundary] is going to collect data.
26
+
fnget_input_stage_info(&self,task_count:usize)
27
+
-> datafusion::common::Result<InputStageInfo>;
28
+
29
+
/// re-assigns a different number of input tasks to the current [NetworkBoundary].
30
+
///
31
+
/// This will be called if upon building a stage, a [crate::distributed_planner::distributed_physical_optimizer_rule::DistributedPlanError::LimitTasks] error
32
+
/// is returned, prompting the [NetworkBoundary] to choose a different number of input tasks.
0 commit comments