VeloxColumnarToRow
  TakeOrderedAndProjectExecTransformer [customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address]
    WholeStageCodegenTransformer (37)
      ProjectExecTransformer [customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address]
        ShuffledHashJoinExecTransformer [customer_id,customer_id,year_total,year_total,year_total,year_total]
          ProjectExecTransformer [customer_id,customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address,year_total,year_total,year_total]
            ShuffledHashJoinExecTransformer [customer_id,customer_id]
              ProjectExecTransformer [customer_id,customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address,year_total,year_total]
                ShuffledHashJoinExecTransformer [customer_id,customer_id,year_total,year_total,year_total,year_total]
                  ProjectExecTransformer [customer_id,year_total,customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address,year_total,year_total]
                    ShuffledHashJoinExecTransformer [customer_id,customer_id]
                      ShuffledHashJoinExecTransformer [customer_id,customer_id]
                        InputIteratorTransformer
                          InputAdapter
                            ColumnarExchange [customer_id,year_total] #1
                              VeloxResizeBatches
                                WholeStageCodegenTransformer (6)
                                  ProjectExecTransformer [customer_id,year_total]
                                    FilterExecTransformer [year_total]
                                      ProjectExecTransformer [c_customer_id,sum(((((ss_ext_list_price - ss_ext_wholesale_cost) - ss_ext_discount_amt) + ss_ext_sales_price) / 2))]
                                        RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((ss_ext_list_price - ss_ext_wholesale_cost) - ss_ext_discount_amt) + ss_ext_sales_price) / 2)),sum,isEmpty]
                                          InputIteratorTransformer
                                            InputAdapter
                                              ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #2
                                                VeloxResizeBatches
                                                  WholeStageCodegenTransformer (5)
                                                    ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                                      FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                                        ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ss_ext_list_price,ss_ext_wholesale_cost,ss_ext_discount_amt,ss_ext_sales_price]
                                                          ShuffledHashJoinExecTransformer [ss_customer_sk,c_customer_sk]
                                                            InputIteratorTransformer
                                                              InputAdapter
                                                                ColumnarExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,d_year] #3
                                                                  VeloxResizeBatches
                                                                    WholeStageCodegenTransformer (3)
                                                                      ProjectExecTransformer [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,d_year]
                                                                        BroadcastHashJoinExecTransformer [ss_sold_date_sk,d_date_sk]
                                                                          FilterExecTransformer [ss_customer_sk]
                                                                            FileSourceScanExecTransformer parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,ss_sold_date_sk]
                                                                              ColumnarSubqueryBroadcast [d_date_sk] #1
                                                                                ColumnarBroadcastExchange #4
                                                                                  WholeStageCodegenTransformer (1)
                                                                                    FilterExecTransformer [d_year,d_date_sk]
                                                                                      FileSourceScanExecTransformer parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                                                                          InputIteratorTransformer
                                                                            InputAdapter
                                                                              ReusedExchange [d_date_sk,d_year] #4
                                                            InputIteratorTransformer
                                                              InputAdapter
                                                                ColumnarExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
                                                                  VeloxResizeBatches
                                                                    WholeStageCodegenTransformer (4)
                                                                      ProjectExecTransformer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
                                                                        FilterExecTransformer [c_customer_sk,c_customer_id]
                                                                          FileSourceScanExecTransformer parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
                        InputIteratorTransformer
                          InputAdapter
                            ColumnarExchange [customer_id,customer_first_name,customer_last_name,customer_preferred_cust_flag,customer_birth_country,customer_login,customer_email_address,year_total] #6
                              VeloxResizeBatches
                                WholeStageCodegenTransformer (12)
                                  ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum(((((ss_ext_list_price - ss_ext_wholesale_cost) - ss_ext_discount_amt) + ss_ext_sales_price) / 2))]
                                    RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((ss_ext_list_price - ss_ext_wholesale_cost) - ss_ext_discount_amt) + ss_ext_sales_price) / 2)),sum,isEmpty]
                                      InputIteratorTransformer
                                        InputAdapter
                                          ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #7
                                            VeloxResizeBatches
                                              WholeStageCodegenTransformer (11)
                                                ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                                  FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                                    ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ss_ext_list_price,ss_ext_wholesale_cost,ss_ext_discount_amt,ss_ext_sales_price]
                                                      ShuffledHashJoinExecTransformer [ss_customer_sk,c_customer_sk]
                                                        InputIteratorTransformer
                                                          InputAdapter
                                                            ColumnarExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,d_year] #8
                                                              VeloxResizeBatches
                                                                WholeStageCodegenTransformer (9)
                                                                  ProjectExecTransformer [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,d_year]
                                                                    BroadcastHashJoinExecTransformer [ss_sold_date_sk,d_date_sk]
                                                                      FilterExecTransformer [ss_customer_sk]
                                                                        FileSourceScanExecTransformer parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_sales_price,ss_ext_wholesale_cost,ss_ext_list_price,ss_sold_date_sk]
                                                                          ColumnarSubqueryBroadcast [d_date_sk] #2
                                                                            ColumnarBroadcastExchange #9
                                                                              WholeStageCodegenTransformer (7)
                                                                                FilterExecTransformer [d_year,d_date_sk]
                                                                                  FileSourceScanExecTransformer parquet spark_catalog.default.date_dim [d_date_sk,d_year]
                                                                      InputIteratorTransformer
                                                                        InputAdapter
                                                                          ReusedExchange [d_date_sk,d_year] #9
                                                        InputIteratorTransformer
                                                          InputAdapter
                                                            ReusedExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
                      InputIteratorTransformer
                        InputAdapter
                          ColumnarExchange [customer_id,year_total] #10
                            VeloxResizeBatches
                              WholeStageCodegenTransformer (18)
                                ProjectExecTransformer [customer_id,year_total]
                                  FilterExecTransformer [year_total]
                                    ProjectExecTransformer [c_customer_id,sum(((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2))]
                                      RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2)),sum,isEmpty]
                                        InputIteratorTransformer
                                          InputAdapter
                                            ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #11
                                              VeloxResizeBatches
                                                WholeStageCodegenTransformer (17)
                                                  ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                                    FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                                      ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,cs_ext_list_price,cs_ext_wholesale_cost,cs_ext_discount_amt,cs_ext_sales_price]
                                                        ShuffledHashJoinExecTransformer [cs_bill_customer_sk,c_customer_sk]
                                                          InputIteratorTransformer
                                                            InputAdapter
                                                              ColumnarExchange [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,d_year] #12
                                                                VeloxResizeBatches
                                                                  WholeStageCodegenTransformer (15)
                                                                    ProjectExecTransformer [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,d_year]
                                                                      BroadcastHashJoinExecTransformer [cs_sold_date_sk,d_date_sk]
                                                                        FilterExecTransformer [cs_bill_customer_sk]
                                                                          FileSourceScanExecTransformer parquet spark_catalog.default.catalog_sales [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,cs_sold_date_sk]
                                                                            ReusedSubquery [d_date_sk] #1
                                                                        InputIteratorTransformer
                                                                          InputAdapter
                                                                            ReusedExchange [d_date_sk,d_year] #4
                                                          InputIteratorTransformer
                                                            InputAdapter
                                                              ReusedExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
                  InputIteratorTransformer
                    InputAdapter
                      ColumnarExchange [customer_id,year_total] #13
                        VeloxResizeBatches
                          WholeStageCodegenTransformer (24)
                            ProjectExecTransformer [c_customer_id,sum(((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2))]
                              RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2)),sum,isEmpty]
                                InputIteratorTransformer
                                  InputAdapter
                                    ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #14
                                      VeloxResizeBatches
                                        WholeStageCodegenTransformer (23)
                                          ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                            FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                              ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,cs_ext_list_price,cs_ext_wholesale_cost,cs_ext_discount_amt,cs_ext_sales_price]
                                                ShuffledHashJoinExecTransformer [cs_bill_customer_sk,c_customer_sk]
                                                  InputIteratorTransformer
                                                    InputAdapter
                                                      ColumnarExchange [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,d_year] #15
                                                        VeloxResizeBatches
                                                          WholeStageCodegenTransformer (21)
                                                            ProjectExecTransformer [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,d_year]
                                                              BroadcastHashJoinExecTransformer [cs_sold_date_sk,d_date_sk]
                                                                FilterExecTransformer [cs_bill_customer_sk]
                                                                  FileSourceScanExecTransformer parquet spark_catalog.default.catalog_sales [cs_bill_customer_sk,cs_ext_discount_amt,cs_ext_sales_price,cs_ext_wholesale_cost,cs_ext_list_price,cs_sold_date_sk]
                                                                    ReusedSubquery [d_date_sk] #2
                                                                InputIteratorTransformer
                                                                  InputAdapter
                                                                    ReusedExchange [d_date_sk,d_year] #9
                                                  InputIteratorTransformer
                                                    InputAdapter
                                                      ReusedExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
              InputIteratorTransformer
                InputAdapter
                  ColumnarExchange [customer_id,year_total] #16
                    VeloxResizeBatches
                      WholeStageCodegenTransformer (30)
                        ProjectExecTransformer [customer_id,year_total]
                          FilterExecTransformer [year_total]
                            ProjectExecTransformer [c_customer_id,sum(((((ws_ext_list_price - ws_ext_wholesale_cost) - ws_ext_discount_amt) + ws_ext_sales_price) / 2))]
                              RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((ws_ext_list_price - ws_ext_wholesale_cost) - ws_ext_discount_amt) + ws_ext_sales_price) / 2)),sum,isEmpty]
                                InputIteratorTransformer
                                  InputAdapter
                                    ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #17
                                      VeloxResizeBatches
                                        WholeStageCodegenTransformer (29)
                                          ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                            FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                              ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ws_ext_list_price,ws_ext_wholesale_cost,ws_ext_discount_amt,ws_ext_sales_price]
                                                ShuffledHashJoinExecTransformer [ws_bill_customer_sk,c_customer_sk]
                                                  InputIteratorTransformer
                                                    InputAdapter
                                                      ColumnarExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,d_year] #18
                                                        VeloxResizeBatches
                                                          WholeStageCodegenTransformer (27)
                                                            ProjectExecTransformer [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,d_year]
                                                              BroadcastHashJoinExecTransformer [ws_sold_date_sk,d_date_sk]
                                                                FilterExecTransformer [ws_bill_customer_sk]
                                                                  FileSourceScanExecTransformer parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,ws_sold_date_sk]
                                                                    ReusedSubquery [d_date_sk] #1
                                                                InputIteratorTransformer
                                                                  InputAdapter
                                                                    ReusedExchange [d_date_sk,d_year] #4
                                                  InputIteratorTransformer
                                                    InputAdapter
                                                      ReusedExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
          InputIteratorTransformer
            InputAdapter
              ColumnarExchange [customer_id,year_total] #19
                VeloxResizeBatches
                  WholeStageCodegenTransformer (36)
                    ProjectExecTransformer [c_customer_id,sum(((((ws_ext_list_price - ws_ext_wholesale_cost) - ws_ext_discount_amt) + ws_ext_sales_price) / 2))]
                      RegularHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] [sum(((((ws_ext_list_price - ws_ext_wholesale_cost) - ws_ext_discount_amt) + ws_ext_sales_price) / 2)),sum,isEmpty]
                        InputIteratorTransformer
                          InputAdapter
                            ColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty] #20
                              VeloxResizeBatches
                                WholeStageCodegenTransformer (35)
                                  ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum,isEmpty]
                                    FlushableHashAggregateExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,_pre_x] [sum,isEmpty,sum,isEmpty,sum,isEmpty]
                                      ProjectExecTransformer [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ws_ext_list_price,ws_ext_wholesale_cost,ws_ext_discount_amt,ws_ext_sales_price]
                                        ShuffledHashJoinExecTransformer [ws_bill_customer_sk,c_customer_sk]
                                          InputIteratorTransformer
                                            InputAdapter
                                              ColumnarExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,d_year] #21
                                                VeloxResizeBatches
                                                  WholeStageCodegenTransformer (33)
                                                    ProjectExecTransformer [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,d_year]
                                                      BroadcastHashJoinExecTransformer [ws_sold_date_sk,d_date_sk]
                                                        FilterExecTransformer [ws_bill_customer_sk]
                                                          FileSourceScanExecTransformer parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_sales_price,ws_ext_wholesale_cost,ws_ext_list_price,ws_sold_date_sk]
                                                            ReusedSubquery [d_date_sk] #2
                                                        InputIteratorTransformer
                                                          InputAdapter
                                                            ReusedExchange [d_date_sk,d_year] #9
                                          InputIteratorTransformer
                                            InputAdapter
                                              ReusedExchange [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
