WholeStageCodegen (4)
  HashAggregate [count] [count(1),count(1),count]
    InputAdapter
      Exchange #1
        WholeStageCodegen (3)
          HashAggregate [count,count]
            Project
              BroadcastHashJoin [c_last_name,c_first_name,d_date,c_last_name,c_first_name,d_date]
                BroadcastHashJoin [c_last_name,c_first_name,d_date,c_last_name,c_first_name,d_date]
                  ColumnarToRow
                    InputAdapter
                      CometHashAggregate [c_last_name,c_first_name,d_date]
                        CometExchange [c_last_name,c_first_name,d_date] #2
                          CometHashAggregate [c_last_name,c_first_name,d_date]
                            CometProject [c_last_name,c_first_name,d_date]
                              CometBroadcastHashJoin [ss_customer_sk,d_date,c_customer_sk,c_first_name,c_last_name]
                                CometProject [ss_customer_sk,d_date]
                                  CometBroadcastHashJoin [ss_customer_sk,ss_sold_date_sk,d_date_sk,d_date]
                                    CometFilter [ss_customer_sk,ss_sold_date_sk]
                                      CometScan parquet spark_catalog.default.store_sales [ss_customer_sk,ss_sold_date_sk]
                                    CometBroadcastExchange [d_date_sk,d_date] #3
                                      CometProject [d_date_sk,d_date]
                                        CometFilter [d_date_sk,d_date,d_month_seq]
                                          CometScan parquet spark_catalog.default.date_dim [d_date_sk,d_date,d_month_seq]
                                CometBroadcastExchange [c_customer_sk,c_first_name,c_last_name] #4
                                  CometFilter [c_customer_sk,c_first_name,c_last_name]
                                    CometScan parquet spark_catalog.default.customer [c_customer_sk,c_first_name,c_last_name]
                  InputAdapter
                    BroadcastExchange #5
                      WholeStageCodegen (1)
                        ColumnarToRow
                          InputAdapter
                            CometHashAggregate [c_last_name,c_first_name,d_date]
                              CometExchange [c_last_name,c_first_name,d_date] #6
                                CometHashAggregate [c_last_name,c_first_name,d_date]
                                  CometProject [c_last_name,c_first_name,d_date]
                                    CometBroadcastHashJoin [cs_bill_customer_sk,d_date,c_customer_sk,c_first_name,c_last_name]
                                      CometProject [cs_bill_customer_sk,d_date]
                                        CometBroadcastHashJoin [cs_bill_customer_sk,cs_sold_date_sk,d_date_sk,d_date]
                                          CometFilter [cs_bill_customer_sk,cs_sold_date_sk]
                                            CometScan parquet spark_catalog.default.catalog_sales [cs_bill_customer_sk,cs_sold_date_sk]
                                          ReusedExchange [d_date_sk,d_date] #3
                                      ReusedExchange [c_customer_sk,c_first_name,c_last_name] #4
                InputAdapter
                  BroadcastExchange #7
                    WholeStageCodegen (2)
                      ColumnarToRow
                        InputAdapter
                          CometHashAggregate [c_last_name,c_first_name,d_date]
                            CometExchange [c_last_name,c_first_name,d_date] #8
                              CometHashAggregate [c_last_name,c_first_name,d_date]
                                CometProject [c_last_name,c_first_name,d_date]
                                  CometBroadcastHashJoin [ws_bill_customer_sk,d_date,c_customer_sk,c_first_name,c_last_name]
                                    CometProject [ws_bill_customer_sk,d_date]
                                      CometBroadcastHashJoin [ws_bill_customer_sk,ws_sold_date_sk,d_date_sk,d_date]
                                        CometFilter [ws_bill_customer_sk,ws_sold_date_sk]
                                          CometScan parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_sold_date_sk]
                                        ReusedExchange [d_date_sk,d_date] #3
                                    ReusedExchange [c_customer_sk,c_first_name,c_last_name] #4
