WholeStageCodegen (7)
  HashAggregate [sum,count,sum,count,sum,count,sum] [avg(ss_quantity),avg(UnscaledValue(ss_ext_sales_price)),avg(UnscaledValue(ss_ext_wholesale_cost)),sum(UnscaledValue(ss_ext_wholesale_cost)),avg(ss_quantity),avg(ss_ext_sales_price),avg(ss_ext_wholesale_cost),sum(ss_ext_wholesale_cost),sum,count,sum,count,sum,count,sum]
    InputAdapter
      Exchange #1
        WholeStageCodegen (6)
          HashAggregate [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost] [sum,count,sum,count,sum,count,sum,sum,count,sum,count,sum,count,sum]
            Project [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost]
              BroadcastHashJoin [ss_hdemo_sk,hd_demo_sk,cd_marital_status,cd_education_status,ss_sales_price,hd_dep_count]
                Project [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status]
                  BroadcastHashJoin [ss_cdemo_sk,cd_demo_sk,cd_marital_status,cd_education_status,ss_sales_price]
                    Project [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost]
                      BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
                        Project [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk]
                          BroadcastHashJoin [ss_addr_sk,ca_address_sk,ca_state,ss_net_profit]
                            Project [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
                              BroadcastHashJoin [ss_store_sk,s_store_sk]
                                Filter [ss_store_sk,ss_addr_sk,ss_cdemo_sk,ss_hdemo_sk,ss_net_profit,ss_sales_price]
                                  ColumnarToRow
                                    InputAdapter
                                      Scan parquet spark_catalog.default.store_sales [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
                                InputAdapter
                                  BroadcastExchange #2
                                    WholeStageCodegen (1)
                                      Filter [s_store_sk]
                                        ColumnarToRow
                                          InputAdapter
                                            Scan parquet spark_catalog.default.store [s_store_sk]
                            InputAdapter
                              BroadcastExchange #3
                                WholeStageCodegen (2)
                                  Project [ca_address_sk,ca_state]
                                    Filter [ca_country,ca_address_sk,ca_state]
                                      ColumnarToRow
                                        InputAdapter
                                          Scan parquet spark_catalog.default.customer_address [ca_address_sk,ca_state,ca_country]
                        InputAdapter
                          BroadcastExchange #4
                            WholeStageCodegen (3)
                              Project [d_date_sk]
                                Filter [d_year,d_date_sk]
                                  ColumnarToRow
                                    InputAdapter
                                      Scan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                    InputAdapter
                      BroadcastExchange #5
                        WholeStageCodegen (4)
                          Filter [cd_demo_sk,cd_marital_status,cd_education_status]
                            ColumnarToRow
                              InputAdapter
                                Scan parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_marital_status,cd_education_status]
                InputAdapter
                  BroadcastExchange #6
                    WholeStageCodegen (5)
                      Filter [hd_demo_sk,hd_dep_count]
                        ColumnarToRow
                          InputAdapter
                            Scan parquet spark_catalog.default.household_demographics [hd_demo_sk,hd_dep_count]
