== Physical Plan ==
VeloxColumnarToRow (71)
+- ^ FilterExecTransformer (69)
   +- ^ RegularHashAggregateExecTransformer (68)
      +- ^ InputIteratorTransformer (67)
         +- ColumnarExchange (65)
            +- VeloxResizeBatches (64)
               +- ^ ProjectExecTransformer (62)
                  +- ^ FlushableHashAggregateExecTransformer (61)
                     +- ^ ProjectExecTransformer (60)
                        +- ^ RegularHashAggregateExecTransformer (59)
                           +- ^ InputIteratorTransformer (58)
                              +- ColumnarExchange (56)
                                 +- VeloxResizeBatches (55)
                                    +- ^ ProjectExecTransformer (53)
                                       +- ^ FlushableHashAggregateExecTransformer (52)
                                          +- ^ ProjectExecTransformer (51)
                                             +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (50)
                                                :- ^ ProjectExecTransformer (43)
                                                :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (42)
                                                :     :- ^ ProjectExecTransformer (35)
                                                :     :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (34)
                                                :     :     :- ^ ProjectExecTransformer (27)
                                                :     :     :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (26)
                                                :     :     :     :- ^ ProjectExecTransformer (18)
                                                :     :     :     :  +- ^ ShuffledHashJoinExecTransformer Inner BuildRight (17)
                                                :     :     :     :     :- ^ InputIteratorTransformer (8)
                                                :     :     :     :     :  +- ColumnarExchange (6)
                                                :     :     :     :     :     +- VeloxResizeBatches (5)
                                                :     :     :     :     :        +- ^ ProjectExecTransformer (3)
                                                :     :     :     :     :           +- ^ FilterExecTransformer (2)
                                                :     :     :     :     :              +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.store_sales (1)
                                                :     :     :     :     +- ^ InputIteratorTransformer (16)
                                                :     :     :     :        +- ColumnarExchange (14)
                                                :     :     :     :           +- VeloxResizeBatches (13)
                                                :     :     :     :              +- ^ ProjectExecTransformer (11)
                                                :     :     :     :                 +- ^ FilterExecTransformer (10)
                                                :     :     :     :                    +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.store_returns (9)
                                                :     :     :     +- ^ InputIteratorTransformer (25)
                                                :     :     :        +- ColumnarBroadcastExchange (23)
                                                :     :     :           +- ^ ProjectExecTransformer (21)
                                                :     :     :              +- ^ FilterExecTransformer (20)
                                                :     :     :                 +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.store (19)
                                                :     :     +- ^ InputIteratorTransformer (33)
                                                :     :        +- ColumnarBroadcastExchange (31)
                                                :     :           +- ^ FilterExecTransformer (29)
                                                :     :              +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.item (28)
                                                :     +- ^ InputIteratorTransformer (41)
                                                :        +- ColumnarBroadcastExchange (39)
                                                :           +- ^ FilterExecTransformer (37)
                                                :              +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.customer (36)
                                                +- ^ InputIteratorTransformer (49)
                                                   +- ColumnarBroadcastExchange (47)
                                                      +- ^ FilterExecTransformer (45)
                                                         +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.customer_address (44)


(1) FileSourceScanExecTransformer parquet spark_catalog.default.store_sales
Output [6]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5, ss_sold_date_sk#6]
Batched: true
Location: CatalogFileIndex [{warehouse_dir}/store_sales]
PushedFilters: [IsNotNull(ss_ticket_number), IsNotNull(ss_item_sk), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_item_sk:int,ss_customer_sk:int,ss_store_sk:int,ss_ticket_number:int,ss_net_paid:decimal(7,2)>

(2) FilterExecTransformer
Input [6]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5, ss_sold_date_sk#6]
Arguments: (((isnotnull(ss_ticket_number#4) AND isnotnull(ss_item_sk#1)) AND isnotnull(ss_store_sk#3)) AND isnotnull(ss_customer_sk#2))

(3) ProjectExecTransformer
Output [6]: [hash(ss_ticket_number#4, ss_item_sk#1, 42) AS hash_partition_key#7, ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]
Input [6]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5, ss_sold_date_sk#6]

(4) WholeStageCodegenTransformer (9)
Input [6]: [hash_partition_key#7, ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]
Arguments: false

(5) VeloxResizeBatches
Input [6]: [hash_partition_key#7, ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]
Arguments: 1024, 2147483647, 10485760

(6) ColumnarExchange
Input [6]: [hash_partition_key#7, ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]
Arguments: hashpartitioning(ss_ticket_number#4, ss_item_sk#1, 1), ENSURE_REQUIREMENTS, [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5], [plan_id=1], [shuffle_writer_type=hash]

(7) InputAdapter
Input [5]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]

(8) InputIteratorTransformer
Input [5]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5]

(9) FileSourceScanExecTransformer parquet spark_catalog.default.store_returns
Output [3]: [sr_item_sk#8, sr_ticket_number#9, sr_returned_date_sk#10]
Batched: true
Location: CatalogFileIndex [{warehouse_dir}/store_returns]
PushedFilters: [IsNotNull(sr_ticket_number), IsNotNull(sr_item_sk)]
ReadSchema: struct<sr_item_sk:int,sr_ticket_number:int>

(10) FilterExecTransformer
Input [3]: [sr_item_sk#8, sr_ticket_number#9, sr_returned_date_sk#10]
Arguments: (isnotnull(sr_ticket_number#9) AND isnotnull(sr_item_sk#8))

(11) ProjectExecTransformer
Output [3]: [hash(sr_ticket_number#9, sr_item_sk#8, 42) AS hash_partition_key#11, sr_item_sk#8, sr_ticket_number#9]
Input [3]: [sr_item_sk#8, sr_ticket_number#9, sr_returned_date_sk#10]

(12) WholeStageCodegenTransformer (10)
Input [3]: [hash_partition_key#11, sr_item_sk#8, sr_ticket_number#9]
Arguments: false

(13) VeloxResizeBatches
Input [3]: [hash_partition_key#11, sr_item_sk#8, sr_ticket_number#9]
Arguments: 1024, 2147483647, 10485760

(14) ColumnarExchange
Input [3]: [hash_partition_key#11, sr_item_sk#8, sr_ticket_number#9]
Arguments: hashpartitioning(sr_ticket_number#9, sr_item_sk#8, 1), ENSURE_REQUIREMENTS, [sr_item_sk#8, sr_ticket_number#9], [plan_id=2], [shuffle_writer_type=hash]

(15) InputAdapter
Input [2]: [sr_item_sk#8, sr_ticket_number#9]

(16) InputIteratorTransformer
Input [2]: [sr_item_sk#8, sr_ticket_number#9]

(17) ShuffledHashJoinExecTransformer
Left keys [2]: [ss_ticket_number#4, ss_item_sk#1]
Right keys [2]: [sr_ticket_number#9, sr_item_sk#8]
Join type: Inner
Join condition: None

(18) ProjectExecTransformer
Output [4]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_net_paid#5]
Input [7]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5, sr_item_sk#8, sr_ticket_number#9]

(19) FileSourceScanExecTransformer parquet spark_catalog.default.store
Output [5]: [s_store_sk#12, s_store_name#13, s_market_id#14, s_state#15, s_zip#16]
Batched: true
Location: InMemoryFileIndex [{warehouse_dir}/store]
PushedFilters: [IsNotNull(s_market_id), EqualTo(s_market_id,8), IsNotNull(s_store_sk), IsNotNull(s_zip)]
ReadSchema: struct<s_store_sk:int,s_store_name:string,s_market_id:int,s_state:string,s_zip:string>

(20) FilterExecTransformer
Input [5]: [s_store_sk#12, s_store_name#13, s_market_id#14, s_state#15, s_zip#16]
Arguments: (((isnotnull(s_market_id#14) AND (s_market_id#14 = 8)) AND isnotnull(s_store_sk#12)) AND isnotnull(s_zip#16))

(21) ProjectExecTransformer
Output [4]: [s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]
Input [5]: [s_store_sk#12, s_store_name#13, s_market_id#14, s_state#15, s_zip#16]

(22) WholeStageCodegenTransformer (11)
Input [4]: [s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]
Arguments: false

(23) ColumnarBroadcastExchange
Input [4]: [s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]

(24) InputAdapter
Input [4]: [s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]

(25) InputIteratorTransformer
Input [4]: [s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]

(26) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_store_sk#3]
Right keys [1]: [s_store_sk#12]
Join type: Inner
Join condition: None

(27) ProjectExecTransformer
Output [6]: [ss_item_sk#1, ss_customer_sk#2, ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16]
Input [8]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_net_paid#5, s_store_sk#12, s_store_name#13, s_state#15, s_zip#16]

(28) FileSourceScanExecTransformer parquet spark_catalog.default.item
Output [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]
Batched: true
Location: InMemoryFileIndex [{warehouse_dir}/item]
PushedFilters: [IsNotNull(i_color), EqualTo(i_color,pale                ), IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_current_price:decimal(7,2),i_size:string,i_color:string,i_units:string,i_manager_id:int>

(29) FilterExecTransformer
Input [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]
Arguments: ((isnotnull(i_color#20) AND (i_color#20 = pale                )) AND isnotnull(i_item_sk#17))

(30) WholeStageCodegenTransformer (12)
Input [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]
Arguments: false

(31) ColumnarBroadcastExchange
Input [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=4]

(32) InputAdapter
Input [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]

(33) InputIteratorTransformer
Input [6]: [i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]

(34) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_item_sk#1]
Right keys [1]: [i_item_sk#17]
Join type: Inner
Join condition: None

(35) ProjectExecTransformer
Output [10]: [ss_customer_sk#2, ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]
Input [12]: [ss_item_sk#1, ss_customer_sk#2, ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16, i_item_sk#17, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22]

(36) FileSourceScanExecTransformer parquet spark_catalog.default.customer
Output [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]
Batched: true
Location: InMemoryFileIndex [{warehouse_dir}/customer]
PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_birth_country)]
ReadSchema: struct<c_customer_sk:int,c_first_name:string,c_last_name:string,c_birth_country:string>

(37) FilterExecTransformer
Input [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]
Arguments: (isnotnull(c_customer_sk#23) AND isnotnull(c_birth_country#26))

(38) WholeStageCodegenTransformer (13)
Input [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]
Arguments: false

(39) ColumnarBroadcastExchange
Input [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=5]

(40) InputAdapter
Input [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]

(41) InputIteratorTransformer
Input [4]: [c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]

(42) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_customer_sk#2]
Right keys [1]: [c_customer_sk#23]
Join type: Inner
Join condition: None

(43) ProjectExecTransformer
Output [12]: [ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22, c_first_name#24, c_last_name#25, c_birth_country#26]
Input [14]: [ss_customer_sk#2, ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22, c_customer_sk#23, c_first_name#24, c_last_name#25, c_birth_country#26]

(44) FileSourceScanExecTransformer parquet spark_catalog.default.customer_address
Output [3]: [ca_state#27, ca_zip#28, ca_country#29]
Batched: true
Location: InMemoryFileIndex [{warehouse_dir}/customer_address]
PushedFilters: [IsNotNull(ca_country), IsNotNull(ca_zip)]
ReadSchema: struct<ca_state:string,ca_zip:string,ca_country:string>

(45) FilterExecTransformer
Input [3]: [ca_state#27, ca_zip#28, ca_country#29]
Arguments: (isnotnull(ca_country#29) AND isnotnull(ca_zip#28))

(46) WholeStageCodegenTransformer (14)
Input [3]: [ca_state#27, ca_zip#28, ca_country#29]
Arguments: false

(47) ColumnarBroadcastExchange
Input [3]: [ca_state#27, ca_zip#28, ca_country#29]
Arguments: HashedRelationBroadcastMode(List(upper(input[2, string, false]), input[1, string, false]),false), [plan_id=6]

(48) InputAdapter
Input [3]: [ca_state#27, ca_zip#28, ca_country#29]

(49) InputIteratorTransformer
Input [3]: [ca_state#27, ca_zip#28, ca_country#29]

(50) BroadcastHashJoinExecTransformer
Left keys [2]: [c_birth_country#26, s_zip#16]
Right keys [2]: [upper(ca_country#29), ca_zip#28]
Join type: Inner
Join condition: None

(51) ProjectExecTransformer
Output [11]: [s_store_name#13, s_state#15, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22, c_first_name#24, c_last_name#25, ca_state#27, UnscaledValue(ss_net_paid#5) AS _pre_1#30]
Input [15]: [ss_net_paid#5, s_store_name#13, s_state#15, s_zip#16, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22, c_first_name#24, c_last_name#25, c_birth_country#26, ca_state#27, ca_zip#28, ca_country#29]

(52) FlushableHashAggregateExecTransformer
Input [11]: [s_store_name#13, s_state#15, i_current_price#18, i_size#19, i_color#20, i_units#21, i_manager_id#22, c_first_name#24, c_last_name#25, ca_state#27, _pre_1#30]
Keys [10]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19]
Functions [1]: [partial_sum(_pre_1#30)]
Aggregate Attributes [1]: [sum#31]
Results [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]

(53) ProjectExecTransformer
Output [12]: [hash(c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, 42) AS hash_partition_key#33, c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]
Input [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]

(54) WholeStageCodegenTransformer (15)
Input [12]: [hash_partition_key#33, c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]
Arguments: false

(55) VeloxResizeBatches
Input [12]: [hash_partition_key#33, c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]
Arguments: 1024, 2147483647, 10485760

(56) ColumnarExchange
Input [12]: [hash_partition_key#33, c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]
Arguments: hashpartitioning(c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, 1), ENSURE_REQUIREMENTS, [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32], [plan_id=7], [shuffle_writer_type=hash]

(57) InputAdapter
Input [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]

(58) InputIteratorTransformer
Input [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]

(59) RegularHashAggregateExecTransformer
Input [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum#32]
Keys [10]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19]
Functions [1]: [sum(UnscaledValue(ss_net_paid#5))]
Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#5))#34]
Results [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum(UnscaledValue(ss_net_paid#5))#34]

(60) ProjectExecTransformer
Output [4]: [c_last_name#25, c_first_name#24, s_store_name#13, MakeDecimal(sum(UnscaledValue(ss_net_paid#5))#34,17,2) AS netpaid#35]
Input [11]: [c_last_name#25, c_first_name#24, s_store_name#13, ca_state#27, s_state#15, i_color#20, i_current_price#18, i_manager_id#22, i_units#21, i_size#19, sum(UnscaledValue(ss_net_paid#5))#34]

(61) FlushableHashAggregateExecTransformer
Input [4]: [c_last_name#25, c_first_name#24, s_store_name#13, netpaid#35]
Keys [3]: [c_last_name#25, c_first_name#24, s_store_name#13]
Functions [1]: [partial_sum(netpaid#35)]
Aggregate Attributes [2]: [sum#36, isEmpty#37]
Results [5]: [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]

(62) ProjectExecTransformer
Output [6]: [hash(c_last_name#25, c_first_name#24, s_store_name#13, 42) AS hash_partition_key#40, c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]
Input [5]: [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]

(63) WholeStageCodegenTransformer (16)
Input [6]: [hash_partition_key#40, c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]
Arguments: false

(64) VeloxResizeBatches
Input [6]: [hash_partition_key#40, c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]
Arguments: 1024, 2147483647, 10485760

(65) ColumnarExchange
Input [6]: [hash_partition_key#40, c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]
Arguments: hashpartitioning(c_last_name#25, c_first_name#24, s_store_name#13, 1), ENSURE_REQUIREMENTS, [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39], [plan_id=8], [shuffle_writer_type=hash]

(66) InputAdapter
Input [5]: [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]

(67) InputIteratorTransformer
Input [5]: [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]

(68) RegularHashAggregateExecTransformer
Input [5]: [c_last_name#25, c_first_name#24, s_store_name#13, sum#38, isEmpty#39]
Keys [3]: [c_last_name#25, c_first_name#24, s_store_name#13]
Functions [1]: [sum(netpaid#35)]
Aggregate Attributes [1]: [sum(netpaid#35)#41]
Results [4]: [c_last_name#25, c_first_name#24, s_store_name#13, sum(netpaid#35)#41 AS paid#42]

(69) FilterExecTransformer
Input [4]: [c_last_name#25, c_first_name#24, s_store_name#13, paid#42]
Arguments: (isnotnull(paid#42) AND (cast(paid#42 as decimal(33,8)) > cast(Subquery scalar-subquery#43, [id=#9] as decimal(33,8))))

(70) WholeStageCodegenTransformer (17)
Input [4]: [c_last_name#25, c_first_name#24, s_store_name#13, paid#42]
Arguments: false

(71) VeloxColumnarToRow
Input [4]: [c_last_name#25, c_first_name#24, s_store_name#13, paid#42]

===== Subqueries =====

Subquery:1 Hosting operator id = 69 Hosting Expression = Subquery scalar-subquery#43, [id=#9]
VeloxColumnarToRow (115)
+- ^ ProjectExecTransformer (113)
   +- ^ RegularHashAggregateExecTransformer (112)
      +- ^ ProjectExecTransformer (111)
         +- ^ RegularHashAggregateExecTransformer (110)
            +- ^ InputIteratorTransformer (109)
               +- ColumnarExchange (107)
                  +- VeloxResizeBatches (106)
                     +- ^ ProjectExecTransformer (104)
                        +- ^ FlushableHashAggregateExecTransformer (103)
                           +- ^ ProjectExecTransformer (102)
                              +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (101)
                                 :- ^ ProjectExecTransformer (97)
                                 :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (96)
                                 :     :- ^ ProjectExecTransformer (92)
                                 :     :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (91)
                                 :     :     :- ^ ProjectExecTransformer (84)
                                 :     :     :  +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (83)
                                 :     :     :     :- ^ ProjectExecTransformer (79)
                                 :     :     :     :  +- ^ ShuffledHashJoinExecTransformer Inner BuildRight (78)
                                 :     :     :     :     :- ^ InputIteratorTransformer (74)
                                 :     :     :     :     :  +- ReusedExchange (72)
                                 :     :     :     :     +- ^ InputIteratorTransformer (77)
                                 :     :     :     :        +- ReusedExchange (75)
                                 :     :     :     +- ^ InputIteratorTransformer (82)
                                 :     :     :        +- ReusedExchange (80)
                                 :     :     +- ^ InputIteratorTransformer (90)
                                 :     :        +- ColumnarBroadcastExchange (88)
                                 :     :           +- ^ FilterExecTransformer (86)
                                 :     :              +- ^ FileSourceScanExecTransformer parquet spark_catalog.default.item (85)
                                 :     +- ^ InputIteratorTransformer (95)
                                 :        +- ReusedExchange (93)
                                 +- ^ InputIteratorTransformer (100)
                                    +- ReusedExchange (98)


(72) ReusedExchange [Reuses operator id: 6]
Output [5]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_ticket_number#47, ss_net_paid#48]

(73) InputAdapter
Input [5]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_ticket_number#47, ss_net_paid#48]

(74) InputIteratorTransformer
Input [5]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_ticket_number#47, ss_net_paid#48]

(75) ReusedExchange [Reuses operator id: 14]
Output [2]: [sr_item_sk#49, sr_ticket_number#50]

(76) InputAdapter
Input [2]: [sr_item_sk#49, sr_ticket_number#50]

(77) InputIteratorTransformer
Input [2]: [sr_item_sk#49, sr_ticket_number#50]

(78) ShuffledHashJoinExecTransformer
Left keys [2]: [ss_ticket_number#47, ss_item_sk#44]
Right keys [2]: [sr_ticket_number#50, sr_item_sk#49]
Join type: Inner
Join condition: None

(79) ProjectExecTransformer
Output [4]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_net_paid#48]
Input [7]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_ticket_number#47, ss_net_paid#48, sr_item_sk#49, sr_ticket_number#50]

(80) ReusedExchange [Reuses operator id: 23]
Output [4]: [s_store_sk#51, s_store_name#52, s_state#53, s_zip#54]

(81) InputAdapter
Input [4]: [s_store_sk#51, s_store_name#52, s_state#53, s_zip#54]

(82) InputIteratorTransformer
Input [4]: [s_store_sk#51, s_store_name#52, s_state#53, s_zip#54]

(83) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_store_sk#46]
Right keys [1]: [s_store_sk#51]
Join type: Inner
Join condition: None

(84) ProjectExecTransformer
Output [6]: [ss_item_sk#44, ss_customer_sk#45, ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54]
Input [8]: [ss_item_sk#44, ss_customer_sk#45, ss_store_sk#46, ss_net_paid#48, s_store_sk#51, s_store_name#52, s_state#53, s_zip#54]

(85) FileSourceScanExecTransformer parquet spark_catalog.default.item
Output [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]
Batched: true
Location: InMemoryFileIndex [{warehouse_dir}/item]
PushedFilters: [IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_current_price:decimal(7,2),i_size:string,i_color:string,i_units:string,i_manager_id:int>

(86) FilterExecTransformer
Input [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]
Arguments: isnotnull(i_item_sk#55)

(87) WholeStageCodegenTransformer (4)
Input [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]
Arguments: false

(88) ColumnarBroadcastExchange
Input [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=10]

(89) InputAdapter
Input [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]

(90) InputIteratorTransformer
Input [6]: [i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]

(91) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_item_sk#44]
Right keys [1]: [i_item_sk#55]
Join type: Inner
Join condition: None

(92) ProjectExecTransformer
Output [10]: [ss_customer_sk#45, ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]
Input [12]: [ss_item_sk#44, ss_customer_sk#45, ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54, i_item_sk#55, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60]

(93) ReusedExchange [Reuses operator id: 39]
Output [4]: [c_customer_sk#61, c_first_name#62, c_last_name#63, c_birth_country#64]

(94) InputAdapter
Input [4]: [c_customer_sk#61, c_first_name#62, c_last_name#63, c_birth_country#64]

(95) InputIteratorTransformer
Input [4]: [c_customer_sk#61, c_first_name#62, c_last_name#63, c_birth_country#64]

(96) BroadcastHashJoinExecTransformer
Left keys [1]: [ss_customer_sk#45]
Right keys [1]: [c_customer_sk#61]
Join type: Inner
Join condition: None

(97) ProjectExecTransformer
Output [12]: [ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60, c_first_name#62, c_last_name#63, c_birth_country#64]
Input [14]: [ss_customer_sk#45, ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60, c_customer_sk#61, c_first_name#62, c_last_name#63, c_birth_country#64]

(98) ReusedExchange [Reuses operator id: 47]
Output [3]: [ca_state#65, ca_zip#66, ca_country#67]

(99) InputAdapter
Input [3]: [ca_state#65, ca_zip#66, ca_country#67]

(100) InputIteratorTransformer
Input [3]: [ca_state#65, ca_zip#66, ca_country#67]

(101) BroadcastHashJoinExecTransformer
Left keys [2]: [c_birth_country#64, s_zip#54]
Right keys [2]: [upper(ca_country#67), ca_zip#66]
Join type: Inner
Join condition: None

(102) ProjectExecTransformer
Output [11]: [s_store_name#52, s_state#53, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60, c_first_name#62, c_last_name#63, ca_state#65, UnscaledValue(ss_net_paid#48) AS _pre_2#68]
Input [15]: [ss_net_paid#48, s_store_name#52, s_state#53, s_zip#54, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60, c_first_name#62, c_last_name#63, c_birth_country#64, ca_state#65, ca_zip#66, ca_country#67]

(103) FlushableHashAggregateExecTransformer
Input [11]: [s_store_name#52, s_state#53, i_current_price#56, i_size#57, i_color#58, i_units#59, i_manager_id#60, c_first_name#62, c_last_name#63, ca_state#65, _pre_2#68]
Keys [10]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57]
Functions [1]: [partial_sum(_pre_2#68)]
Aggregate Attributes [1]: [sum#69]
Results [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]

(104) ProjectExecTransformer
Output [12]: [hash(c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, 42) AS hash_partition_key#71, c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]
Input [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]

(105) WholeStageCodegenTransformer (7)
Input [12]: [hash_partition_key#71, c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]
Arguments: false

(106) VeloxResizeBatches
Input [12]: [hash_partition_key#71, c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]
Arguments: 1024, 2147483647, 10485760

(107) ColumnarExchange
Input [12]: [hash_partition_key#71, c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]
Arguments: hashpartitioning(c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, 1), ENSURE_REQUIREMENTS, [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70], [plan_id=11], [shuffle_writer_type=hash]

(108) InputAdapter
Input [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]

(109) InputIteratorTransformer
Input [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]

(110) RegularHashAggregateExecTransformer
Input [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum#70]
Keys [10]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57]
Functions [1]: [sum(UnscaledValue(ss_net_paid#48))]
Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#48))#34]
Results [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum(UnscaledValue(ss_net_paid#48))#34]

(111) ProjectExecTransformer
Output [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#48))#34,17,2) AS netpaid#72]
Input [11]: [c_last_name#63, c_first_name#62, s_store_name#52, ca_state#65, s_state#53, i_color#58, i_current_price#56, i_manager_id#60, i_units#59, i_size#57, sum(UnscaledValue(ss_net_paid#48))#34]

(112) RegularHashAggregateExecTransformer
Input [1]: [netpaid#72]
Keys: []
Functions [1]: [avg(netpaid#72)]
Aggregate Attributes [1]: [avg(netpaid#72)#73]
Results [1]: [avg(netpaid#72)#73]

(113) ProjectExecTransformer
Output [1]: [(0.05 * avg(netpaid#72)#73) AS (0.05 * avg(netpaid))#74]
Input [1]: [avg(netpaid#72)#73]

(114) WholeStageCodegenTransformer (8)
Input [1]: [(0.05 * avg(netpaid))#74]
Arguments: false

(115) VeloxColumnarToRow
Input [1]: [(0.05 * avg(netpaid))#74]


