=== Stage 1 ===
SortShuffleWriterExec: partitioning=Hash([n_nationkey@0], 16)
  FilterExec: n_name@1 = SAUDI ARABIA, projection=[n_nationkey@0]
    StatsExec: rows=25

=== Stage 2 ===
ShuffleWriterExec: partitioning: None
  UnresolvedShuffleExec: stage=1, partitioning: Hash([n_nationkey@0], 16)

=== Stage 3 ===
SortShuffleWriterExec: partitioning=Hash([s_suppkey@0], 16)
  StatsExec: rows=1000000

=== Stage 4 ===
SortShuffleWriterExec: partitioning=Hash([l_suppkey@1], 16)
  FilterExec: l_receiptdate@3 > l_commitdate@2, projection=[l_orderkey@0, l_suppkey@1]
    StatsExec: rows=600037902

=== Stage 5 ===
SortShuffleWriterExec: partitioning=Hash([l_orderkey@2], 16)
  ProjectionExec: expr=[s_name@1 as s_name, s_nationkey@2 as s_nationkey, l_orderkey@3 as l_orderkey, l_suppkey@4 as l_suppkey]
    SortMergeJoinExec: join_type=Inner, on=[(s_suppkey@0, l_suppkey@1)]
      SortExec: expr=[s_suppkey@0 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=3, partitioning: Hash([s_suppkey@0], 16)
      SortExec: expr=[l_suppkey@1 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=4, partitioning: Hash([l_suppkey@1], 16)

=== Stage 6 ===
SortShuffleWriterExec: partitioning=Hash([o_orderkey@0], 16)
  FilterExec: o_orderstatus@1 = F, projection=[o_orderkey@0]
    StatsExec: rows=150000000

=== Stage 7 ===
SortShuffleWriterExec: partitioning=Hash([s_nationkey@1], 16)
  ProjectionExec: expr=[s_name@0 as s_name, s_nationkey@1 as s_nationkey, l_orderkey@2 as l_orderkey, l_suppkey@3 as l_suppkey]
    SortMergeJoinExec: join_type=Inner, on=[(l_orderkey@2, o_orderkey@0)]
      SortExec: expr=[l_orderkey@2 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=5, partitioning: Hash([l_orderkey@2], 16)
      SortExec: expr=[o_orderkey@0 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=6, partitioning: Hash([o_orderkey@0], 16)

=== Stage 8 ===
SortShuffleWriterExec: partitioning=Hash([l_orderkey@1], 16)
  ProjectionExec: expr=[s_name@0 as s_name, l_orderkey@2 as l_orderkey, l_suppkey@3 as l_suppkey]
    ProjectionExec: expr=[s_name@1 as s_name, s_nationkey@2 as s_nationkey, l_orderkey@3 as l_orderkey, l_suppkey@4 as l_suppkey, n_nationkey@0 as n_nationkey]
      HashJoinExec: mode=CollectLeft, join_type=Inner, on=[(n_nationkey@0, s_nationkey@1)]
        UnresolvedShuffleExec: stage=2, broadcast=true, upstream_partitions: 16
        UnresolvedShuffleExec: stage=7, partitioning: Hash([s_nationkey@1], 16)

=== Stage 9 ===
SortShuffleWriterExec: partitioning=Hash([l_orderkey@0], 16)
  StatsExec: rows=600037902

=== Stage 10 ===
SortShuffleWriterExec: partitioning=Hash([l_orderkey@0], 16)
  FilterExec: l_receiptdate@3 > l_commitdate@2, projection=[l_orderkey@0, l_suppkey@1]
    StatsExec: rows=600037902

=== Stage 11 ===
SortShuffleWriterExec: partitioning=Hash([s_name@0], 16)
  AggregateExec: mode=Partial, gby=[s_name@0 as s_name], aggr=[count(Int64(1))]
    ProjectionExec: expr=[s_name@0 as s_name]
      SortMergeJoinExec: join_type=LeftAnti, on=[(l_orderkey@1, l_orderkey@0)], filter=l_suppkey@1 != l_suppkey@0
        SortMergeJoinExec: join_type=LeftSemi, on=[(l_orderkey@1, l_orderkey@0)], filter=l_suppkey@1 != l_suppkey@0
          SortExec: expr=[l_orderkey@1 ASC], preserve_partitioning=[true]
            UnresolvedShuffleExec: stage=8, partitioning: Hash([l_orderkey@1], 16)
          SortExec: expr=[l_orderkey@0 ASC], preserve_partitioning=[true]
            UnresolvedShuffleExec: stage=9, partitioning: Hash([l_orderkey@0], 16)
        SortExec: expr=[l_orderkey@0 ASC], preserve_partitioning=[true]
          UnresolvedShuffleExec: stage=10, partitioning: Hash([l_orderkey@0], 16)

=== Stage 12 ===
ShuffleWriterExec: partitioning: None
  SortExec: TopK(fetch=100), expr=[numwait@1 DESC, s_name@0 ASC NULLS LAST], preserve_partitioning=[true]
    ProjectionExec: expr=[s_name@0 as s_name, count(Int64(1))@1 as numwait]
      AggregateExec: mode=FinalPartitioned, gby=[s_name@0 as s_name], aggr=[count(Int64(1))]
        UnresolvedShuffleExec: stage=11, partitioning: Hash([s_name@0], 16)

=== Stage 13 ===
ShuffleWriterExec: partitioning: None
  SortPreservingMergeExec: [numwait@1 DESC, s_name@0 ASC NULLS LAST], fetch=100
    UnresolvedShuffleExec: stage=12, partitioning: Hash([s_name@0], 16)
