WholeStageCodegen (5)
  CometColumnarToRow
    InputAdapter
      CometHashAggregate [sum,sum,sum] [store_only,catalog_only,store_and_catalog,sum(CASE WHEN (isnotnull(customer_sk) AND isnull(customer_sk)) THEN 1 ELSE 0 END),sum(CASE WHEN (isnull(customer_sk) AND isnotnull(customer_sk)) THEN 1 ELSE 0 END),sum(CASE WHEN (isnotnull(customer_sk) AND isnotnull(customer_sk)) THEN 1 ELSE 0 END)]
        CometExchange #1
          CometHashAggregate [customer_sk,customer_sk] [sum,sum,sum]
            CometProject [customer_sk,customer_sk]
              CometSortMergeJoin [customer_sk,item_sk,customer_sk,item_sk]
                CometSort [customer_sk,item_sk]
                  CometHashAggregate [customer_sk,item_sk,ss_customer_sk,ss_item_sk]
                    CometColumnarExchange [ss_customer_sk,ss_item_sk] #2
                      WholeStageCodegen (2)
                        HashAggregate [ss_customer_sk,ss_item_sk]
                          Project [ss_item_sk,ss_customer_sk]
                            BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
                              ColumnarToRow
                                InputAdapter
                                  Scan parquet spark_catalog.default.store_sales [ss_item_sk,ss_customer_sk,ss_sold_date_sk]
                                    SubqueryBroadcast [d_date_sk] #1
                                      BroadcastExchange #3
                                        WholeStageCodegen (1)
                                          CometColumnarToRow
                                            InputAdapter
                                              CometProject [d_date_sk]
                                                CometFilter [d_date_sk,d_month_seq]
                                                  CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_month_seq]
                              InputAdapter
                                ReusedExchange [d_date_sk] #3
                CometSort [customer_sk,item_sk]
                  CometHashAggregate [customer_sk,item_sk,cs_bill_customer_sk,cs_item_sk]
                    CometColumnarExchange [cs_bill_customer_sk,cs_item_sk] #4
                      WholeStageCodegen (4)
                        HashAggregate [cs_bill_customer_sk,cs_item_sk]
                          Project [cs_bill_customer_sk,cs_item_sk]
                            BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
                              ColumnarToRow
                                InputAdapter
                                  Scan parquet spark_catalog.default.catalog_sales [cs_bill_customer_sk,cs_item_sk,cs_sold_date_sk]
                                    ReusedSubquery [d_date_sk] #1
                              InputAdapter
                                ReusedExchange [d_date_sk] #3
