WholeStageCodegen (1)
  CometColumnarToRow
    InputAdapter
      CometTakeOrderedAndProject [customer_id,customer_first_name,customer_last_name]
        CometProject [customer_id,customer_first_name,customer_last_name]
          CometBroadcastHashJoin [customer_id,year_total,customer_id,customer_first_name,customer_last_name,year_total,year_total,customer_id,year_total]
            CometProject [customer_id,year_total,customer_id,customer_first_name,customer_last_name,year_total,year_total]
              CometBroadcastHashJoin [customer_id,year_total,customer_id,customer_first_name,customer_last_name,year_total,customer_id,year_total]
                CometBroadcastHashJoin [customer_id,year_total,customer_id,customer_first_name,customer_last_name,year_total]
                  CometFilter [customer_id,year_total]
                    CometHashAggregate [customer_id,year_total,c_customer_id,c_first_name,c_last_name,d_year,sum,sum(UnscaledValue(ss_net_paid))]
                      CometExchange [c_customer_id,c_first_name,c_last_name,d_year] #1
                        CometHashAggregate [c_customer_id,c_first_name,c_last_name,d_year,sum,ss_net_paid]
                          CometProject [c_customer_id,c_first_name,c_last_name,ss_net_paid,d_year]
                            CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,ss_net_paid,ss_sold_date_sk,d_date_sk,d_year]
                              CometProject [c_customer_id,c_first_name,c_last_name,ss_net_paid,ss_sold_date_sk]
                                CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                  CometProject [c_customer_id,c_first_name,c_last_name] [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                    CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                  CometBroadcastExchange [ss_customer_sk,ss_net_paid,ss_sold_date_sk] #2
                                    CometFilter [ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                        SubqueryBroadcast [d_date_sk] #1
                                          BroadcastExchange #3
                                            WholeStageCodegen (1)
                                              CometColumnarToRow
                                                InputAdapter
                                                  CometFilter [d_date_sk,d_year]
                                                    CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                              CometBroadcastExchange [d_date_sk,d_year] #4
                                CometFilter [d_date_sk,d_year]
                                  CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                  CometBroadcastExchange [customer_id,customer_first_name,customer_last_name,year_total] #5
                    CometHashAggregate [customer_id,customer_first_name,customer_last_name,year_total,c_customer_id,c_first_name,c_last_name,d_year,sum,sum(UnscaledValue(ss_net_paid))]
                      CometExchange [c_customer_id,c_first_name,c_last_name,d_year] #6
                        CometHashAggregate [c_customer_id,c_first_name,c_last_name,d_year,sum,ss_net_paid]
                          CometProject [c_customer_id,c_first_name,c_last_name,ss_net_paid,d_year]
                            CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,ss_net_paid,ss_sold_date_sk,d_date_sk,d_year]
                              CometProject [c_customer_id,c_first_name,c_last_name,ss_net_paid,ss_sold_date_sk]
                                CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                  CometProject [c_customer_id,c_first_name,c_last_name] [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                    CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                  CometBroadcastExchange [ss_customer_sk,ss_net_paid,ss_sold_date_sk] #7
                                    CometFilter [ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_net_paid,ss_sold_date_sk]
                                        SubqueryBroadcast [d_date_sk] #2
                                          BroadcastExchange #8
                                            WholeStageCodegen (1)
                                              CometColumnarToRow
                                                InputAdapter
                                                  CometFilter [d_date_sk,d_year]
                                                    CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                              CometBroadcastExchange [d_date_sk,d_year] #9
                                CometFilter [d_date_sk,d_year]
                                  CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                CometBroadcastExchange [customer_id,year_total] #10
                  CometFilter [customer_id,year_total]
                    CometHashAggregate [customer_id,year_total,c_customer_id,c_first_name,c_last_name,d_year,sum,sum(UnscaledValue(ws_net_paid))]
                      CometExchange [c_customer_id,c_first_name,c_last_name,d_year] #11
                        CometHashAggregate [c_customer_id,c_first_name,c_last_name,d_year,sum,ws_net_paid]
                          CometProject [c_customer_id,c_first_name,c_last_name,ws_net_paid,d_year]
                            CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,ws_net_paid,ws_sold_date_sk,d_date_sk,d_year]
                              CometProject [c_customer_id,c_first_name,c_last_name,ws_net_paid,ws_sold_date_sk]
                                CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                                  CometProject [c_customer_id,c_first_name,c_last_name] [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                    CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                  CometBroadcastExchange [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk] #12
                                    CometFilter [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                                      CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                                        ReusedSubquery [d_date_sk] #1
                              ReusedExchange [d_date_sk,d_year] #4
            CometBroadcastExchange [customer_id,year_total] #13
              CometHashAggregate [customer_id,year_total,c_customer_id,c_first_name,c_last_name,d_year,sum,sum(UnscaledValue(ws_net_paid))]
                CometExchange [c_customer_id,c_first_name,c_last_name,d_year] #14
                  CometHashAggregate [c_customer_id,c_first_name,c_last_name,d_year,sum,ws_net_paid]
                    CometProject [c_customer_id,c_first_name,c_last_name,ws_net_paid,d_year]
                      CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,ws_net_paid,ws_sold_date_sk,d_date_sk,d_year]
                        CometProject [c_customer_id,c_first_name,c_last_name,ws_net_paid,ws_sold_date_sk]
                          CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                            CometProject [c_customer_id,c_first_name,c_last_name] [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                              CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                                CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name]
                            CometBroadcastExchange [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk] #15
                              CometFilter [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                                CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_net_paid,ws_sold_date_sk]
                                  ReusedSubquery [d_date_sk] #2
                        ReusedExchange [d_date_sk,d_year] #9
