WholeStageCodegen (7)
  HashAggregate [sum] [sum(UnscaledValue(cs_ext_discount_amt)),excess discount amount,sum]
    InputAdapter
      Exchange #1
        WholeStageCodegen (6)
          HashAggregate [cs_ext_discount_amt] [sum,sum]
            Project [cs_ext_discount_amt]
              BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
                Project [cs_ext_discount_amt,cs_sold_date_sk]
                  BroadcastHashJoin [i_item_sk,cs_item_sk,cs_ext_discount_amt,(1.3 * avg(cs_ext_discount_amt))]
                    Project [cs_ext_discount_amt,cs_sold_date_sk,i_item_sk]
                      BroadcastHashJoin [cs_item_sk,i_item_sk]
                        Filter [cs_item_sk,cs_ext_discount_amt]
                          ColumnarToRow
                            InputAdapter
                              Scan parquet spark_catalog.default.catalog_sales [cs_item_sk,cs_ext_discount_amt,cs_sold_date_sk]
                        InputAdapter
                          BroadcastExchange #2
                            WholeStageCodegen (1)
                              Project [i_item_sk]
                                Filter [i_manufact_id,i_item_sk]
                                  ColumnarToRow
                                    InputAdapter
                                      Scan parquet spark_catalog.default.item [i_item_sk,i_manufact_id]
                    InputAdapter
                      BroadcastExchange #3
                        WholeStageCodegen (4)
                          Filter [(1.3 * avg(cs_ext_discount_amt))]
                            HashAggregate [cs_item_sk,sum,count] [avg(UnscaledValue(cs_ext_discount_amt)),(1.3 * avg(cs_ext_discount_amt)),sum,count]
                              InputAdapter
                                Exchange [cs_item_sk] #4
                                  WholeStageCodegen (3)
                                    HashAggregate [cs_item_sk,cs_ext_discount_amt] [sum,count,sum,count]
                                      Project [cs_item_sk,cs_ext_discount_amt]
                                        BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
                                          Filter [cs_item_sk]
                                            ColumnarToRow
                                              InputAdapter
                                                Scan parquet spark_catalog.default.catalog_sales [cs_item_sk,cs_ext_discount_amt,cs_sold_date_sk]
                                          InputAdapter
                                            BroadcastExchange #5
                                              WholeStageCodegen (2)
                                                Project [d_date_sk]
                                                  Filter [d_date,d_date_sk]
                                                    ColumnarToRow
                                                      InputAdapter
                                                        Scan parquet spark_catalog.default.date_dim [d_date_sk,d_date]
                InputAdapter
                  ReusedExchange [d_date_sk] #5
