== Physical Plan ==
* CometColumnarToRow (143)
+- CometTakeOrderedAndProject (142)
   +- CometUnion (141)
      :- CometHashAggregate (38)
      :  +- CometExchange (37)
      :     +- CometHashAggregate (36)
      :        +- CometProject (35)
      :           +- CometBroadcastHashJoin (34)
      :              :- CometProject (30)
      :              :  +- CometBroadcastHashJoin (29)
      :              :     :- CometProject (24)
      :              :     :  +- CometBroadcastHashJoin (23)
      :              :     :     :- CometProject (19)
      :              :     :     :  +- CometBroadcastHashJoin (18)
      :              :     :     :     :- CometProject (14)
      :              :     :     :     :  +- CometBroadcastHashJoin (13)
      :              :     :     :     :     :- CometProject (8)
      :              :     :     :     :     :  +- CometBroadcastHashJoin (7)
      :              :     :     :     :     :     :- CometFilter (2)
      :              :     :     :     :     :     :  +- CometScan parquet spark_catalog.default.catalog_sales (1)
      :              :     :     :     :     :     +- CometBroadcastExchange (6)
      :              :     :     :     :     :        +- CometProject (5)
      :              :     :     :     :     :           +- CometFilter (4)
      :              :     :     :     :     :              +- CometScan parquet spark_catalog.default.customer_demographics (3)
      :              :     :     :     :     +- CometBroadcastExchange (12)
      :              :     :     :     :        +- CometProject (11)
      :              :     :     :     :           +- CometFilter (10)
      :              :     :     :     :              +- CometScan parquet spark_catalog.default.customer (9)
      :              :     :     :     +- CometBroadcastExchange (17)
      :              :     :     :        +- CometFilter (16)
      :              :     :     :           +- CometScan parquet spark_catalog.default.customer_demographics (15)
      :              :     :     +- CometBroadcastExchange (22)
      :              :     :        +- CometFilter (21)
      :              :     :           +- CometScan parquet spark_catalog.default.customer_address (20)
      :              :     +- CometBroadcastExchange (28)
      :              :        +- CometProject (27)
      :              :           +- CometFilter (26)
      :              :              +- CometScan parquet spark_catalog.default.date_dim (25)
      :              +- CometBroadcastExchange (33)
      :                 +- CometFilter (32)
      :                    +- CometScan parquet spark_catalog.default.item (31)
      :- CometHashAggregate (63)
      :  +- CometExchange (62)
      :     +- CometHashAggregate (61)
      :        +- CometProject (60)
      :           +- CometBroadcastHashJoin (59)
      :              :- CometProject (57)
      :              :  +- CometBroadcastHashJoin (56)
      :              :     :- CometProject (54)
      :              :     :  +- CometBroadcastHashJoin (53)
      :              :     :     :- CometProject (49)
      :              :     :     :  +- CometBroadcastHashJoin (48)
      :              :     :     :     :- CometProject (46)
      :              :     :     :     :  +- CometBroadcastHashJoin (45)
      :              :     :     :     :     :- CometProject (43)
      :              :     :     :     :     :  +- CometBroadcastHashJoin (42)
      :              :     :     :     :     :     :- CometFilter (40)
      :              :     :     :     :     :     :  +- CometScan parquet spark_catalog.default.catalog_sales (39)
      :              :     :     :     :     :     +- ReusedExchange (41)
      :              :     :     :     :     +- ReusedExchange (44)
      :              :     :     :     +- ReusedExchange (47)
      :              :     :     +- CometBroadcastExchange (52)
      :              :     :        +- CometFilter (51)
      :              :     :           +- CometScan parquet spark_catalog.default.customer_address (50)
      :              :     +- ReusedExchange (55)
      :              +- ReusedExchange (58)
      :- CometHashAggregate (89)
      :  +- CometExchange (88)
      :     +- CometHashAggregate (87)
      :        +- CometProject (86)
      :           +- CometBroadcastHashJoin (85)
      :              :- CometProject (83)
      :              :  +- CometBroadcastHashJoin (82)
      :              :     :- CometProject (80)
      :              :     :  +- CometBroadcastHashJoin (79)
      :              :     :     :- CometProject (74)
      :              :     :     :  +- CometBroadcastHashJoin (73)
      :              :     :     :     :- CometProject (71)
      :              :     :     :     :  +- CometBroadcastHashJoin (70)
      :              :     :     :     :     :- CometProject (68)
      :              :     :     :     :     :  +- CometBroadcastHashJoin (67)
      :              :     :     :     :     :     :- CometFilter (65)
      :              :     :     :     :     :     :  +- CometScan parquet spark_catalog.default.catalog_sales (64)
      :              :     :     :     :     :     +- ReusedExchange (66)
      :              :     :     :     :     +- ReusedExchange (69)
      :              :     :     :     +- ReusedExchange (72)
      :              :     :     +- CometBroadcastExchange (78)
      :              :     :        +- CometProject (77)
      :              :     :           +- CometFilter (76)
      :              :     :              +- CometScan parquet spark_catalog.default.customer_address (75)
      :              :     +- ReusedExchange (81)
      :              +- ReusedExchange (84)
      :- CometHashAggregate (115)
      :  +- CometExchange (114)
      :     +- CometHashAggregate (113)
      :        +- CometProject (112)
      :           +- CometBroadcastHashJoin (111)
      :              :- CometProject (109)
      :              :  +- CometBroadcastHashJoin (108)
      :              :     :- CometProject (106)
      :              :     :  +- CometBroadcastHashJoin (105)
      :              :     :     :- CometProject (100)
      :              :     :     :  +- CometBroadcastHashJoin (99)
      :              :     :     :     :- CometProject (97)
      :              :     :     :     :  +- CometBroadcastHashJoin (96)
      :              :     :     :     :     :- CometProject (94)
      :              :     :     :     :     :  +- CometBroadcastHashJoin (93)
      :              :     :     :     :     :     :- CometFilter (91)
      :              :     :     :     :     :     :  +- CometScan parquet spark_catalog.default.catalog_sales (90)
      :              :     :     :     :     :     +- ReusedExchange (92)
      :              :     :     :     :     +- ReusedExchange (95)
      :              :     :     :     +- ReusedExchange (98)
      :              :     :     +- CometBroadcastExchange (104)
      :              :     :        +- CometProject (103)
      :              :     :           +- CometFilter (102)
      :              :     :              +- CometScan parquet spark_catalog.default.customer_address (101)
      :              :     +- ReusedExchange (107)
      :              +- ReusedExchange (110)
      +- CometHashAggregate (140)
         +- CometExchange (139)
            +- CometHashAggregate (138)
               +- CometProject (137)
                  +- CometBroadcastHashJoin (136)
                     :- CometProject (132)
                     :  +- CometBroadcastHashJoin (131)
                     :     :- CometProject (129)
                     :     :  +- CometBroadcastHashJoin (128)
                     :     :     :- CometProject (126)
                     :     :     :  +- CometBroadcastHashJoin (125)
                     :     :     :     :- CometProject (123)
                     :     :     :     :  +- CometBroadcastHashJoin (122)
                     :     :     :     :     :- CometProject (120)
                     :     :     :     :     :  +- CometBroadcastHashJoin (119)
                     :     :     :     :     :     :- CometFilter (117)
                     :     :     :     :     :     :  +- CometScan parquet spark_catalog.default.catalog_sales (116)
                     :     :     :     :     :     +- ReusedExchange (118)
                     :     :     :     :     +- ReusedExchange (121)
                     :     :     :     +- ReusedExchange (124)
                     :     :     +- ReusedExchange (127)
                     :     +- ReusedExchange (130)
                     +- CometBroadcastExchange (135)
                        +- CometFilter (134)
                           +- CometScan parquet spark_catalog.default.item (133)


(1) CometScan parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#1, cs_bill_cdemo_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#9), dynamicpruningexpression(cs_sold_date_sk#9 IN dynamicpruning#10)]
PushedFilters: [IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_customer_sk), IsNotNull(cs_item_sk)]
ReadSchema: struct<cs_bill_customer_sk:int,cs_bill_cdemo_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2),cs_sales_price:decimal(7,2),cs_coupon_amt:decimal(7,2),cs_net_profit:decimal(7,2)>

(2) CometFilter
Input [9]: [cs_bill_customer_sk#1, cs_bill_cdemo_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9]
Condition : ((isnotnull(cs_bill_cdemo_sk#2) AND isnotnull(cs_bill_customer_sk#1)) AND isnotnull(cs_item_sk#3))

(3) CometScan parquet spark_catalog.default.customer_demographics
Output [4]: [cd_demo_sk#11, cd_gender#12, cd_education_status#13, cd_dep_count#14]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_demographics]
PushedFilters: [IsNotNull(cd_gender), IsNotNull(cd_education_status), EqualTo(cd_gender,M), EqualTo(cd_education_status,College             ), IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_education_status:string,cd_dep_count:int>

(4) CometFilter
Input [4]: [cd_demo_sk#11, cd_gender#12, cd_education_status#13, cd_dep_count#14]
Condition : ((((isnotnull(cd_gender#12) AND isnotnull(cd_education_status#13)) AND (cd_gender#12 = M)) AND (cd_education_status#13 = College             )) AND isnotnull(cd_demo_sk#11))

(5) CometProject
Input [4]: [cd_demo_sk#11, cd_gender#12, cd_education_status#13, cd_dep_count#14]
Arguments: [cd_demo_sk#11, cd_dep_count#14], [cd_demo_sk#11, cd_dep_count#14]

(6) CometBroadcastExchange
Input [2]: [cd_demo_sk#11, cd_dep_count#14]
Arguments: [cd_demo_sk#11, cd_dep_count#14]

(7) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#1, cs_bill_cdemo_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9]
Right output [2]: [cd_demo_sk#11, cd_dep_count#14]
Arguments: [cs_bill_cdemo_sk#2], [cd_demo_sk#11], Inner, BuildRight

(8) CometProject
Input [11]: [cs_bill_customer_sk#1, cs_bill_cdemo_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_demo_sk#11, cd_dep_count#14]
Arguments: [cs_bill_customer_sk#1, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14], [cs_bill_customer_sk#1, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14]

(9) CometScan parquet spark_catalog.default.customer
Output [5]: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_month#18, c_birth_year#19]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer]
PushedFilters: [In(c_birth_month, [1,10,12,4,5,9]), IsNotNull(c_customer_sk), IsNotNull(c_current_cdemo_sk), IsNotNull(c_current_addr_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int,c_birth_month:int,c_birth_year:int>

(10) CometFilter
Input [5]: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_month#18, c_birth_year#19]
Condition : (((c_birth_month#18 IN (9,5,12,4,1,10) AND isnotnull(c_customer_sk#15)) AND isnotnull(c_current_cdemo_sk#16)) AND isnotnull(c_current_addr_sk#17))

(11) CometProject
Input [5]: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_month#18, c_birth_year#19]
Arguments: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19], [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]

(12) CometBroadcastExchange
Input [4]: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]
Arguments: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]

(13) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#1, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14]
Right output [4]: [c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]
Arguments: [cs_bill_customer_sk#1], [c_customer_sk#15], Inner, BuildRight

(14) CometProject
Input [13]: [cs_bill_customer_sk#1, cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_customer_sk#15, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]
Arguments: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19], [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]

(15) CometScan parquet spark_catalog.default.customer_demographics
Output [1]: [cd_demo_sk#20]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_demographics]
PushedFilters: [IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int>

(16) CometFilter
Input [1]: [cd_demo_sk#20]
Condition : isnotnull(cd_demo_sk#20)

(17) CometBroadcastExchange
Input [1]: [cd_demo_sk#20]
Arguments: [cd_demo_sk#20]

(18) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19]
Right output [1]: [cd_demo_sk#20]
Arguments: [c_current_cdemo_sk#16], [cd_demo_sk#20], Inner, BuildRight

(19) CometProject
Input [12]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_cdemo_sk#16, c_current_addr_sk#17, c_birth_year#19, cd_demo_sk#20]
Arguments: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_addr_sk#17, c_birth_year#19], [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_addr_sk#17, c_birth_year#19]

(20) CometScan parquet spark_catalog.default.customer_address
Output [4]: [ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [In(ca_state, [AL,MS,NC,ND,OK,TN,WI]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_county:string,ca_state:string,ca_country:string>

(21) CometFilter
Input [4]: [ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]
Condition : (ca_state#23 IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#21))

(22) CometBroadcastExchange
Input [4]: [ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]
Arguments: [ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]

(23) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_addr_sk#17, c_birth_year#19]
Right output [4]: [ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]
Arguments: [c_current_addr_sk#17], [ca_address_sk#21], Inner, BuildRight

(24) CometProject
Input [14]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_current_addr_sk#17, c_birth_year#19, ca_address_sk#21, ca_county#22, ca_state#23, ca_country#24]
Arguments: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24], [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24]

(25) CometScan parquet spark_catalog.default.date_dim
Output [2]: [d_date_sk#25, d_year#26]
Batched: true
Location [not included in comparison]/{warehouse_dir}/date_dim]
PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int>

(26) CometFilter
Input [2]: [d_date_sk#25, d_year#26]
Condition : ((isnotnull(d_year#26) AND (d_year#26 = 2001)) AND isnotnull(d_date_sk#25))

(27) CometProject
Input [2]: [d_date_sk#25, d_year#26]
Arguments: [d_date_sk#25], [d_date_sk#25]

(28) CometBroadcastExchange
Input [1]: [d_date_sk#25]
Arguments: [d_date_sk#25]

(29) CometBroadcastHashJoin
Left output [12]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24]
Right output [1]: [d_date_sk#25]
Arguments: [cs_sold_date_sk#9], [d_date_sk#25], Inner, BuildRight

(30) CometProject
Input [13]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cs_sold_date_sk#9, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24, d_date_sk#25]
Arguments: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24], [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24]

(31) CometScan parquet spark_catalog.default.item
Output [2]: [i_item_sk#27, i_item_id#28]
Batched: true
Location [not included in comparison]/{warehouse_dir}/item]
PushedFilters: [IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_item_id:string>

(32) CometFilter
Input [2]: [i_item_sk#27, i_item_id#28]
Condition : isnotnull(i_item_sk#27)

(33) CometBroadcastExchange
Input [2]: [i_item_sk#27, i_item_id#28]
Arguments: [i_item_sk#27, i_item_id#28]

(34) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24]
Right output [2]: [i_item_sk#27, i_item_id#28]
Arguments: [cs_item_sk#3], [i_item_sk#27], Inner, BuildRight

(35) CometProject
Input [13]: [cs_item_sk#3, cs_quantity#4, cs_list_price#5, cs_sales_price#6, cs_coupon_amt#7, cs_net_profit#8, cd_dep_count#14, c_birth_year#19, ca_county#22, ca_state#23, ca_country#24, i_item_sk#27, i_item_id#28]
Arguments: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#29, agg2#30, agg3#31, agg4#32, agg5#33, agg6#34, agg7#35], [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, cast(cs_quantity#4 as decimal(12,2)) AS agg1#29, cast(cs_list_price#5 as decimal(12,2)) AS agg2#30, cast(cs_coupon_amt#7 as decimal(12,2)) AS agg3#31, cast(cs_sales_price#6 as decimal(12,2)) AS agg4#32, cast(cs_net_profit#8 as decimal(12,2)) AS agg5#33, cast(c_birth_year#19 as decimal(12,2)) AS agg6#34, cast(cd_dep_count#14 as decimal(12,2)) AS agg7#35]

(36) CometHashAggregate
Input [11]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#29, agg2#30, agg3#31, agg4#32, agg5#33, agg6#34, agg7#35]
Keys [4]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22]
Functions [7]: [partial_avg(agg1#29), partial_avg(agg2#30), partial_avg(agg3#31), partial_avg(agg4#32), partial_avg(agg5#33), partial_avg(agg6#34), partial_avg(agg7#35)]

(37) CometExchange
Input [18]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, sum#36, count#37, sum#38, count#39, sum#40, count#41, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49]
Arguments: hashpartitioning(i_item_id#28, ca_country#24, ca_state#23, ca_county#22, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]

(38) CometHashAggregate
Input [18]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, sum#36, count#37, sum#38, count#39, sum#40, count#41, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49]
Keys [4]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22]
Functions [7]: [avg(agg1#29), avg(agg2#30), avg(agg3#31), avg(agg4#32), avg(agg5#33), avg(agg6#34), avg(agg7#35)]

(39) CometScan parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#50, cs_bill_cdemo_sk#51, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#58), dynamicpruningexpression(cs_sold_date_sk#58 IN dynamicpruning#59)]
PushedFilters: [IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_customer_sk), IsNotNull(cs_item_sk)]
ReadSchema: struct<cs_bill_customer_sk:int,cs_bill_cdemo_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2),cs_sales_price:decimal(7,2),cs_coupon_amt:decimal(7,2),cs_net_profit:decimal(7,2)>

(40) CometFilter
Input [9]: [cs_bill_customer_sk#50, cs_bill_cdemo_sk#51, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58]
Condition : ((isnotnull(cs_bill_cdemo_sk#51) AND isnotnull(cs_bill_customer_sk#50)) AND isnotnull(cs_item_sk#52))

(41) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#60, cd_dep_count#61]

(42) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#50, cs_bill_cdemo_sk#51, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58]
Right output [2]: [cd_demo_sk#60, cd_dep_count#61]
Arguments: [cs_bill_cdemo_sk#51], [cd_demo_sk#60], Inner, BuildRight

(43) CometProject
Input [11]: [cs_bill_customer_sk#50, cs_bill_cdemo_sk#51, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_demo_sk#60, cd_dep_count#61]
Arguments: [cs_bill_customer_sk#50, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61], [cs_bill_customer_sk#50, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61]

(44) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#62, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65]

(45) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#50, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61]
Right output [4]: [c_customer_sk#62, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65]
Arguments: [cs_bill_customer_sk#50], [c_customer_sk#62], Inner, BuildRight

(46) CometProject
Input [13]: [cs_bill_customer_sk#50, cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_customer_sk#62, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65]
Arguments: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65], [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65]

(47) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#66]

(48) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65]
Right output [1]: [cd_demo_sk#66]
Arguments: [c_current_cdemo_sk#63], [cd_demo_sk#66], Inner, BuildRight

(49) CometProject
Input [12]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_cdemo_sk#63, c_current_addr_sk#64, c_birth_year#65, cd_demo_sk#66]
Arguments: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_addr_sk#64, c_birth_year#65], [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_addr_sk#64, c_birth_year#65]

(50) CometScan parquet spark_catalog.default.customer_address
Output [3]: [ca_address_sk#67, ca_state#68, ca_country#69]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [In(ca_state, [AL,MS,NC,ND,OK,TN,WI]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>

(51) CometFilter
Input [3]: [ca_address_sk#67, ca_state#68, ca_country#69]
Condition : (ca_state#68 IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#67))

(52) CometBroadcastExchange
Input [3]: [ca_address_sk#67, ca_state#68, ca_country#69]
Arguments: [ca_address_sk#67, ca_state#68, ca_country#69]

(53) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_addr_sk#64, c_birth_year#65]
Right output [3]: [ca_address_sk#67, ca_state#68, ca_country#69]
Arguments: [c_current_addr_sk#64], [ca_address_sk#67], Inner, BuildRight

(54) CometProject
Input [13]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_current_addr_sk#64, c_birth_year#65, ca_address_sk#67, ca_state#68, ca_country#69]
Arguments: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69], [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69]

(55) ReusedExchange [Reuses operator id: 28]
Output [1]: [d_date_sk#70]

(56) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69]
Right output [1]: [d_date_sk#70]
Arguments: [cs_sold_date_sk#58], [d_date_sk#70], Inner, BuildRight

(57) CometProject
Input [12]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cs_sold_date_sk#58, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69, d_date_sk#70]
Arguments: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69], [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69]

(58) ReusedExchange [Reuses operator id: 33]
Output [2]: [i_item_sk#71, i_item_id#72]

(59) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69]
Right output [2]: [i_item_sk#71, i_item_id#72]
Arguments: [cs_item_sk#52], [i_item_sk#71], Inner, BuildRight

(60) CometProject
Input [12]: [cs_item_sk#52, cs_quantity#53, cs_list_price#54, cs_sales_price#55, cs_coupon_amt#56, cs_net_profit#57, cd_dep_count#61, c_birth_year#65, ca_state#68, ca_country#69, i_item_sk#71, i_item_id#72]
Arguments: [i_item_id#72, ca_country#69, ca_state#68, agg1#73, agg2#74, agg3#75, agg4#76, agg5#77, agg6#78, agg7#79], [i_item_id#72, ca_country#69, ca_state#68, cast(cs_quantity#53 as decimal(12,2)) AS agg1#73, cast(cs_list_price#54 as decimal(12,2)) AS agg2#74, cast(cs_coupon_amt#56 as decimal(12,2)) AS agg3#75, cast(cs_sales_price#55 as decimal(12,2)) AS agg4#76, cast(cs_net_profit#57 as decimal(12,2)) AS agg5#77, cast(c_birth_year#65 as decimal(12,2)) AS agg6#78, cast(cd_dep_count#61 as decimal(12,2)) AS agg7#79]

(61) CometHashAggregate
Input [10]: [i_item_id#72, ca_country#69, ca_state#68, agg1#73, agg2#74, agg3#75, agg4#76, agg5#77, agg6#78, agg7#79]
Keys [3]: [i_item_id#72, ca_country#69, ca_state#68]
Functions [7]: [partial_avg(agg1#73), partial_avg(agg2#74), partial_avg(agg3#75), partial_avg(agg4#76), partial_avg(agg5#77), partial_avg(agg6#78), partial_avg(agg7#79)]

(62) CometExchange
Input [17]: [i_item_id#72, ca_country#69, ca_state#68, sum#80, count#81, sum#82, count#83, sum#84, count#85, sum#86, count#87, sum#88, count#89, sum#90, count#91, sum#92, count#93]
Arguments: hashpartitioning(i_item_id#72, ca_country#69, ca_state#68, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]

(63) CometHashAggregate
Input [17]: [i_item_id#72, ca_country#69, ca_state#68, sum#80, count#81, sum#82, count#83, sum#84, count#85, sum#86, count#87, sum#88, count#89, sum#90, count#91, sum#92, count#93]
Keys [3]: [i_item_id#72, ca_country#69, ca_state#68]
Functions [7]: [avg(agg1#73), avg(agg2#74), avg(agg3#75), avg(agg4#76), avg(agg5#77), avg(agg6#78), avg(agg7#79)]

(64) CometScan parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#94, cs_bill_cdemo_sk#95, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#102), dynamicpruningexpression(cs_sold_date_sk#102 IN dynamicpruning#103)]
PushedFilters: [IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_customer_sk), IsNotNull(cs_item_sk)]
ReadSchema: struct<cs_bill_customer_sk:int,cs_bill_cdemo_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2),cs_sales_price:decimal(7,2),cs_coupon_amt:decimal(7,2),cs_net_profit:decimal(7,2)>

(65) CometFilter
Input [9]: [cs_bill_customer_sk#94, cs_bill_cdemo_sk#95, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102]
Condition : ((isnotnull(cs_bill_cdemo_sk#95) AND isnotnull(cs_bill_customer_sk#94)) AND isnotnull(cs_item_sk#96))

(66) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#104, cd_dep_count#105]

(67) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#94, cs_bill_cdemo_sk#95, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102]
Right output [2]: [cd_demo_sk#104, cd_dep_count#105]
Arguments: [cs_bill_cdemo_sk#95], [cd_demo_sk#104], Inner, BuildRight

(68) CometProject
Input [11]: [cs_bill_customer_sk#94, cs_bill_cdemo_sk#95, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_demo_sk#104, cd_dep_count#105]
Arguments: [cs_bill_customer_sk#94, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105], [cs_bill_customer_sk#94, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105]

(69) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#106, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109]

(70) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#94, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105]
Right output [4]: [c_customer_sk#106, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109]
Arguments: [cs_bill_customer_sk#94], [c_customer_sk#106], Inner, BuildRight

(71) CometProject
Input [13]: [cs_bill_customer_sk#94, cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_customer_sk#106, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109]
Arguments: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109], [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109]

(72) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#110]

(73) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109]
Right output [1]: [cd_demo_sk#110]
Arguments: [c_current_cdemo_sk#107], [cd_demo_sk#110], Inner, BuildRight

(74) CometProject
Input [12]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_cdemo_sk#107, c_current_addr_sk#108, c_birth_year#109, cd_demo_sk#110]
Arguments: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_addr_sk#108, c_birth_year#109], [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_addr_sk#108, c_birth_year#109]

(75) CometScan parquet spark_catalog.default.customer_address
Output [3]: [ca_address_sk#111, ca_state#112, ca_country#113]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [In(ca_state, [AL,MS,NC,ND,OK,TN,WI]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>

(76) CometFilter
Input [3]: [ca_address_sk#111, ca_state#112, ca_country#113]
Condition : (ca_state#112 IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#111))

(77) CometProject
Input [3]: [ca_address_sk#111, ca_state#112, ca_country#113]
Arguments: [ca_address_sk#111, ca_country#113], [ca_address_sk#111, ca_country#113]

(78) CometBroadcastExchange
Input [2]: [ca_address_sk#111, ca_country#113]
Arguments: [ca_address_sk#111, ca_country#113]

(79) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_addr_sk#108, c_birth_year#109]
Right output [2]: [ca_address_sk#111, ca_country#113]
Arguments: [c_current_addr_sk#108], [ca_address_sk#111], Inner, BuildRight

(80) CometProject
Input [12]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_current_addr_sk#108, c_birth_year#109, ca_address_sk#111, ca_country#113]
Arguments: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_birth_year#109, ca_country#113], [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_birth_year#109, ca_country#113]

(81) ReusedExchange [Reuses operator id: 28]
Output [1]: [d_date_sk#114]

(82) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_birth_year#109, ca_country#113]
Right output [1]: [d_date_sk#114]
Arguments: [cs_sold_date_sk#102], [d_date_sk#114], Inner, BuildRight

(83) CometProject
Input [11]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cs_sold_date_sk#102, cd_dep_count#105, c_birth_year#109, ca_country#113, d_date_sk#114]
Arguments: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cd_dep_count#105, c_birth_year#109, ca_country#113], [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cd_dep_count#105, c_birth_year#109, ca_country#113]

(84) ReusedExchange [Reuses operator id: 33]
Output [2]: [i_item_sk#115, i_item_id#116]

(85) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cd_dep_count#105, c_birth_year#109, ca_country#113]
Right output [2]: [i_item_sk#115, i_item_id#116]
Arguments: [cs_item_sk#96], [i_item_sk#115], Inner, BuildRight

(86) CometProject
Input [11]: [cs_item_sk#96, cs_quantity#97, cs_list_price#98, cs_sales_price#99, cs_coupon_amt#100, cs_net_profit#101, cd_dep_count#105, c_birth_year#109, ca_country#113, i_item_sk#115, i_item_id#116]
Arguments: [i_item_id#116, ca_country#113, agg1#117, agg2#118, agg3#119, agg4#120, agg5#121, agg6#122, agg7#123], [i_item_id#116, ca_country#113, cast(cs_quantity#97 as decimal(12,2)) AS agg1#117, cast(cs_list_price#98 as decimal(12,2)) AS agg2#118, cast(cs_coupon_amt#100 as decimal(12,2)) AS agg3#119, cast(cs_sales_price#99 as decimal(12,2)) AS agg4#120, cast(cs_net_profit#101 as decimal(12,2)) AS agg5#121, cast(c_birth_year#109 as decimal(12,2)) AS agg6#122, cast(cd_dep_count#105 as decimal(12,2)) AS agg7#123]

(87) CometHashAggregate
Input [9]: [i_item_id#116, ca_country#113, agg1#117, agg2#118, agg3#119, agg4#120, agg5#121, agg6#122, agg7#123]
Keys [2]: [i_item_id#116, ca_country#113]
Functions [7]: [partial_avg(agg1#117), partial_avg(agg2#118), partial_avg(agg3#119), partial_avg(agg4#120), partial_avg(agg5#121), partial_avg(agg6#122), partial_avg(agg7#123)]

(88) CometExchange
Input [16]: [i_item_id#116, ca_country#113, sum#124, count#125, sum#126, count#127, sum#128, count#129, sum#130, count#131, sum#132, count#133, sum#134, count#135, sum#136, count#137]
Arguments: hashpartitioning(i_item_id#116, ca_country#113, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]

(89) CometHashAggregate
Input [16]: [i_item_id#116, ca_country#113, sum#124, count#125, sum#126, count#127, sum#128, count#129, sum#130, count#131, sum#132, count#133, sum#134, count#135, sum#136, count#137]
Keys [2]: [i_item_id#116, ca_country#113]
Functions [7]: [avg(agg1#117), avg(agg2#118), avg(agg3#119), avg(agg4#120), avg(agg5#121), avg(agg6#122), avg(agg7#123)]

(90) CometScan parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#138, cs_bill_cdemo_sk#139, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#146), dynamicpruningexpression(cs_sold_date_sk#146 IN dynamicpruning#147)]
PushedFilters: [IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_customer_sk), IsNotNull(cs_item_sk)]
ReadSchema: struct<cs_bill_customer_sk:int,cs_bill_cdemo_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2),cs_sales_price:decimal(7,2),cs_coupon_amt:decimal(7,2),cs_net_profit:decimal(7,2)>

(91) CometFilter
Input [9]: [cs_bill_customer_sk#138, cs_bill_cdemo_sk#139, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146]
Condition : ((isnotnull(cs_bill_cdemo_sk#139) AND isnotnull(cs_bill_customer_sk#138)) AND isnotnull(cs_item_sk#140))

(92) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#148, cd_dep_count#149]

(93) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#138, cs_bill_cdemo_sk#139, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146]
Right output [2]: [cd_demo_sk#148, cd_dep_count#149]
Arguments: [cs_bill_cdemo_sk#139], [cd_demo_sk#148], Inner, BuildRight

(94) CometProject
Input [11]: [cs_bill_customer_sk#138, cs_bill_cdemo_sk#139, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_demo_sk#148, cd_dep_count#149]
Arguments: [cs_bill_customer_sk#138, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149], [cs_bill_customer_sk#138, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149]

(95) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#150, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153]

(96) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#138, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149]
Right output [4]: [c_customer_sk#150, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153]
Arguments: [cs_bill_customer_sk#138], [c_customer_sk#150], Inner, BuildRight

(97) CometProject
Input [13]: [cs_bill_customer_sk#138, cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_customer_sk#150, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153]
Arguments: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153], [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153]

(98) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#154]

(99) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153]
Right output [1]: [cd_demo_sk#154]
Arguments: [c_current_cdemo_sk#151], [cd_demo_sk#154], Inner, BuildRight

(100) CometProject
Input [12]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_cdemo_sk#151, c_current_addr_sk#152, c_birth_year#153, cd_demo_sk#154]
Arguments: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_addr_sk#152, c_birth_year#153], [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_addr_sk#152, c_birth_year#153]

(101) CometScan parquet spark_catalog.default.customer_address
Output [2]: [ca_address_sk#155, ca_state#156]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [In(ca_state, [AL,MS,NC,ND,OK,TN,WI]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string>

(102) CometFilter
Input [2]: [ca_address_sk#155, ca_state#156]
Condition : (ca_state#156 IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#155))

(103) CometProject
Input [2]: [ca_address_sk#155, ca_state#156]
Arguments: [ca_address_sk#155], [ca_address_sk#155]

(104) CometBroadcastExchange
Input [1]: [ca_address_sk#155]
Arguments: [ca_address_sk#155]

(105) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_addr_sk#152, c_birth_year#153]
Right output [1]: [ca_address_sk#155]
Arguments: [c_current_addr_sk#152], [ca_address_sk#155], Inner, BuildRight

(106) CometProject
Input [11]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_current_addr_sk#152, c_birth_year#153, ca_address_sk#155]
Arguments: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_birth_year#153], [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_birth_year#153]

(107) ReusedExchange [Reuses operator id: 28]
Output [1]: [d_date_sk#157]

(108) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_birth_year#153]
Right output [1]: [d_date_sk#157]
Arguments: [cs_sold_date_sk#146], [d_date_sk#157], Inner, BuildRight

(109) CometProject
Input [10]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cs_sold_date_sk#146, cd_dep_count#149, c_birth_year#153, d_date_sk#157]
Arguments: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cd_dep_count#149, c_birth_year#153], [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cd_dep_count#149, c_birth_year#153]

(110) ReusedExchange [Reuses operator id: 33]
Output [2]: [i_item_sk#158, i_item_id#159]

(111) CometBroadcastHashJoin
Left output [8]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cd_dep_count#149, c_birth_year#153]
Right output [2]: [i_item_sk#158, i_item_id#159]
Arguments: [cs_item_sk#140], [i_item_sk#158], Inner, BuildRight

(112) CometProject
Input [10]: [cs_item_sk#140, cs_quantity#141, cs_list_price#142, cs_sales_price#143, cs_coupon_amt#144, cs_net_profit#145, cd_dep_count#149, c_birth_year#153, i_item_sk#158, i_item_id#159]
Arguments: [i_item_id#159, agg1#160, agg2#161, agg3#162, agg4#163, agg5#164, agg6#165, agg7#166], [i_item_id#159, cast(cs_quantity#141 as decimal(12,2)) AS agg1#160, cast(cs_list_price#142 as decimal(12,2)) AS agg2#161, cast(cs_coupon_amt#144 as decimal(12,2)) AS agg3#162, cast(cs_sales_price#143 as decimal(12,2)) AS agg4#163, cast(cs_net_profit#145 as decimal(12,2)) AS agg5#164, cast(c_birth_year#153 as decimal(12,2)) AS agg6#165, cast(cd_dep_count#149 as decimal(12,2)) AS agg7#166]

(113) CometHashAggregate
Input [8]: [i_item_id#159, agg1#160, agg2#161, agg3#162, agg4#163, agg5#164, agg6#165, agg7#166]
Keys [1]: [i_item_id#159]
Functions [7]: [partial_avg(agg1#160), partial_avg(agg2#161), partial_avg(agg3#162), partial_avg(agg4#163), partial_avg(agg5#164), partial_avg(agg6#165), partial_avg(agg7#166)]

(114) CometExchange
Input [15]: [i_item_id#159, sum#167, count#168, sum#169, count#170, sum#171, count#172, sum#173, count#174, sum#175, count#176, sum#177, count#178, sum#179, count#180]
Arguments: hashpartitioning(i_item_id#159, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=4]

(115) CometHashAggregate
Input [15]: [i_item_id#159, sum#167, count#168, sum#169, count#170, sum#171, count#172, sum#173, count#174, sum#175, count#176, sum#177, count#178, sum#179, count#180]
Keys [1]: [i_item_id#159]
Functions [7]: [avg(agg1#160), avg(agg2#161), avg(agg3#162), avg(agg4#163), avg(agg5#164), avg(agg6#165), avg(agg7#166)]

(116) CometScan parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#181, cs_bill_cdemo_sk#182, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#189), dynamicpruningexpression(cs_sold_date_sk#189 IN dynamicpruning#190)]
PushedFilters: [IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_customer_sk), IsNotNull(cs_item_sk)]
ReadSchema: struct<cs_bill_customer_sk:int,cs_bill_cdemo_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2),cs_sales_price:decimal(7,2),cs_coupon_amt:decimal(7,2),cs_net_profit:decimal(7,2)>

(117) CometFilter
Input [9]: [cs_bill_customer_sk#181, cs_bill_cdemo_sk#182, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189]
Condition : ((isnotnull(cs_bill_cdemo_sk#182) AND isnotnull(cs_bill_customer_sk#181)) AND isnotnull(cs_item_sk#183))

(118) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#191, cd_dep_count#192]

(119) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#181, cs_bill_cdemo_sk#182, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189]
Right output [2]: [cd_demo_sk#191, cd_dep_count#192]
Arguments: [cs_bill_cdemo_sk#182], [cd_demo_sk#191], Inner, BuildRight

(120) CometProject
Input [11]: [cs_bill_customer_sk#181, cs_bill_cdemo_sk#182, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_demo_sk#191, cd_dep_count#192]
Arguments: [cs_bill_customer_sk#181, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192], [cs_bill_customer_sk#181, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192]

(121) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#193, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196]

(122) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#181, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192]
Right output [4]: [c_customer_sk#193, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196]
Arguments: [cs_bill_customer_sk#181], [c_customer_sk#193], Inner, BuildRight

(123) CometProject
Input [13]: [cs_bill_customer_sk#181, cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_customer_sk#193, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196]
Arguments: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196], [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196]

(124) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#197]

(125) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196]
Right output [1]: [cd_demo_sk#197]
Arguments: [c_current_cdemo_sk#194], [cd_demo_sk#197], Inner, BuildRight

(126) CometProject
Input [12]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_cdemo_sk#194, c_current_addr_sk#195, c_birth_year#196, cd_demo_sk#197]
Arguments: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_addr_sk#195, c_birth_year#196], [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_addr_sk#195, c_birth_year#196]

(127) ReusedExchange [Reuses operator id: 104]
Output [1]: [ca_address_sk#198]

(128) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_addr_sk#195, c_birth_year#196]
Right output [1]: [ca_address_sk#198]
Arguments: [c_current_addr_sk#195], [ca_address_sk#198], Inner, BuildRight

(129) CometProject
Input [11]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_current_addr_sk#195, c_birth_year#196, ca_address_sk#198]
Arguments: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_birth_year#196], [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_birth_year#196]

(130) ReusedExchange [Reuses operator id: 28]
Output [1]: [d_date_sk#199]

(131) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_birth_year#196]
Right output [1]: [d_date_sk#199]
Arguments: [cs_sold_date_sk#189], [d_date_sk#199], Inner, BuildRight

(132) CometProject
Input [10]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cs_sold_date_sk#189, cd_dep_count#192, c_birth_year#196, d_date_sk#199]
Arguments: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cd_dep_count#192, c_birth_year#196], [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cd_dep_count#192, c_birth_year#196]

(133) CometScan parquet spark_catalog.default.item
Output [1]: [i_item_sk#200]
Batched: true
Location [not included in comparison]/{warehouse_dir}/item]
PushedFilters: [IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int>

(134) CometFilter
Input [1]: [i_item_sk#200]
Condition : isnotnull(i_item_sk#200)

(135) CometBroadcastExchange
Input [1]: [i_item_sk#200]
Arguments: [i_item_sk#200]

(136) CometBroadcastHashJoin
Left output [8]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cd_dep_count#192, c_birth_year#196]
Right output [1]: [i_item_sk#200]
Arguments: [cs_item_sk#183], [i_item_sk#200], Inner, BuildRight

(137) CometProject
Input [9]: [cs_item_sk#183, cs_quantity#184, cs_list_price#185, cs_sales_price#186, cs_coupon_amt#187, cs_net_profit#188, cd_dep_count#192, c_birth_year#196, i_item_sk#200]
Arguments: [agg1#201, agg2#202, agg3#203, agg4#204, agg5#205, agg6#206, agg7#207], [cast(cs_quantity#184 as decimal(12,2)) AS agg1#201, cast(cs_list_price#185 as decimal(12,2)) AS agg2#202, cast(cs_coupon_amt#187 as decimal(12,2)) AS agg3#203, cast(cs_sales_price#186 as decimal(12,2)) AS agg4#204, cast(cs_net_profit#188 as decimal(12,2)) AS agg5#205, cast(c_birth_year#196 as decimal(12,2)) AS agg6#206, cast(cd_dep_count#192 as decimal(12,2)) AS agg7#207]

(138) CometHashAggregate
Input [7]: [agg1#201, agg2#202, agg3#203, agg4#204, agg5#205, agg6#206, agg7#207]
Keys: []
Functions [7]: [partial_avg(agg1#201), partial_avg(agg2#202), partial_avg(agg3#203), partial_avg(agg4#204), partial_avg(agg5#205), partial_avg(agg6#206), partial_avg(agg7#207)]

(139) CometExchange
Input [14]: [sum#208, count#209, sum#210, count#211, sum#212, count#213, sum#214, count#215, sum#216, count#217, sum#218, count#219, sum#220, count#221]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=5]

(140) CometHashAggregate
Input [14]: [sum#208, count#209, sum#210, count#211, sum#212, count#213, sum#214, count#215, sum#216, count#217, sum#218, count#219, sum#220, count#221]
Keys: []
Functions [7]: [avg(agg1#201), avg(agg2#202), avg(agg3#203), avg(agg4#204), avg(agg5#205), avg(agg6#206), avg(agg7#207)]

(141) CometUnion
Child 0 Input [11]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#222, agg2#223, agg3#224, agg4#225, agg5#226, agg6#227, agg7#228]
Child 1 Input [11]: [i_item_id#72, ca_country#69, ca_state#68, county#229, agg1#230, agg2#231, agg3#232, agg4#233, agg5#234, agg6#235, agg7#236]
Child 2 Input [11]: [i_item_id#116, ca_country#113, ca_state#237, county#238, agg1#239, agg2#240, agg3#241, agg4#242, agg5#243, agg6#244, agg7#245]
Child 3 Input [11]: [i_item_id#159, ca_country#246, ca_state#247, county#248, agg1#249, agg2#250, agg3#251, agg4#252, agg5#253, agg6#254, agg7#255]
Child 4 Input [11]: [i_item_id#256, ca_country#257, ca_state#258, county#259, agg1#260, agg2#261, agg3#262, agg4#263, agg5#264, agg6#265, agg7#266]

(142) CometTakeOrderedAndProject
Input [11]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#222, agg2#223, agg3#224, agg4#225, agg5#226, agg6#227, agg7#228]
Arguments: TakeOrderedAndProject(limit=100, orderBy=[ca_country#24 ASC NULLS FIRST,ca_state#23 ASC NULLS FIRST,ca_county#22 ASC NULLS FIRST,i_item_id#28 ASC NULLS FIRST], output=[i_item_id#28,ca_country#24,ca_state#23,ca_county#22,agg1#222,agg2#223,agg3#224,agg4#225,agg5#226,agg6#227,agg7#228]), [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#222, agg2#223, agg3#224, agg4#225, agg5#226, agg6#227, agg7#228], 100, [ca_country#24 ASC NULLS FIRST, ca_state#23 ASC NULLS FIRST, ca_county#22 ASC NULLS FIRST, i_item_id#28 ASC NULLS FIRST], [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#222, agg2#223, agg3#224, agg4#225, agg5#226, agg6#227, agg7#228]

(143) CometColumnarToRow [codegen id : 1]
Input [11]: [i_item_id#28, ca_country#24, ca_state#23, ca_county#22, agg1#222, agg2#223, agg3#224, agg4#225, agg5#226, agg6#227, agg7#228]

===== Subqueries =====

Subquery:1 Hosting operator id = 1 Hosting Expression = cs_sold_date_sk#9 IN dynamicpruning#10
BroadcastExchange (148)
+- * CometColumnarToRow (147)
   +- CometProject (146)
      +- CometFilter (145)
         +- CometScan parquet spark_catalog.default.date_dim (144)


(144) CometScan parquet spark_catalog.default.date_dim
Output [2]: [d_date_sk#25, d_year#26]
Batched: true
Location [not included in comparison]/{warehouse_dir}/date_dim]
PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int>

(145) CometFilter
Input [2]: [d_date_sk#25, d_year#26]
Condition : ((isnotnull(d_year#26) AND (d_year#26 = 2001)) AND isnotnull(d_date_sk#25))

(146) CometProject
Input [2]: [d_date_sk#25, d_year#26]
Arguments: [d_date_sk#25], [d_date_sk#25]

(147) CometColumnarToRow [codegen id : 1]
Input [1]: [d_date_sk#25]

(148) BroadcastExchange
Input [1]: [d_date_sk#25]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=6]

Subquery:2 Hosting operator id = 39 Hosting Expression = cs_sold_date_sk#58 IN dynamicpruning#10

Subquery:3 Hosting operator id = 64 Hosting Expression = cs_sold_date_sk#102 IN dynamicpruning#10

Subquery:4 Hosting operator id = 90 Hosting Expression = cs_sold_date_sk#146 IN dynamicpruning#10

Subquery:5 Hosting operator id = 116 Hosting Expression = cs_sold_date_sk#189 IN dynamicpruning#10


