=== Stage 1 ===
SortShuffleWriterExec: partitioning=Hash([c_custkey@0], 16)
  StatsExec: rows=15000000

=== Stage 2 ===
SortShuffleWriterExec: partitioning=Hash([o_custkey@1], 16)
  StatsExec: rows=150000000

=== Stage 3 ===
SortShuffleWriterExec: partitioning=Hash([o_orderkey@2], 16)
  ProjectionExec: expr=[c_custkey@0 as c_custkey, c_name@1 as c_name, o_orderkey@2 as o_orderkey, o_totalprice@4 as o_totalprice, o_orderdate@5 as o_orderdate]
    SortMergeJoinExec: join_type=Inner, on=[(c_custkey@0, o_custkey@1)]
      SortExec: expr=[c_custkey@0 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=1, partitioning: Hash([c_custkey@0], 16)
      SortExec: expr=[o_custkey@1 ASC], preserve_partitioning=[true]
        UnresolvedShuffleExec: stage=2, partitioning: Hash([o_custkey@1], 16)

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

=== Stage 5 ===
SortShuffleWriterExec: partitioning=Hash([l_orderkey@0], 16)
  AggregateExec: mode=Partial, gby=[l_orderkey@0 as l_orderkey], aggr=[sum(lineitem.l_quantity)]
    StatsExec: rows=600037902

=== Stage 6 ===
ShuffleWriterExec: partitioning: None
  SortExec: TopK(fetch=100), expr=[o_totalprice@4 DESC, o_orderdate@3 ASC NULLS LAST], preserve_partitioning=[true]
    AggregateExec: mode=SinglePartitioned, gby=[c_name@1 as c_name, c_custkey@0 as c_custkey, o_orderkey@2 as o_orderkey, o_orderdate@4 as o_orderdate, o_totalprice@3 as o_totalprice], aggr=[sum(lineitem.l_quantity)], ordering_mode=PartiallySorted([2])
      SortMergeJoinExec: join_type=LeftSemi, on=[(o_orderkey@2, l_orderkey@0)]
        ProjectionExec: expr=[c_custkey@0 as c_custkey, c_name@1 as c_name, o_orderkey@2 as o_orderkey, o_totalprice@3 as o_totalprice, o_orderdate@4 as o_orderdate, l_quantity@6 as l_quantity]
          SortMergeJoinExec: join_type=Inner, on=[(o_orderkey@2, l_orderkey@0)]
            SortExec: expr=[o_orderkey@2 ASC], preserve_partitioning=[true]
              UnresolvedShuffleExec: stage=3, partitioning: Hash([o_orderkey@2], 16)
            SortExec: expr=[l_orderkey@0 ASC], preserve_partitioning=[true]
              UnresolvedShuffleExec: stage=4, partitioning: Hash([l_orderkey@0], 16)
        SortExec: expr=[l_orderkey@0 ASC], preserve_partitioning=[true]
          FilterExec: sum(lineitem.l_quantity)@1 > Some(30000),25,2, projection=[l_orderkey@0]
            AggregateExec: mode=FinalPartitioned, gby=[l_orderkey@0 as l_orderkey], aggr=[sum(lineitem.l_quantity)]
              UnresolvedShuffleExec: stage=5, partitioning: Hash([l_orderkey@0], 16)

=== Stage 7 ===
ShuffleWriterExec: partitioning: None
  SortPreservingMergeExec: [o_totalprice@4 DESC, o_orderdate@3 ASC NULLS LAST], fetch=100
    UnresolvedShuffleExec: stage=6, partitioning: Hash([o_orderkey@2], 16)
