WholeStageCodegen (3)
  HashAggregate [sum,isEmpty,sum,isEmpty] [sum(CASE WHEN StartsWith(p_type, PROMO) THEN CheckOverflow((promote_precision(cast(l_extendedprice as decimal(11,0))) * promote_precision(CheckOverflow((1 - promote_precision(cast(l_discount as decimal(11,0)))), DecimalType(11,0)))), DecimalType(22,0)) ELSE 0 END),sum(CheckOverflow((promote_precision(cast(l_extendedprice as decimal(11,0))) * promote_precision(CheckOverflow((1 - promote_precision(cast(l_discount as decimal(11,0)))), DecimalType(11,0)))), DecimalType(22,0))),promo_revenue,sum,isEmpty,sum,isEmpty]
    InputAdapter
      Exchange #1
        WholeStageCodegen (2)
          HashAggregate [p_type,l_extendedprice,l_discount] [sum,isEmpty,sum,isEmpty,sum,isEmpty,sum,isEmpty]
            Project [l_extendedprice,l_discount,p_type]
              BroadcastHashJoin [l_partkey,p_partkey]
                Project [l_partkey,l_extendedprice,l_discount]
                  Filter [l_shipdate,l_partkey]
                    ColumnarToRow
                      InputAdapter
                        Scan parquet default.lineitem [l_partkey,l_extendedprice,l_discount,l_shipdate]
                InputAdapter
                  BroadcastExchange #2
                    WholeStageCodegen (1)
                      Filter [p_partkey]
                        ColumnarToRow
                          InputAdapter
                            Scan parquet default.part [p_partkey,p_type]
