== Physical Plan ==
* CometColumnarToRow (51)
+- CometTakeOrderedAndProject (50)
   +- CometHashAggregate (49)
      +- CometExchange (48)
         +- CometHashAggregate (47)
            +- CometUnion (46)
               :- CometHashAggregate (28)
               :  +- CometExchange (27)
               :     +- CometHashAggregate (26)
               :        +- CometProject (25)
               :           +- CometBroadcastHashJoin (24)
               :              :- CometProject (19)
               :              :  +- CometBroadcastHashJoin (18)
               :              :     :- CometProject (13)
               :              :     :  +- CometBroadcastHashJoin (12)
               :              :     :     :- CometProject (8)
               :              :     :     :  +- CometBroadcastHashJoin (7)
               :              :     :     :     :- CometFilter (2)
               :              :     :     :     :  +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (1)
               :              :     :     :     +- CometBroadcastExchange (6)
               :              :     :     :        +- CometProject (5)
               :              :     :     :           +- CometFilter (4)
               :              :     :     :              +- CometScan [native_iceberg_compat] parquet spark_catalog.default.warehouse (3)
               :              :     :     +- CometBroadcastExchange (11)
               :              :     :        +- CometFilter (10)
               :              :     :           +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (9)
               :              :     +- CometBroadcastExchange (17)
               :              :        +- CometProject (16)
               :              :           +- CometFilter (15)
               :              :              +- CometScan [native_iceberg_compat] parquet spark_catalog.default.time_dim (14)
               :              +- CometBroadcastExchange (23)
               :                 +- CometProject (22)
               :                    +- CometFilter (21)
               :                       +- CometScan [native_iceberg_compat] parquet spark_catalog.default.ship_mode (20)
               +- CometHashAggregate (45)
                  +- CometExchange (44)
                     +- CometHashAggregate (43)
                        +- CometProject (42)
                           +- CometBroadcastHashJoin (41)
                              :- CometProject (39)
                              :  +- CometBroadcastHashJoin (38)
                              :     :- CometProject (36)
                              :     :  +- CometBroadcastHashJoin (35)
                              :     :     :- CometProject (33)
                              :     :     :  +- CometBroadcastHashJoin (32)
                              :     :     :     :- CometFilter (30)
                              :     :     :     :  +- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales (29)
                              :     :     :     +- ReusedExchange (31)
                              :     :     +- ReusedExchange (34)
                              :     +- ReusedExchange (37)
                              +- ReusedExchange (40)


(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
Output [7]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_warehouse_sk#3, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(ws_sold_date_sk#7), dynamicpruningexpression(ws_sold_date_sk#7 IN dynamicpruning#8)]
PushedFilters: [IsNotNull(ws_warehouse_sk), IsNotNull(ws_sold_time_sk), IsNotNull(ws_ship_mode_sk)]
ReadSchema: struct<ws_sold_time_sk:int,ws_ship_mode_sk:int,ws_warehouse_sk:int,ws_quantity:int,ws_ext_sales_price:decimal(7,2),ws_net_paid:decimal(7,2)>

(2) CometFilter
Input [7]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_warehouse_sk#3, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7]
Condition : ((isnotnull(ws_warehouse_sk#3) AND isnotnull(ws_sold_time_sk#1)) AND isnotnull(ws_ship_mode_sk#2))

(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.warehouse
Output [7]: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#14, w_country#15]
Batched: true
Location [not included in comparison]/{warehouse_dir}/warehouse]
PushedFilters: [IsNotNull(w_warehouse_sk)]
ReadSchema: struct<w_warehouse_sk:int,w_warehouse_name:string,w_warehouse_sq_ft:int,w_city:string,w_county:string,w_state:string,w_country:string>

(4) CometFilter
Input [7]: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#14, w_country#15]
Condition : isnotnull(w_warehouse_sk#9)

(5) CometProject
Input [7]: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#14, w_country#15]
Arguments: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15], [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, w_state#14, 2, true, false, true) AS w_state#16, w_country#15]

(6) CometBroadcastExchange
Input [7]: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]
Arguments: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]

(7) CometBroadcastHashJoin
Left output [7]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_warehouse_sk#3, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7]
Right output [7]: [w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]
Arguments: [ws_warehouse_sk#3], [w_warehouse_sk#9], Inner, BuildRight

(8) CometProject
Input [14]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_warehouse_sk#3, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7, w_warehouse_sk#9, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]
Arguments: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15], [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]

(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
Output [3]: [d_date_sk#17, d_year#18, d_moy#19]
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,d_moy:int>

(10) CometFilter
Input [3]: [d_date_sk#17, d_year#18, d_moy#19]
Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))

(11) CometBroadcastExchange
Input [3]: [d_date_sk#17, d_year#18, d_moy#19]
Arguments: [d_date_sk#17, d_year#18, d_moy#19]

(12) CometBroadcastHashJoin
Left output [12]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15]
Right output [3]: [d_date_sk#17, d_year#18, d_moy#19]
Arguments: [ws_sold_date_sk#7], [d_date_sk#17], Inner, BuildRight

(13) CometProject
Input [15]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, ws_sold_date_sk#7, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_date_sk#17, d_year#18, d_moy#19]
Arguments: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19], [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]

(14) CometScan [native_iceberg_compat] parquet spark_catalog.default.time_dim
Output [2]: [t_time_sk#20, t_time#21]
Batched: true
Location [not included in comparison]/{warehouse_dir}/time_dim]
PushedFilters: [IsNotNull(t_time), GreaterThanOrEqual(t_time,30838), LessThanOrEqual(t_time,59638), IsNotNull(t_time_sk)]
ReadSchema: struct<t_time_sk:int,t_time:int>

(15) CometFilter
Input [2]: [t_time_sk#20, t_time#21]
Condition : (((isnotnull(t_time#21) AND (t_time#21 >= 30838)) AND (t_time#21 <= 59638)) AND isnotnull(t_time_sk#20))

(16) CometProject
Input [2]: [t_time_sk#20, t_time#21]
Arguments: [t_time_sk#20], [t_time_sk#20]

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

(18) CometBroadcastHashJoin
Left output [13]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]
Right output [1]: [t_time_sk#20]
Arguments: [ws_sold_time_sk#1], [t_time_sk#20], Inner, BuildRight

(19) CometProject
Input [14]: [ws_sold_time_sk#1, ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19, t_time_sk#20]
Arguments: [ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19], [ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]

(20) CometScan [native_iceberg_compat] parquet spark_catalog.default.ship_mode
Output [2]: [sm_ship_mode_sk#22, sm_carrier#23]
Batched: true
Location [not included in comparison]/{warehouse_dir}/ship_mode]
PushedFilters: [IsNotNull(sm_ship_mode_sk)]
ReadSchema: struct<sm_ship_mode_sk:int,sm_carrier:string>

(21) CometFilter
Input [2]: [sm_ship_mode_sk#22, sm_carrier#23]
Condition : (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, sm_carrier#23, 20, true, false, true) IN (DHL                 ,BARIAN              ) AND isnotnull(sm_ship_mode_sk#22))

(22) CometProject
Input [2]: [sm_ship_mode_sk#22, sm_carrier#23]
Arguments: [sm_ship_mode_sk#22], [sm_ship_mode_sk#22]

(23) CometBroadcastExchange
Input [1]: [sm_ship_mode_sk#22]
Arguments: [sm_ship_mode_sk#22]

(24) CometBroadcastHashJoin
Left output [12]: [ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]
Right output [1]: [sm_ship_mode_sk#22]
Arguments: [ws_ship_mode_sk#2], [sm_ship_mode_sk#22], Inner, BuildRight

(25) CometProject
Input [13]: [ws_ship_mode_sk#2, ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19, sm_ship_mode_sk#22]
Arguments: [ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19], [ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]

(26) CometHashAggregate
Input [11]: [ws_quantity#4, ws_ext_sales_price#5, ws_net_paid#6, w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, d_moy#19]
Keys [7]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18]
Functions [24]: [partial_sum(CASE WHEN (d_moy#19 = 1) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 2) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 3) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 4) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 5) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 6) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 7) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 8) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 9) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 10) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 11) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 12) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 1) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 2) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 3) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 4) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 5) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 6) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 7) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 8) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 9) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 10) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 11) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#19 = 12) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END)]

(27) CometExchange
Input [55]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, sum#24, isEmpty#25, sum#26, isEmpty#27, sum#28, isEmpty#29, sum#30, isEmpty#31, sum#32, isEmpty#33, sum#34, isEmpty#35, sum#36, isEmpty#37, sum#38, isEmpty#39, sum#40, isEmpty#41, sum#42, isEmpty#43, sum#44, isEmpty#45, sum#46, isEmpty#47, sum#48, isEmpty#49, sum#50, isEmpty#51, sum#52, isEmpty#53, sum#54, isEmpty#55, sum#56, isEmpty#57, sum#58, isEmpty#59, sum#60, isEmpty#61, sum#62, isEmpty#63, sum#64, isEmpty#65, sum#66, isEmpty#67, sum#68, isEmpty#69, sum#70, isEmpty#71]
Arguments: hashpartitioning(w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]

(28) CometHashAggregate
Input [55]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18, sum#24, isEmpty#25, sum#26, isEmpty#27, sum#28, isEmpty#29, sum#30, isEmpty#31, sum#32, isEmpty#33, sum#34, isEmpty#35, sum#36, isEmpty#37, sum#38, isEmpty#39, sum#40, isEmpty#41, sum#42, isEmpty#43, sum#44, isEmpty#45, sum#46, isEmpty#47, sum#48, isEmpty#49, sum#50, isEmpty#51, sum#52, isEmpty#53, sum#54, isEmpty#55, sum#56, isEmpty#57, sum#58, isEmpty#59, sum#60, isEmpty#61, sum#62, isEmpty#63, sum#64, isEmpty#65, sum#66, isEmpty#67, sum#68, isEmpty#69, sum#70, isEmpty#71]
Keys [7]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, d_year#18]
Functions [24]: [sum(CASE WHEN (d_moy#19 = 1) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 2) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 3) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 4) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 5) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 6) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 7) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 8) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 9) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 10) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 11) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 12) THEN (ws_ext_sales_price#5 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 1) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 2) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 3) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 4) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 5) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 6) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 7) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 8) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 9) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 10) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 11) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#19 = 12) THEN (ws_net_paid#6 * cast(ws_quantity#4 as decimal(10,0))) ELSE 0.00 END)]

(29) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
Output [7]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_warehouse_sk#74, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(cs_sold_date_sk#78), dynamicpruningexpression(cs_sold_date_sk#78 IN dynamicpruning#79)]
PushedFilters: [IsNotNull(cs_warehouse_sk), IsNotNull(cs_sold_time_sk), IsNotNull(cs_ship_mode_sk)]
ReadSchema: struct<cs_sold_time_sk:int,cs_ship_mode_sk:int,cs_warehouse_sk:int,cs_quantity:int,cs_sales_price:decimal(7,2),cs_net_paid_inc_tax:decimal(7,2)>

(30) CometFilter
Input [7]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_warehouse_sk#74, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78]
Condition : ((isnotnull(cs_warehouse_sk#74) AND isnotnull(cs_sold_time_sk#72)) AND isnotnull(cs_ship_mode_sk#73))

(31) ReusedExchange [Reuses operator id: 6]
Output [7]: [w_warehouse_sk#80, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86]

(32) CometBroadcastHashJoin
Left output [7]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_warehouse_sk#74, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78]
Right output [7]: [w_warehouse_sk#80, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86]
Arguments: [cs_warehouse_sk#74], [w_warehouse_sk#80], Inner, BuildRight

(33) CometProject
Input [14]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_warehouse_sk#74, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78, w_warehouse_sk#80, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86]
Arguments: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86], [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86]

(34) ReusedExchange [Reuses operator id: 11]
Output [3]: [d_date_sk#87, d_year#88, d_moy#89]

(35) CometBroadcastHashJoin
Left output [12]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86]
Right output [3]: [d_date_sk#87, d_year#88, d_moy#89]
Arguments: [cs_sold_date_sk#78], [d_date_sk#87], Inner, BuildRight

(36) CometProject
Input [15]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, cs_sold_date_sk#78, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_date_sk#87, d_year#88, d_moy#89]
Arguments: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89], [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]

(37) ReusedExchange [Reuses operator id: 17]
Output [1]: [t_time_sk#90]

(38) CometBroadcastHashJoin
Left output [13]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]
Right output [1]: [t_time_sk#90]
Arguments: [cs_sold_time_sk#72], [t_time_sk#90], Inner, BuildRight

(39) CometProject
Input [14]: [cs_sold_time_sk#72, cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89, t_time_sk#90]
Arguments: [cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89], [cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]

(40) ReusedExchange [Reuses operator id: 23]
Output [1]: [sm_ship_mode_sk#91]

(41) CometBroadcastHashJoin
Left output [12]: [cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]
Right output [1]: [sm_ship_mode_sk#91]
Arguments: [cs_ship_mode_sk#73], [sm_ship_mode_sk#91], Inner, BuildRight

(42) CometProject
Input [13]: [cs_ship_mode_sk#73, cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89, sm_ship_mode_sk#91]
Arguments: [cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89], [cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]

(43) CometHashAggregate
Input [11]: [cs_quantity#75, cs_sales_price#76, cs_net_paid_inc_tax#77, w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, d_moy#89]
Keys [7]: [w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88]
Functions [24]: [partial_sum(CASE WHEN (d_moy#89 = 1) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 2) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 3) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 4) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 5) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 6) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 7) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 8) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 9) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 10) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 11) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 12) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 1) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 2) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 3) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 4) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 5) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 6) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 7) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 8) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 9) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 10) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 11) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), partial_sum(CASE WHEN (d_moy#89 = 12) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END)]

(44) CometExchange
Input [55]: [w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, sum#92, isEmpty#93, sum#94, isEmpty#95, sum#96, isEmpty#97, sum#98, isEmpty#99, sum#100, isEmpty#101, sum#102, isEmpty#103, sum#104, isEmpty#105, sum#106, isEmpty#107, sum#108, isEmpty#109, sum#110, isEmpty#111, sum#112, isEmpty#113, sum#114, isEmpty#115, sum#116, isEmpty#117, sum#118, isEmpty#119, sum#120, isEmpty#121, sum#122, isEmpty#123, sum#124, isEmpty#125, sum#126, isEmpty#127, sum#128, isEmpty#129, sum#130, isEmpty#131, sum#132, isEmpty#133, sum#134, isEmpty#135, sum#136, isEmpty#137, sum#138, isEmpty#139]
Arguments: hashpartitioning(w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]

(45) CometHashAggregate
Input [55]: [w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88, sum#92, isEmpty#93, sum#94, isEmpty#95, sum#96, isEmpty#97, sum#98, isEmpty#99, sum#100, isEmpty#101, sum#102, isEmpty#103, sum#104, isEmpty#105, sum#106, isEmpty#107, sum#108, isEmpty#109, sum#110, isEmpty#111, sum#112, isEmpty#113, sum#114, isEmpty#115, sum#116, isEmpty#117, sum#118, isEmpty#119, sum#120, isEmpty#121, sum#122, isEmpty#123, sum#124, isEmpty#125, sum#126, isEmpty#127, sum#128, isEmpty#129, sum#130, isEmpty#131, sum#132, isEmpty#133, sum#134, isEmpty#135, sum#136, isEmpty#137, sum#138, isEmpty#139]
Keys [7]: [w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, d_year#88]
Functions [24]: [sum(CASE WHEN (d_moy#89 = 1) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 2) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 3) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 4) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 5) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 6) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 7) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 8) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 9) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 10) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 11) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 12) THEN (cs_sales_price#76 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 1) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 2) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 3) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 4) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 5) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 6) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 7) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 8) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 9) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 10) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 11) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#89 = 12) THEN (cs_net_paid_inc_tax#77 * cast(cs_quantity#75 as decimal(10,0))) ELSE 0.00 END)]

(46) CometUnion
Child 0 Input [32]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#142, feb_sales#143, mar_sales#144, apr_sales#145, may_sales#146, jun_sales#147, jul_sales#148, aug_sales#149, sep_sales#150, oct_sales#151, nov_sales#152, dec_sales#153, jan_net#154, feb_net#155, mar_net#156, apr_net#157, may_net#158, jun_net#159, jul_net#160, aug_net#161, sep_net#162, oct_net#163, nov_net#164, dec_net#165]
Child 1 Input [32]: [w_warehouse_name#81, w_warehouse_sq_ft#82, w_city#83, w_county#84, w_state#85, w_country#86, ship_carriers#166, year#167, jan_sales#168, feb_sales#169, mar_sales#170, apr_sales#171, may_sales#172, jun_sales#173, jul_sales#174, aug_sales#175, sep_sales#176, oct_sales#177, nov_sales#178, dec_sales#179, jan_net#180, feb_net#181, mar_net#182, apr_net#183, may_net#184, jun_net#185, jul_net#186, aug_net#187, sep_net#188, oct_net#189, nov_net#190, dec_net#191]

(47) CometHashAggregate
Input [32]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#142, feb_sales#143, mar_sales#144, apr_sales#145, may_sales#146, jun_sales#147, jul_sales#148, aug_sales#149, sep_sales#150, oct_sales#151, nov_sales#152, dec_sales#153, jan_net#154, feb_net#155, mar_net#156, apr_net#157, may_net#158, jun_net#159, jul_net#160, aug_net#161, sep_net#162, oct_net#163, nov_net#164, dec_net#165]
Keys [8]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141]
Functions [36]: [partial_sum(jan_sales#142), partial_sum(feb_sales#143), partial_sum(mar_sales#144), partial_sum(apr_sales#145), partial_sum(may_sales#146), partial_sum(jun_sales#147), partial_sum(jul_sales#148), partial_sum(aug_sales#149), partial_sum(sep_sales#150), partial_sum(oct_sales#151), partial_sum(nov_sales#152), partial_sum(dec_sales#153), partial_sum((jan_sales#142 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((feb_sales#143 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((mar_sales#144 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((apr_sales#145 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((may_sales#146 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((jun_sales#147 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((jul_sales#148 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((aug_sales#149 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((sep_sales#150 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((oct_sales#151 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((nov_sales#152 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum((dec_sales#153 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), partial_sum(jan_net#154), partial_sum(feb_net#155), partial_sum(mar_net#156), partial_sum(apr_net#157), partial_sum(may_net#158), partial_sum(jun_net#159), partial_sum(jul_net#160), partial_sum(aug_net#161), partial_sum(sep_net#162), partial_sum(oct_net#163), partial_sum(nov_net#164), partial_sum(dec_net#165)]

(48) CometExchange
Input [80]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, sum#192, isEmpty#193, sum#194, isEmpty#195, sum#196, isEmpty#197, sum#198, isEmpty#199, sum#200, isEmpty#201, sum#202, isEmpty#203, sum#204, isEmpty#205, sum#206, isEmpty#207, sum#208, isEmpty#209, sum#210, isEmpty#211, sum#212, isEmpty#213, sum#214, isEmpty#215, sum#216, isEmpty#217, sum#218, isEmpty#219, sum#220, isEmpty#221, sum#222, isEmpty#223, sum#224, isEmpty#225, sum#226, isEmpty#227, sum#228, isEmpty#229, sum#230, isEmpty#231, sum#232, isEmpty#233, sum#234, isEmpty#235, sum#236, isEmpty#237, sum#238, isEmpty#239, sum#240, isEmpty#241, sum#242, isEmpty#243, sum#244, isEmpty#245, sum#246, isEmpty#247, sum#248, isEmpty#249, sum#250, isEmpty#251, sum#252, isEmpty#253, sum#254, isEmpty#255, sum#256, isEmpty#257, sum#258, isEmpty#259, sum#260, isEmpty#261, sum#262, isEmpty#263]
Arguments: hashpartitioning(w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]

(49) CometHashAggregate
Input [80]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, sum#192, isEmpty#193, sum#194, isEmpty#195, sum#196, isEmpty#197, sum#198, isEmpty#199, sum#200, isEmpty#201, sum#202, isEmpty#203, sum#204, isEmpty#205, sum#206, isEmpty#207, sum#208, isEmpty#209, sum#210, isEmpty#211, sum#212, isEmpty#213, sum#214, isEmpty#215, sum#216, isEmpty#217, sum#218, isEmpty#219, sum#220, isEmpty#221, sum#222, isEmpty#223, sum#224, isEmpty#225, sum#226, isEmpty#227, sum#228, isEmpty#229, sum#230, isEmpty#231, sum#232, isEmpty#233, sum#234, isEmpty#235, sum#236, isEmpty#237, sum#238, isEmpty#239, sum#240, isEmpty#241, sum#242, isEmpty#243, sum#244, isEmpty#245, sum#246, isEmpty#247, sum#248, isEmpty#249, sum#250, isEmpty#251, sum#252, isEmpty#253, sum#254, isEmpty#255, sum#256, isEmpty#257, sum#258, isEmpty#259, sum#260, isEmpty#261, sum#262, isEmpty#263]
Keys [8]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141]
Functions [36]: [sum(jan_sales#142), sum(feb_sales#143), sum(mar_sales#144), sum(apr_sales#145), sum(may_sales#146), sum(jun_sales#147), sum(jul_sales#148), sum(aug_sales#149), sum(sep_sales#150), sum(oct_sales#151), sum(nov_sales#152), sum(dec_sales#153), sum((jan_sales#142 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((feb_sales#143 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((mar_sales#144 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((apr_sales#145 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((may_sales#146 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((jun_sales#147 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((jul_sales#148 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((aug_sales#149 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((sep_sales#150 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((oct_sales#151 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((nov_sales#152 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum((dec_sales#153 / cast(w_warehouse_sq_ft#11 as decimal(10,0)))), sum(jan_net#154), sum(feb_net#155), sum(mar_net#156), sum(apr_net#157), sum(may_net#158), sum(jun_net#159), sum(jul_net#160), sum(aug_net#161), sum(sep_net#162), sum(oct_net#163), sum(nov_net#164), sum(dec_net#165)]

(50) CometTakeOrderedAndProject
Input [44]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#264, feb_sales#265, mar_sales#266, apr_sales#267, may_sales#268, jun_sales#269, jul_sales#270, aug_sales#271, sep_sales#272, oct_sales#273, nov_sales#274, dec_sales#275, jan_sales_per_sq_foot#276, feb_sales_per_sq_foot#277, mar_sales_per_sq_foot#278, apr_sales_per_sq_foot#279, may_sales_per_sq_foot#280, jun_sales_per_sq_foot#281, jul_sales_per_sq_foot#282, aug_sales_per_sq_foot#283, sep_sales_per_sq_foot#284, oct_sales_per_sq_foot#285, nov_sales_per_sq_foot#286, dec_sales_per_sq_foot#287, jan_net#288, feb_net#289, mar_net#290, apr_net#291, may_net#292, jun_net#293, jul_net#294, aug_net#295, sep_net#296, oct_net#297, nov_net#298, dec_net#299]
Arguments: TakeOrderedAndProject(limit=100, orderBy=[w_warehouse_name#10 ASC NULLS FIRST], output=[w_warehouse_name#10,w_warehouse_sq_ft#11,w_city#12,w_county#13,w_state#16,w_country#15,ship_carriers#140,year#141,jan_sales#264,feb_sales#265,mar_sales#266,apr_sales#267,may_sales#268,jun_sales#269,jul_sales#270,aug_sales#271,sep_sales#272,oct_sales#273,nov_sales#274,dec_sales#275,jan_sales_per_sq_foot#276,feb_sales_per_sq_foot#277,mar_sales_per_sq_foot#278,apr_sales_per_sq_foot#279,may_sales_per_sq_foot#280,jun_sales_per_sq_foot#281,jul_sales_per_sq_foot#282,aug_sales_per_sq_foot#283,sep_sales_per_sq_foot#284,oct_sales_per_sq_foot#285,nov_sales_per_sq_foot#286,dec_sales_per_sq_foot#287,jan_net#288,feb_net#289,mar_net#290,apr_net#291,may_net#292,jun_net#293,jul_net#294,aug_net#295,sep_net#296,oct_net#297,nov_net#298,dec_net#299]), [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#264, feb_sales#265, mar_sales#266, apr_sales#267, may_sales#268, jun_sales#269, jul_sales#270, aug_sales#271, sep_sales#272, oct_sales#273, nov_sales#274, dec_sales#275, jan_sales_per_sq_foot#276, feb_sales_per_sq_foot#277, mar_sales_per_sq_foot#278, apr_sales_per_sq_foot#279, may_sales_per_sq_foot#280, jun_sales_per_sq_foot#281, jul_sales_per_sq_foot#282, aug_sales_per_sq_foot#283, sep_sales_per_sq_foot#284, oct_sales_per_sq_foot#285, nov_sales_per_sq_foot#286, dec_sales_per_sq_foot#287, jan_net#288, feb_net#289, mar_net#290, apr_net#291, may_net#292, jun_net#293, jul_net#294, aug_net#295, sep_net#296, oct_net#297, nov_net#298, dec_net#299], 100, 0, [w_warehouse_name#10 ASC NULLS FIRST], [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#264, feb_sales#265, mar_sales#266, apr_sales#267, may_sales#268, jun_sales#269, jul_sales#270, aug_sales#271, sep_sales#272, oct_sales#273, nov_sales#274, dec_sales#275, jan_sales_per_sq_foot#276, feb_sales_per_sq_foot#277, mar_sales_per_sq_foot#278, apr_sales_per_sq_foot#279, may_sales_per_sq_foot#280, jun_sales_per_sq_foot#281, jul_sales_per_sq_foot#282, aug_sales_per_sq_foot#283, sep_sales_per_sq_foot#284, oct_sales_per_sq_foot#285, nov_sales_per_sq_foot#286, dec_sales_per_sq_foot#287, jan_net#288, feb_net#289, mar_net#290, apr_net#291, may_net#292, jun_net#293, jul_net#294, aug_net#295, sep_net#296, oct_net#297, nov_net#298, dec_net#299]

(51) CometColumnarToRow [codegen id : 1]
Input [44]: [w_warehouse_name#10, w_warehouse_sq_ft#11, w_city#12, w_county#13, w_state#16, w_country#15, ship_carriers#140, year#141, jan_sales#264, feb_sales#265, mar_sales#266, apr_sales#267, may_sales#268, jun_sales#269, jul_sales#270, aug_sales#271, sep_sales#272, oct_sales#273, nov_sales#274, dec_sales#275, jan_sales_per_sq_foot#276, feb_sales_per_sq_foot#277, mar_sales_per_sq_foot#278, apr_sales_per_sq_foot#279, may_sales_per_sq_foot#280, jun_sales_per_sq_foot#281, jul_sales_per_sq_foot#282, aug_sales_per_sq_foot#283, sep_sales_per_sq_foot#284, oct_sales_per_sq_foot#285, nov_sales_per_sq_foot#286, dec_sales_per_sq_foot#287, jan_net#288, feb_net#289, mar_net#290, apr_net#291, may_net#292, jun_net#293, jul_net#294, aug_net#295, sep_net#296, oct_net#297, nov_net#298, dec_net#299]

===== Subqueries =====

Subquery:1 Hosting operator id = 1 Hosting Expression = ws_sold_date_sk#7 IN dynamicpruning#8
BroadcastExchange (55)
+- * CometColumnarToRow (54)
   +- CometFilter (53)
      +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (52)


(52) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
Output [3]: [d_date_sk#17, d_year#18, d_moy#19]
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,d_moy:int>

(53) CometFilter
Input [3]: [d_date_sk#17, d_year#18, d_moy#19]
Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))

(54) CometColumnarToRow [codegen id : 1]
Input [3]: [d_date_sk#17, d_year#18, d_moy#19]

(55) BroadcastExchange
Input [3]: [d_date_sk#17, d_year#18, d_moy#19]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=4]

Subquery:2 Hosting operator id = 29 Hosting Expression = cs_sold_date_sk#78 IN dynamicpruning#8


