@@ -63,17 +63,18 @@ use crate::state::task_manager::UpdatedStages;
6363///
6464/// This will produce a DataFusion execution plan that looks something like
6565///
66- ///
66+ /// ```text
6767/// CoalesceBatchesExec: target_batch_size=4096
6868/// RepartitionExec: partitioning=Hash([Column { name: "id", index: 0 }], 4)
6969/// AggregateExec: mode=Partial, gby=[id\@0 as id], aggr=[SUM(some_table.gmv)]
7070/// TableScan: some_table
71+ /// ```
7172///
7273/// The Ballista `DistributedPlanner` will turn this into a distributed plan by creating a shuffle
7374/// boundary (called a "Stage") whenever the underlying plan needs to perform a repartition.
7475/// In this case we end up with a distributed plan with two stages:
7576///
76- ///
77+ /// ```text
7778/// ExecutionGraph[job_id=job, session_id=session, available_tasks=1, complete=false]
7879/// =========UnResolvedStage[id=2, children=1]=========
7980/// Inputs{1: StageOutput { partition_locations: {}, complete: false }}
@@ -85,7 +86,7 @@ use crate::state::task_manager::UpdatedStages;
8586/// ShuffleWriterExec: Some(Hash([Column { name: "id", index: 0 }], 4))
8687/// AggregateExec: mode=Partial, gby=[id\@0 as id], aggr=[SUM(?table?.gmv)]
8788/// TableScan: some_table
88- ///
89+ /// ```
8990///
9091/// The DAG structure of this `ExecutionGraph` is encoded in the stages. Each stage's `input` field
9192/// will indicate which stages it depends on, and each stage's `output_links` will indicate which
0 commit comments