TakeOrderedAndProject [o_totalprice,o_orderdate,c_name,c_custkey,o_orderkey,sum(l_quantity)]
  WholeStageCodegen (8)
    HashAggregate [c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,sum,isEmpty] [sum(l_quantity),sum(l_quantity),sum,isEmpty]
      InputAdapter
        Exchange [c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice] #1
          WholeStageCodegen (7)
            HashAggregate [c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,l_quantity] [sum,isEmpty,sum,isEmpty]
              Project [c_custkey,c_name,o_orderkey,o_totalprice,o_orderdate,l_quantity]
                BroadcastHashJoin [o_orderkey,l_orderkey]
                  Project [c_custkey,c_name,o_orderkey,o_totalprice,o_orderdate]
                    BroadcastHashJoin [c_custkey,o_custkey]
                      Filter [c_custkey]
                        ColumnarToRow
                          InputAdapter
                            Scan parquet spark_catalog.default.customer [c_custkey,c_name]
                      InputAdapter
                        BroadcastExchange #2
                          WholeStageCodegen (3)
                            BroadcastHashJoin [o_orderkey,l_orderkey]
                              Filter [o_custkey,o_orderkey]
                                ColumnarToRow
                                  InputAdapter
                                    Scan parquet spark_catalog.default.orders [o_orderkey,o_custkey,o_totalprice,o_orderdate]
                              InputAdapter
                                BroadcastExchange #3
                                  WholeStageCodegen (2)
                                    Project [l_orderkey]
                                      Filter [sum(l_quantity)]
                                        HashAggregate [l_orderkey,sum,isEmpty] [sum(l_quantity),sum(l_quantity),sum,isEmpty]
                                          InputAdapter
                                            Exchange [l_orderkey] #4
                                              WholeStageCodegen (1)
                                                HashAggregate [l_orderkey,l_quantity] [sum,isEmpty,sum,isEmpty]
                                                  ColumnarToRow
                                                    InputAdapter
                                                      Scan parquet spark_catalog.default.lineitem [l_orderkey,l_quantity]
                  InputAdapter
                    BroadcastExchange #5
                      WholeStageCodegen (6)
                        BroadcastHashJoin [l_orderkey,l_orderkey]
                          Filter [l_orderkey]
                            ColumnarToRow
                              InputAdapter
                                Scan parquet spark_catalog.default.lineitem [l_orderkey,l_quantity]
                          InputAdapter
                            ReusedExchange [l_orderkey] #3
