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


(1) CometScan [native_iceberg_compat] 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 [native_iceberg_compat] 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), 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 (static_invoke(CharVarcharCodegenUtils.readSidePadding(cd_gender#12, 1)) = M)) AND (static_invoke(CharVarcharCodegenUtils.readSidePadding(cd_education_status#13, 20)) = 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 [native_iceberg_compat] 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 [native_iceberg_compat] 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 [native_iceberg_compat] 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: [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 : (static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#23, 2)) IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#21))

(22) CometProject
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#25, ca_country#24], [ca_address_sk#21, ca_county#22, static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#23, 2)) AS ca_state#25, ca_country#24]

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

(24) 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#25, ca_country#24]
Arguments: [c_current_addr_sk#17], [ca_address_sk#21], Inner, BuildRight

(25) 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#25, 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#25, 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#25, ca_country#24]

(26) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
Output [2]: [d_date_sk#26, d_year#27]
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>

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

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

(29) CometBroadcastExchange
Input [1]: [d_date_sk#26]
Arguments: [d_date_sk#26]

(30) 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#25, ca_country#24]
Right output [1]: [d_date_sk#26]
Arguments: [cs_sold_date_sk#9], [d_date_sk#26], Inner, BuildRight

(31) 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#25, ca_country#24, d_date_sk#26]
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#25, 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#25, ca_country#24]

(32) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
Output [2]: [i_item_sk#28, i_item_id#29]
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>

(33) CometFilter
Input [2]: [i_item_sk#28, i_item_id#29]
Condition : isnotnull(i_item_sk#28)

(34) CometProject
Input [2]: [i_item_sk#28, i_item_id#29]
Arguments: [i_item_sk#28, i_item_id#30], [i_item_sk#28, static_invoke(CharVarcharCodegenUtils.readSidePadding(i_item_id#29, 16)) AS i_item_id#30]

(35) CometBroadcastExchange
Input [2]: [i_item_sk#28, i_item_id#30]
Arguments: [i_item_sk#28, i_item_id#30]

(36) 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#25, ca_country#24]
Right output [2]: [i_item_sk#28, i_item_id#30]
Arguments: [cs_item_sk#3], [i_item_sk#28], Inner, BuildRight

(37) 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#25, ca_country#24, i_item_sk#28, i_item_id#30]
Arguments: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#35, agg2#36, agg3#37, agg4#38, agg5#39, agg6#40, agg7#41], [i_item_id#30 AS i_item_id#31, ca_country#24 AS ca_country#32, ca_state#25 AS ca_state#33, ca_county#22 AS ca_county#34, cast(cs_quantity#4 as decimal(12,2)) AS agg1#35, cast(cs_list_price#5 as decimal(12,2)) AS agg2#36, cast(cs_coupon_amt#7 as decimal(12,2)) AS agg3#37, cast(cs_sales_price#6 as decimal(12,2)) AS agg4#38, cast(cs_net_profit#8 as decimal(12,2)) AS agg5#39, cast(c_birth_year#19 as decimal(12,2)) AS agg6#40, cast(cd_dep_count#14 as decimal(12,2)) AS agg7#41]

(38) CometHashAggregate
Input [11]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#35, agg2#36, agg3#37, agg4#38, agg5#39, agg6#40, agg7#41]
Keys [4]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34]
Functions [7]: [partial_avg(agg1#35), partial_avg(agg2#36), partial_avg(agg3#37), partial_avg(agg4#38), partial_avg(agg5#39), partial_avg(agg6#40), partial_avg(agg7#41)]

(39) CometExchange
Input [18]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51, sum#52, count#53, sum#54, count#55]
Arguments: hashpartitioning(i_item_id#31, ca_country#32, ca_state#33, ca_county#34, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]

(40) CometHashAggregate
Input [18]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51, sum#52, count#53, sum#54, count#55]
Keys [4]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34]
Functions [7]: [avg(agg1#35), avg(agg2#36), avg(agg3#37), avg(agg4#38), avg(agg5#39), avg(agg6#40), avg(agg7#41)]

(41) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#56, cs_bill_cdemo_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#64), dynamicpruningexpression(cs_sold_date_sk#64 IN dynamicpruning#65)]
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)>

(42) CometFilter
Input [9]: [cs_bill_customer_sk#56, cs_bill_cdemo_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64]
Condition : ((isnotnull(cs_bill_cdemo_sk#57) AND isnotnull(cs_bill_customer_sk#56)) AND isnotnull(cs_item_sk#58))

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

(44) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#56, cs_bill_cdemo_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64]
Right output [2]: [cd_demo_sk#66, cd_dep_count#67]
Arguments: [cs_bill_cdemo_sk#57], [cd_demo_sk#66], Inner, BuildRight

(45) CometProject
Input [11]: [cs_bill_customer_sk#56, cs_bill_cdemo_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_demo_sk#66, cd_dep_count#67]
Arguments: [cs_bill_customer_sk#56, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67], [cs_bill_customer_sk#56, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67]

(46) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#68, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71]

(47) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#56, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67]
Right output [4]: [c_customer_sk#68, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71]
Arguments: [cs_bill_customer_sk#56], [c_customer_sk#68], Inner, BuildRight

(48) CometProject
Input [13]: [cs_bill_customer_sk#56, cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_customer_sk#68, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71]
Arguments: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71], [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71]

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

(50) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71]
Right output [1]: [cd_demo_sk#72]
Arguments: [c_current_cdemo_sk#69], [cd_demo_sk#72], Inner, BuildRight

(51) CometProject
Input [12]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_cdemo_sk#69, c_current_addr_sk#70, c_birth_year#71, cd_demo_sk#72]
Arguments: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_addr_sk#70, c_birth_year#71], [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_addr_sk#70, c_birth_year#71]

(52) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
Output [3]: [ca_address_sk#73, ca_state#74, ca_country#75]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>

(53) CometFilter
Input [3]: [ca_address_sk#73, ca_state#74, ca_country#75]
Condition : (static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#74, 2)) IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#73))

(54) CometProject
Input [3]: [ca_address_sk#73, ca_state#74, ca_country#75]
Arguments: [ca_address_sk#73, ca_state#76, ca_country#75], [ca_address_sk#73, static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#74, 2)) AS ca_state#76, ca_country#75]

(55) CometBroadcastExchange
Input [3]: [ca_address_sk#73, ca_state#76, ca_country#75]
Arguments: [ca_address_sk#73, ca_state#76, ca_country#75]

(56) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_addr_sk#70, c_birth_year#71]
Right output [3]: [ca_address_sk#73, ca_state#76, ca_country#75]
Arguments: [c_current_addr_sk#70], [ca_address_sk#73], Inner, BuildRight

(57) CometProject
Input [13]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_current_addr_sk#70, c_birth_year#71, ca_address_sk#73, ca_state#76, ca_country#75]
Arguments: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75], [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75]

(58) ReusedExchange [Reuses operator id: 29]
Output [1]: [d_date_sk#77]

(59) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75]
Right output [1]: [d_date_sk#77]
Arguments: [cs_sold_date_sk#64], [d_date_sk#77], Inner, BuildRight

(60) CometProject
Input [12]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cs_sold_date_sk#64, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75, d_date_sk#77]
Arguments: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75], [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75]

(61) ReusedExchange [Reuses operator id: 35]
Output [2]: [i_item_sk#78, i_item_id#79]

(62) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75]
Right output [2]: [i_item_sk#78, i_item_id#79]
Arguments: [cs_item_sk#58], [i_item_sk#78], Inner, BuildRight

(63) CometProject
Input [12]: [cs_item_sk#58, cs_quantity#59, cs_list_price#60, cs_sales_price#61, cs_coupon_amt#62, cs_net_profit#63, cd_dep_count#67, c_birth_year#71, ca_state#76, ca_country#75, i_item_sk#78, i_item_id#79]
Arguments: [i_item_id#79, ca_country#75, ca_state#76, agg1#80, agg2#81, agg3#82, agg4#83, agg5#84, agg6#85, agg7#86], [i_item_id#79, ca_country#75, ca_state#76, cast(cs_quantity#59 as decimal(12,2)) AS agg1#80, cast(cs_list_price#60 as decimal(12,2)) AS agg2#81, cast(cs_coupon_amt#62 as decimal(12,2)) AS agg3#82, cast(cs_sales_price#61 as decimal(12,2)) AS agg4#83, cast(cs_net_profit#63 as decimal(12,2)) AS agg5#84, cast(c_birth_year#71 as decimal(12,2)) AS agg6#85, cast(cd_dep_count#67 as decimal(12,2)) AS agg7#86]

(64) CometHashAggregate
Input [10]: [i_item_id#79, ca_country#75, ca_state#76, agg1#80, agg2#81, agg3#82, agg4#83, agg5#84, agg6#85, agg7#86]
Keys [3]: [i_item_id#79, ca_country#75, ca_state#76]
Functions [7]: [partial_avg(agg1#80), partial_avg(agg2#81), partial_avg(agg3#82), partial_avg(agg4#83), partial_avg(agg5#84), partial_avg(agg6#85), partial_avg(agg7#86)]

(65) CometExchange
Input [17]: [i_item_id#79, ca_country#75, ca_state#76, sum#87, count#88, sum#89, count#90, sum#91, count#92, sum#93, count#94, sum#95, count#96, sum#97, count#98, sum#99, count#100]
Arguments: hashpartitioning(i_item_id#79, ca_country#75, ca_state#76, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]

(66) CometHashAggregate
Input [17]: [i_item_id#79, ca_country#75, ca_state#76, sum#87, count#88, sum#89, count#90, sum#91, count#92, sum#93, count#94, sum#95, count#96, sum#97, count#98, sum#99, count#100]
Keys [3]: [i_item_id#79, ca_country#75, ca_state#76]
Functions [7]: [avg(agg1#80), avg(agg2#81), avg(agg3#82), avg(agg4#83), avg(agg5#84), avg(agg6#85), avg(agg7#86)]

(67) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#101, cs_bill_cdemo_sk#102, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#109), dynamicpruningexpression(cs_sold_date_sk#109 IN dynamicpruning#110)]
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)>

(68) CometFilter
Input [9]: [cs_bill_customer_sk#101, cs_bill_cdemo_sk#102, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109]
Condition : ((isnotnull(cs_bill_cdemo_sk#102) AND isnotnull(cs_bill_customer_sk#101)) AND isnotnull(cs_item_sk#103))

(69) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#111, cd_dep_count#112]

(70) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#101, cs_bill_cdemo_sk#102, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109]
Right output [2]: [cd_demo_sk#111, cd_dep_count#112]
Arguments: [cs_bill_cdemo_sk#102], [cd_demo_sk#111], Inner, BuildRight

(71) CometProject
Input [11]: [cs_bill_customer_sk#101, cs_bill_cdemo_sk#102, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_demo_sk#111, cd_dep_count#112]
Arguments: [cs_bill_customer_sk#101, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112], [cs_bill_customer_sk#101, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112]

(72) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#113, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116]

(73) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#101, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112]
Right output [4]: [c_customer_sk#113, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116]
Arguments: [cs_bill_customer_sk#101], [c_customer_sk#113], Inner, BuildRight

(74) CometProject
Input [13]: [cs_bill_customer_sk#101, cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_customer_sk#113, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116]
Arguments: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116], [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116]

(75) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#117]

(76) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116]
Right output [1]: [cd_demo_sk#117]
Arguments: [c_current_cdemo_sk#114], [cd_demo_sk#117], Inner, BuildRight

(77) CometProject
Input [12]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_cdemo_sk#114, c_current_addr_sk#115, c_birth_year#116, cd_demo_sk#117]
Arguments: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_addr_sk#115, c_birth_year#116], [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_addr_sk#115, c_birth_year#116]

(78) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
Output [3]: [ca_address_sk#118, ca_state#119, ca_country#120]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>

(79) CometFilter
Input [3]: [ca_address_sk#118, ca_state#119, ca_country#120]
Condition : (static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#119, 2)) IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#118))

(80) CometProject
Input [3]: [ca_address_sk#118, ca_state#119, ca_country#120]
Arguments: [ca_address_sk#118, ca_country#120], [ca_address_sk#118, ca_country#120]

(81) CometBroadcastExchange
Input [2]: [ca_address_sk#118, ca_country#120]
Arguments: [ca_address_sk#118, ca_country#120]

(82) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_addr_sk#115, c_birth_year#116]
Right output [2]: [ca_address_sk#118, ca_country#120]
Arguments: [c_current_addr_sk#115], [ca_address_sk#118], Inner, BuildRight

(83) CometProject
Input [12]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_current_addr_sk#115, c_birth_year#116, ca_address_sk#118, ca_country#120]
Arguments: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_birth_year#116, ca_country#120], [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_birth_year#116, ca_country#120]

(84) ReusedExchange [Reuses operator id: 29]
Output [1]: [d_date_sk#121]

(85) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_birth_year#116, ca_country#120]
Right output [1]: [d_date_sk#121]
Arguments: [cs_sold_date_sk#109], [d_date_sk#121], Inner, BuildRight

(86) CometProject
Input [11]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cs_sold_date_sk#109, cd_dep_count#112, c_birth_year#116, ca_country#120, d_date_sk#121]
Arguments: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cd_dep_count#112, c_birth_year#116, ca_country#120], [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cd_dep_count#112, c_birth_year#116, ca_country#120]

(87) ReusedExchange [Reuses operator id: 35]
Output [2]: [i_item_sk#122, i_item_id#123]

(88) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cd_dep_count#112, c_birth_year#116, ca_country#120]
Right output [2]: [i_item_sk#122, i_item_id#123]
Arguments: [cs_item_sk#103], [i_item_sk#122], Inner, BuildRight

(89) CometProject
Input [11]: [cs_item_sk#103, cs_quantity#104, cs_list_price#105, cs_sales_price#106, cs_coupon_amt#107, cs_net_profit#108, cd_dep_count#112, c_birth_year#116, ca_country#120, i_item_sk#122, i_item_id#123]
Arguments: [i_item_id#123, ca_country#120, agg1#124, agg2#125, agg3#126, agg4#127, agg5#128, agg6#129, agg7#130], [i_item_id#123, ca_country#120, cast(cs_quantity#104 as decimal(12,2)) AS agg1#124, cast(cs_list_price#105 as decimal(12,2)) AS agg2#125, cast(cs_coupon_amt#107 as decimal(12,2)) AS agg3#126, cast(cs_sales_price#106 as decimal(12,2)) AS agg4#127, cast(cs_net_profit#108 as decimal(12,2)) AS agg5#128, cast(c_birth_year#116 as decimal(12,2)) AS agg6#129, cast(cd_dep_count#112 as decimal(12,2)) AS agg7#130]

(90) CometHashAggregate
Input [9]: [i_item_id#123, ca_country#120, agg1#124, agg2#125, agg3#126, agg4#127, agg5#128, agg6#129, agg7#130]
Keys [2]: [i_item_id#123, ca_country#120]
Functions [7]: [partial_avg(agg1#124), partial_avg(agg2#125), partial_avg(agg3#126), partial_avg(agg4#127), partial_avg(agg5#128), partial_avg(agg6#129), partial_avg(agg7#130)]

(91) CometExchange
Input [16]: [i_item_id#123, ca_country#120, sum#131, count#132, sum#133, count#134, sum#135, count#136, sum#137, count#138, sum#139, count#140, sum#141, count#142, sum#143, count#144]
Arguments: hashpartitioning(i_item_id#123, ca_country#120, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]

(92) CometHashAggregate
Input [16]: [i_item_id#123, ca_country#120, sum#131, count#132, sum#133, count#134, sum#135, count#136, sum#137, count#138, sum#139, count#140, sum#141, count#142, sum#143, count#144]
Keys [2]: [i_item_id#123, ca_country#120]
Functions [7]: [avg(agg1#124), avg(agg2#125), avg(agg3#126), avg(agg4#127), avg(agg5#128), avg(agg6#129), avg(agg7#130)]

(93) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#145, cs_bill_cdemo_sk#146, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#153), dynamicpruningexpression(cs_sold_date_sk#153 IN dynamicpruning#154)]
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)>

(94) CometFilter
Input [9]: [cs_bill_customer_sk#145, cs_bill_cdemo_sk#146, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153]
Condition : ((isnotnull(cs_bill_cdemo_sk#146) AND isnotnull(cs_bill_customer_sk#145)) AND isnotnull(cs_item_sk#147))

(95) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#155, cd_dep_count#156]

(96) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#145, cs_bill_cdemo_sk#146, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153]
Right output [2]: [cd_demo_sk#155, cd_dep_count#156]
Arguments: [cs_bill_cdemo_sk#146], [cd_demo_sk#155], Inner, BuildRight

(97) CometProject
Input [11]: [cs_bill_customer_sk#145, cs_bill_cdemo_sk#146, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_demo_sk#155, cd_dep_count#156]
Arguments: [cs_bill_customer_sk#145, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156], [cs_bill_customer_sk#145, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156]

(98) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#157, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160]

(99) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#145, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156]
Right output [4]: [c_customer_sk#157, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160]
Arguments: [cs_bill_customer_sk#145], [c_customer_sk#157], Inner, BuildRight

(100) CometProject
Input [13]: [cs_bill_customer_sk#145, cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_customer_sk#157, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160]
Arguments: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160], [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160]

(101) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#161]

(102) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160]
Right output [1]: [cd_demo_sk#161]
Arguments: [c_current_cdemo_sk#158], [cd_demo_sk#161], Inner, BuildRight

(103) CometProject
Input [12]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_cdemo_sk#158, c_current_addr_sk#159, c_birth_year#160, cd_demo_sk#161]
Arguments: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_addr_sk#159, c_birth_year#160], [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_addr_sk#159, c_birth_year#160]

(104) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
Output [2]: [ca_address_sk#162, ca_state#163]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_state:string>

(105) CometFilter
Input [2]: [ca_address_sk#162, ca_state#163]
Condition : (static_invoke(CharVarcharCodegenUtils.readSidePadding(ca_state#163, 2)) IN (ND,WI,AL,NC,OK,MS,TN) AND isnotnull(ca_address_sk#162))

(106) CometProject
Input [2]: [ca_address_sk#162, ca_state#163]
Arguments: [ca_address_sk#162], [ca_address_sk#162]

(107) CometBroadcastExchange
Input [1]: [ca_address_sk#162]
Arguments: [ca_address_sk#162]

(108) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_addr_sk#159, c_birth_year#160]
Right output [1]: [ca_address_sk#162]
Arguments: [c_current_addr_sk#159], [ca_address_sk#162], Inner, BuildRight

(109) CometProject
Input [11]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_current_addr_sk#159, c_birth_year#160, ca_address_sk#162]
Arguments: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_birth_year#160], [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_birth_year#160]

(110) ReusedExchange [Reuses operator id: 29]
Output [1]: [d_date_sk#164]

(111) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_birth_year#160]
Right output [1]: [d_date_sk#164]
Arguments: [cs_sold_date_sk#153], [d_date_sk#164], Inner, BuildRight

(112) CometProject
Input [10]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cs_sold_date_sk#153, cd_dep_count#156, c_birth_year#160, d_date_sk#164]
Arguments: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cd_dep_count#156, c_birth_year#160], [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cd_dep_count#156, c_birth_year#160]

(113) ReusedExchange [Reuses operator id: 35]
Output [2]: [i_item_sk#165, i_item_id#166]

(114) CometBroadcastHashJoin
Left output [8]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cd_dep_count#156, c_birth_year#160]
Right output [2]: [i_item_sk#165, i_item_id#166]
Arguments: [cs_item_sk#147], [i_item_sk#165], Inner, BuildRight

(115) CometProject
Input [10]: [cs_item_sk#147, cs_quantity#148, cs_list_price#149, cs_sales_price#150, cs_coupon_amt#151, cs_net_profit#152, cd_dep_count#156, c_birth_year#160, i_item_sk#165, i_item_id#166]
Arguments: [i_item_id#166, agg1#167, agg2#168, agg3#169, agg4#170, agg5#171, agg6#172, agg7#173], [i_item_id#166, cast(cs_quantity#148 as decimal(12,2)) AS agg1#167, cast(cs_list_price#149 as decimal(12,2)) AS agg2#168, cast(cs_coupon_amt#151 as decimal(12,2)) AS agg3#169, cast(cs_sales_price#150 as decimal(12,2)) AS agg4#170, cast(cs_net_profit#152 as decimal(12,2)) AS agg5#171, cast(c_birth_year#160 as decimal(12,2)) AS agg6#172, cast(cd_dep_count#156 as decimal(12,2)) AS agg7#173]

(116) CometHashAggregate
Input [8]: [i_item_id#166, agg1#167, agg2#168, agg3#169, agg4#170, agg5#171, agg6#172, agg7#173]
Keys [1]: [i_item_id#166]
Functions [7]: [partial_avg(agg1#167), partial_avg(agg2#168), partial_avg(agg3#169), partial_avg(agg4#170), partial_avg(agg5#171), partial_avg(agg6#172), partial_avg(agg7#173)]

(117) CometExchange
Input [15]: [i_item_id#166, sum#174, count#175, sum#176, count#177, sum#178, count#179, sum#180, count#181, sum#182, count#183, sum#184, count#185, sum#186, count#187]
Arguments: hashpartitioning(i_item_id#166, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=4]

(118) CometHashAggregate
Input [15]: [i_item_id#166, sum#174, count#175, sum#176, count#177, sum#178, count#179, sum#180, count#181, sum#182, count#183, sum#184, count#185, sum#186, count#187]
Keys [1]: [i_item_id#166]
Functions [7]: [avg(agg1#167), avg(agg2#168), avg(agg3#169), avg(agg4#170), avg(agg5#171), avg(agg6#172), avg(agg7#173)]

(119) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
Output [9]: [cs_bill_customer_sk#188, cs_bill_cdemo_sk#189, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#196), dynamicpruningexpression(cs_sold_date_sk#196 IN dynamicpruning#197)]
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)>

(120) CometFilter
Input [9]: [cs_bill_customer_sk#188, cs_bill_cdemo_sk#189, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196]
Condition : ((isnotnull(cs_bill_cdemo_sk#189) AND isnotnull(cs_bill_customer_sk#188)) AND isnotnull(cs_item_sk#190))

(121) ReusedExchange [Reuses operator id: 6]
Output [2]: [cd_demo_sk#198, cd_dep_count#199]

(122) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#188, cs_bill_cdemo_sk#189, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196]
Right output [2]: [cd_demo_sk#198, cd_dep_count#199]
Arguments: [cs_bill_cdemo_sk#189], [cd_demo_sk#198], Inner, BuildRight

(123) CometProject
Input [11]: [cs_bill_customer_sk#188, cs_bill_cdemo_sk#189, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_demo_sk#198, cd_dep_count#199]
Arguments: [cs_bill_customer_sk#188, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199], [cs_bill_customer_sk#188, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199]

(124) ReusedExchange [Reuses operator id: 12]
Output [4]: [c_customer_sk#200, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203]

(125) CometBroadcastHashJoin
Left output [9]: [cs_bill_customer_sk#188, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199]
Right output [4]: [c_customer_sk#200, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203]
Arguments: [cs_bill_customer_sk#188], [c_customer_sk#200], Inner, BuildRight

(126) CometProject
Input [13]: [cs_bill_customer_sk#188, cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_customer_sk#200, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203]
Arguments: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203], [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203]

(127) ReusedExchange [Reuses operator id: 17]
Output [1]: [cd_demo_sk#204]

(128) CometBroadcastHashJoin
Left output [11]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203]
Right output [1]: [cd_demo_sk#204]
Arguments: [c_current_cdemo_sk#201], [cd_demo_sk#204], Inner, BuildRight

(129) CometProject
Input [12]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_cdemo_sk#201, c_current_addr_sk#202, c_birth_year#203, cd_demo_sk#204]
Arguments: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_addr_sk#202, c_birth_year#203], [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_addr_sk#202, c_birth_year#203]

(130) ReusedExchange [Reuses operator id: 107]
Output [1]: [ca_address_sk#205]

(131) CometBroadcastHashJoin
Left output [10]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_addr_sk#202, c_birth_year#203]
Right output [1]: [ca_address_sk#205]
Arguments: [c_current_addr_sk#202], [ca_address_sk#205], Inner, BuildRight

(132) CometProject
Input [11]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_current_addr_sk#202, c_birth_year#203, ca_address_sk#205]
Arguments: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_birth_year#203], [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_birth_year#203]

(133) ReusedExchange [Reuses operator id: 29]
Output [1]: [d_date_sk#206]

(134) CometBroadcastHashJoin
Left output [9]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_birth_year#203]
Right output [1]: [d_date_sk#206]
Arguments: [cs_sold_date_sk#196], [d_date_sk#206], Inner, BuildRight

(135) CometProject
Input [10]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cs_sold_date_sk#196, cd_dep_count#199, c_birth_year#203, d_date_sk#206]
Arguments: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cd_dep_count#199, c_birth_year#203], [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cd_dep_count#199, c_birth_year#203]

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

(137) CometFilter
Input [1]: [i_item_sk#207]
Condition : isnotnull(i_item_sk#207)

(138) CometBroadcastExchange
Input [1]: [i_item_sk#207]
Arguments: [i_item_sk#207]

(139) CometBroadcastHashJoin
Left output [8]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cd_dep_count#199, c_birth_year#203]
Right output [1]: [i_item_sk#207]
Arguments: [cs_item_sk#190], [i_item_sk#207], Inner, BuildRight

(140) CometProject
Input [9]: [cs_item_sk#190, cs_quantity#191, cs_list_price#192, cs_sales_price#193, cs_coupon_amt#194, cs_net_profit#195, cd_dep_count#199, c_birth_year#203, i_item_sk#207]
Arguments: [agg1#208, agg2#209, agg3#210, agg4#211, agg5#212, agg6#213, agg7#214], [cast(cs_quantity#191 as decimal(12,2)) AS agg1#208, cast(cs_list_price#192 as decimal(12,2)) AS agg2#209, cast(cs_coupon_amt#194 as decimal(12,2)) AS agg3#210, cast(cs_sales_price#193 as decimal(12,2)) AS agg4#211, cast(cs_net_profit#195 as decimal(12,2)) AS agg5#212, cast(c_birth_year#203 as decimal(12,2)) AS agg6#213, cast(cd_dep_count#199 as decimal(12,2)) AS agg7#214]

(141) CometHashAggregate
Input [7]: [agg1#208, agg2#209, agg3#210, agg4#211, agg5#212, agg6#213, agg7#214]
Keys: []
Functions [7]: [partial_avg(agg1#208), partial_avg(agg2#209), partial_avg(agg3#210), partial_avg(agg4#211), partial_avg(agg5#212), partial_avg(agg6#213), partial_avg(agg7#214)]

(142) CometExchange
Input [14]: [sum#215, count#216, sum#217, count#218, sum#219, count#220, sum#221, count#222, sum#223, count#224, sum#225, count#226, sum#227, count#228]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=5]

(143) CometHashAggregate
Input [14]: [sum#215, count#216, sum#217, count#218, sum#219, count#220, sum#221, count#222, sum#223, count#224, sum#225, count#226, sum#227, count#228]
Keys: []
Functions [7]: [avg(agg1#208), avg(agg2#209), avg(agg3#210), avg(agg4#211), avg(agg5#212), avg(agg6#213), avg(agg7#214)]

(144) CometUnion
Child 0 Input [11]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#229, agg2#230, agg3#231, agg4#232, agg5#233, agg6#234, agg7#235]
Child 1 Input [11]: [i_item_id#79, ca_country#75, ca_state#76, county#236, agg1#237, agg2#238, agg3#239, agg4#240, agg5#241, agg6#242, agg7#243]
Child 2 Input [11]: [i_item_id#123, ca_country#120, ca_state#244, county#245, agg1#246, agg2#247, agg3#248, agg4#249, agg5#250, agg6#251, agg7#252]
Child 3 Input [11]: [i_item_id#166, ca_country#253, ca_state#254, county#255, agg1#256, agg2#257, agg3#258, agg4#259, agg5#260, agg6#261, agg7#262]
Child 4 Input [11]: [i_item_id#263, ca_country#264, ca_state#265, county#266, agg1#267, agg2#268, agg3#269, agg4#270, agg5#271, agg6#272, agg7#273]

(145) CometTakeOrderedAndProject
Input [11]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#229, agg2#230, agg3#231, agg4#232, agg5#233, agg6#234, agg7#235]
Arguments: TakeOrderedAndProject(limit=100, orderBy=[ca_country#32 ASC NULLS FIRST,ca_state#33 ASC NULLS FIRST,ca_county#34 ASC NULLS FIRST,i_item_id#31 ASC NULLS FIRST], output=[i_item_id#31,ca_country#32,ca_state#33,ca_county#34,agg1#229,agg2#230,agg3#231,agg4#232,agg5#233,agg6#234,agg7#235]), [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#229, agg2#230, agg3#231, agg4#232, agg5#233, agg6#234, agg7#235], 100, 0, [ca_country#32 ASC NULLS FIRST, ca_state#33 ASC NULLS FIRST, ca_county#34 ASC NULLS FIRST, i_item_id#31 ASC NULLS FIRST], [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#229, agg2#230, agg3#231, agg4#232, agg5#233, agg6#234, agg7#235]

(146) CometColumnarToRow [codegen id : 1]
Input [11]: [i_item_id#31, ca_country#32, ca_state#33, ca_county#34, agg1#229, agg2#230, agg3#231, agg4#232, agg5#233, agg6#234, agg7#235]

===== Subqueries =====

Subquery:1 Hosting operator id = 1 Hosting Expression = cs_sold_date_sk#9 IN dynamicpruning#10
BroadcastExchange (151)
+- * CometColumnarToRow (150)
   +- CometProject (149)
      +- CometFilter (148)
         +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (147)


(147) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
Output [2]: [d_date_sk#26, d_year#27]
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>

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

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

(150) CometColumnarToRow [codegen id : 1]
Input [1]: [d_date_sk#26]

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

Subquery:2 Hosting operator id = 41 Hosting Expression = cs_sold_date_sk#64 IN dynamicpruning#10

Subquery:3 Hosting operator id = 67 Hosting Expression = cs_sold_date_sk#109 IN dynamicpruning#10

Subquery:4 Hosting operator id = 93 Hosting Expression = cs_sold_date_sk#153 IN dynamicpruning#10

Subquery:5 Hosting operator id = 119 Hosting Expression = cs_sold_date_sk#196 IN dynamicpruning#10


