== Physical Plan ==
* CometColumnarToRow (186)
+- CometSort (185)
   +- CometColumnarExchange (184)
      +- CometProject (183)
         +- CometSortMergeJoin (182)
            :- CometSort (113)
            :  +- CometColumnarExchange (112)
            :     +- * HashAggregate (111)
            :        +- * HashAggregate (110)
            :           +- * Project (109)
            :              +- * BroadcastHashJoin Inner BuildRight (108)
            :                 :- * Project (102)
            :                 :  +- * BroadcastHashJoin Inner BuildRight (101)
            :                 :     :- * Project (99)
            :                 :     :  +- * BroadcastHashJoin Inner BuildRight (98)
            :                 :     :     :- * Project (93)
            :                 :     :     :  +- * BroadcastHashJoin Inner BuildRight (92)
            :                 :     :     :     :- * Project (90)
            :                 :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (89)
            :                 :     :     :     :     :- * Project (83)
            :                 :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (82)
            :                 :     :     :     :     :     :- * Project (80)
            :                 :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (79)
            :                 :     :     :     :     :     :     :- * Project (74)
            :                 :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (73)
            :                 :     :     :     :     :     :     :     :- * Project (68)
            :                 :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (67)
            :                 :     :     :     :     :     :     :     :     :- * Project (65)
            :                 :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (64)
            :                 :     :     :     :     :     :     :     :     :     :- * Project (58)
            :                 :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (57)
            :                 :     :     :     :     :     :     :     :     :     :     :- * Project (55)
            :                 :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (54)
            :                 :     :     :     :     :     :     :     :     :     :     :     :- * Project (49)
            :                 :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (48)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (43)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (42)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (36)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (35)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (33)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- * SortMergeJoin Inner (32)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :- * CometColumnarToRow (11)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- CometSort (10)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- CometExchange (9)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :        +- CometProject (8)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :           +- CometBroadcastHashJoin (7)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :- CometBroadcastExchange (3)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :  +- CometFilter (2)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :     +- CometScan parquet spark_catalog.default.store_sales (1)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              +- CometProject (6)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                 +- CometFilter (5)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                    +- CometScan parquet spark_catalog.default.store_returns (4)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- * Sort (31)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :        +- * Project (30)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :           +- * Filter (29)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              +- * HashAggregate (28)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                 +- * CometColumnarToRow (27)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                    +- CometColumnarExchange (26)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                       +- * HashAggregate (25)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                          +- * CometColumnarToRow (24)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                             +- CometProject (23)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                +- CometSortMergeJoin (22)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   :- CometSort (16)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   :  +- CometExchange (15)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   :     +- CometProject (14)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   :        +- CometFilter (13)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   :           +- CometScan parquet spark_catalog.default.catalog_sales (12)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                   +- CometSort (21)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                      +- CometExchange (20)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                         +- CometProject (19)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                            +- CometFilter (18)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                                               +- CometScan parquet spark_catalog.default.catalog_returns (17)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (34)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :     +- BroadcastExchange (41)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :        +- * CometColumnarToRow (40)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :           +- CometProject (39)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :              +- CometFilter (38)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     :                 +- CometScan parquet spark_catalog.default.store (37)
            :                 :     :     :     :     :     :     :     :     :     :     :     :     +- BroadcastExchange (47)
            :                 :     :     :     :     :     :     :     :     :     :     :     :        +- * CometColumnarToRow (46)
            :                 :     :     :     :     :     :     :     :     :     :     :     :           +- CometFilter (45)
            :                 :     :     :     :     :     :     :     :     :     :     :     :              +- CometScan parquet spark_catalog.default.customer (44)
            :                 :     :     :     :     :     :     :     :     :     :     :     +- BroadcastExchange (53)
            :                 :     :     :     :     :     :     :     :     :     :     :        +- * CometColumnarToRow (52)
            :                 :     :     :     :     :     :     :     :     :     :     :           +- CometFilter (51)
            :                 :     :     :     :     :     :     :     :     :     :     :              +- CometScan parquet spark_catalog.default.date_dim (50)
            :                 :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (56)
            :                 :     :     :     :     :     :     :     :     :     +- BroadcastExchange (63)
            :                 :     :     :     :     :     :     :     :     :        +- * CometColumnarToRow (62)
            :                 :     :     :     :     :     :     :     :     :           +- CometProject (61)
            :                 :     :     :     :     :     :     :     :     :              +- CometFilter (60)
            :                 :     :     :     :     :     :     :     :     :                 +- CometScan parquet spark_catalog.default.customer_demographics (59)
            :                 :     :     :     :     :     :     :     :     +- ReusedExchange (66)
            :                 :     :     :     :     :     :     :     +- BroadcastExchange (72)
            :                 :     :     :     :     :     :     :        +- * CometColumnarToRow (71)
            :                 :     :     :     :     :     :     :           +- CometFilter (70)
            :                 :     :     :     :     :     :     :              +- CometScan parquet spark_catalog.default.promotion (69)
            :                 :     :     :     :     :     :     +- BroadcastExchange (78)
            :                 :     :     :     :     :     :        +- * CometColumnarToRow (77)
            :                 :     :     :     :     :     :           +- CometFilter (76)
            :                 :     :     :     :     :     :              +- CometScan parquet spark_catalog.default.household_demographics (75)
            :                 :     :     :     :     :     +- ReusedExchange (81)
            :                 :     :     :     :     +- BroadcastExchange (88)
            :                 :     :     :     :        +- * CometColumnarToRow (87)
            :                 :     :     :     :           +- CometProject (86)
            :                 :     :     :     :              +- CometFilter (85)
            :                 :     :     :     :                 +- CometScan parquet spark_catalog.default.customer_address (84)
            :                 :     :     :     +- ReusedExchange (91)
            :                 :     :     +- BroadcastExchange (97)
            :                 :     :        +- * CometColumnarToRow (96)
            :                 :     :           +- CometFilter (95)
            :                 :     :              +- CometScan parquet spark_catalog.default.income_band (94)
            :                 :     +- ReusedExchange (100)
            :                 +- BroadcastExchange (107)
            :                    +- * CometColumnarToRow (106)
            :                       +- CometProject (105)
            :                          +- CometFilter (104)
            :                             +- CometScan parquet spark_catalog.default.item (103)
            +- CometSort (181)
               +- CometColumnarExchange (180)
                  +- * HashAggregate (179)
                     +- * HashAggregate (178)
                        +- * Project (177)
                           +- * BroadcastHashJoin Inner BuildRight (176)
                              :- * Project (174)
                              :  +- * BroadcastHashJoin Inner BuildRight (173)
                              :     :- * Project (171)
                              :     :  +- * BroadcastHashJoin Inner BuildRight (170)
                              :     :     :- * Project (168)
                              :     :     :  +- * BroadcastHashJoin Inner BuildRight (167)
                              :     :     :     :- * Project (165)
                              :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (164)
                              :     :     :     :     :- * Project (162)
                              :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (161)
                              :     :     :     :     :     :- * Project (159)
                              :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (158)
                              :     :     :     :     :     :     :- * Project (156)
                              :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (155)
                              :     :     :     :     :     :     :     :- * Project (153)
                              :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (152)
                              :     :     :     :     :     :     :     :     :- * Project (150)
                              :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (149)
                              :     :     :     :     :     :     :     :     :     :- * Project (147)
                              :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (146)
                              :     :     :     :     :     :     :     :     :     :     :- * Project (144)
                              :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (143)
                              :     :     :     :     :     :     :     :     :     :     :     :- * Project (141)
                              :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (140)
                              :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (138)
                              :     :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (137)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (135)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- * BroadcastHashJoin Inner BuildRight (134)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :- * Project (132)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- * SortMergeJoin Inner (131)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :- * CometColumnarToRow (124)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :  +- CometSort (123)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- CometExchange (122)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :        +- CometProject (121)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :           +- CometBroadcastHashJoin (120)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :- CometBroadcastExchange (116)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :  +- CometFilter (115)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              :     +- CometScan parquet spark_catalog.default.store_sales (114)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              +- CometProject (119)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                 +- CometFilter (118)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                    +- CometScan parquet spark_catalog.default.store_returns (117)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- * Sort (130)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :        +- * Project (129)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :           +- * Filter (128)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :              +- * HashAggregate (127)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                 +- * CometColumnarToRow (126)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     :                    +- ReusedExchange (125)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (133)
                              :     :     :     :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (136)
                              :     :     :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (139)
                              :     :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (142)
                              :     :     :     :     :     :     :     :     :     :     +- ReusedExchange (145)
                              :     :     :     :     :     :     :     :     :     +- ReusedExchange (148)
                              :     :     :     :     :     :     :     :     +- ReusedExchange (151)
                              :     :     :     :     :     :     :     +- ReusedExchange (154)
                              :     :     :     :     :     :     +- ReusedExchange (157)
                              :     :     :     :     :     +- ReusedExchange (160)
                              :     :     :     :     +- ReusedExchange (163)
                              :     :     :     +- ReusedExchange (166)
                              :     :     +- ReusedExchange (169)
                              :     +- ReusedExchange (172)
                              +- ReusedExchange (175)


(1) CometScan parquet spark_catalog.default.store_sales
Output [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(ss_sold_date_sk#12), dynamicpruningexpression(ss_sold_date_sk#12 IN dynamicpruning#13)]
PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_ticket_number), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_promo_sk), IsNotNull(ss_hdemo_sk), IsNotNull(ss_addr_sk)]
ReadSchema: struct<ss_item_sk:int,ss_customer_sk:int,ss_cdemo_sk:int,ss_hdemo_sk:int,ss_addr_sk:int,ss_store_sk:int,ss_promo_sk:int,ss_ticket_number:int,ss_wholesale_cost:decimal(7,2),ss_list_price:decimal(7,2),ss_coupon_amt:decimal(7,2)>

(2) CometFilter
Input [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Condition : (((((((isnotnull(ss_item_sk#1) AND isnotnull(ss_ticket_number#8)) AND isnotnull(ss_store_sk#6)) AND isnotnull(ss_customer_sk#2)) AND isnotnull(ss_cdemo_sk#3)) AND isnotnull(ss_promo_sk#7)) AND isnotnull(ss_hdemo_sk#4)) AND isnotnull(ss_addr_sk#5))

(3) CometBroadcastExchange
Input [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Arguments: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]

(4) CometScan parquet spark_catalog.default.store_returns
Output [3]: [sr_item_sk#14, sr_ticket_number#15, sr_returned_date_sk#16]
Batched: true
Location [not included in comparison]/{warehouse_dir}/store_returns]
PushedFilters: [IsNotNull(sr_item_sk), IsNotNull(sr_ticket_number)]
ReadSchema: struct<sr_item_sk:int,sr_ticket_number:int>

(5) CometFilter
Input [3]: [sr_item_sk#14, sr_ticket_number#15, sr_returned_date_sk#16]
Condition : (isnotnull(sr_item_sk#14) AND isnotnull(sr_ticket_number#15))

(6) CometProject
Input [3]: [sr_item_sk#14, sr_ticket_number#15, sr_returned_date_sk#16]
Arguments: [sr_item_sk#14, sr_ticket_number#15], [sr_item_sk#14, sr_ticket_number#15]

(7) CometBroadcastHashJoin
Left output [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Right output [2]: [sr_item_sk#14, sr_ticket_number#15]
Arguments: [ss_item_sk#1, ss_ticket_number#8], [sr_item_sk#14, sr_ticket_number#15], Inner, BuildLeft

(8) CometProject
Input [14]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_ticket_number#8, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12, sr_item_sk#14, sr_ticket_number#15]
Arguments: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12], [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]

(9) CometExchange
Input [11]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Arguments: hashpartitioning(ss_item_sk#1, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]

(10) CometSort
Input [11]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Arguments: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12], [ss_item_sk#1 ASC NULLS FIRST]

(11) CometColumnarToRow [codegen id : 1]
Input [11]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]

(12) CometScan parquet spark_catalog.default.catalog_sales
Output [4]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19, cs_sold_date_sk#20]
Batched: true
Location [not included in comparison]/{warehouse_dir}/catalog_sales]
PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_order_number)]
ReadSchema: struct<cs_item_sk:int,cs_order_number:int,cs_ext_list_price:decimal(7,2)>

(13) CometFilter
Input [4]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19, cs_sold_date_sk#20]
Condition : (isnotnull(cs_item_sk#17) AND isnotnull(cs_order_number#18))

(14) CometProject
Input [4]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19, cs_sold_date_sk#20]
Arguments: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19], [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19]

(15) CometExchange
Input [3]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19]
Arguments: hashpartitioning(cs_item_sk#17, cs_order_number#18, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]

(16) CometSort
Input [3]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19]
Arguments: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19], [cs_item_sk#17 ASC NULLS FIRST, cs_order_number#18 ASC NULLS FIRST]

(17) CometScan parquet spark_catalog.default.catalog_returns
Output [6]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25, cr_returned_date_sk#26]
Batched: true
Location [not included in comparison]/{warehouse_dir}/catalog_returns]
PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)]
ReadSchema: struct<cr_item_sk:int,cr_order_number:int,cr_refunded_cash:decimal(7,2),cr_reversed_charge:decimal(7,2),cr_store_credit:decimal(7,2)>

(18) CometFilter
Input [6]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25, cr_returned_date_sk#26]
Condition : (isnotnull(cr_item_sk#21) AND isnotnull(cr_order_number#22))

(19) CometProject
Input [6]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25, cr_returned_date_sk#26]
Arguments: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25], [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]

(20) CometExchange
Input [5]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]
Arguments: hashpartitioning(cr_item_sk#21, cr_order_number#22, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]

(21) CometSort
Input [5]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]
Arguments: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25], [cr_item_sk#21 ASC NULLS FIRST, cr_order_number#22 ASC NULLS FIRST]

(22) CometSortMergeJoin
Left output [3]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19]
Right output [5]: [cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]
Arguments: [cs_item_sk#17, cs_order_number#18], [cr_item_sk#21, cr_order_number#22], Inner

(23) CometProject
Input [8]: [cs_item_sk#17, cs_order_number#18, cs_ext_list_price#19, cr_item_sk#21, cr_order_number#22, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]
Arguments: [cs_item_sk#17, cs_ext_list_price#19, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25], [cs_item_sk#17, cs_ext_list_price#19, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]

(24) CometColumnarToRow [codegen id : 2]
Input [5]: [cs_item_sk#17, cs_ext_list_price#19, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]

(25) HashAggregate [codegen id : 2]
Input [5]: [cs_item_sk#17, cs_ext_list_price#19, cr_refunded_cash#23, cr_reversed_charge#24, cr_store_credit#25]
Keys [1]: [cs_item_sk#17]
Functions [2]: [partial_sum(UnscaledValue(cs_ext_list_price#19)), partial_sum(((cr_refunded_cash#23 + cr_reversed_charge#24) + cr_store_credit#25))]
Aggregate Attributes [3]: [sum#27, sum#28, isEmpty#29]
Results [4]: [cs_item_sk#17, sum#30, sum#31, isEmpty#32]

(26) CometColumnarExchange
Input [4]: [cs_item_sk#17, sum#30, sum#31, isEmpty#32]
Arguments: hashpartitioning(cs_item_sk#17, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=4]

(27) CometColumnarToRow [codegen id : 3]
Input [4]: [cs_item_sk#17, sum#30, sum#31, isEmpty#32]

(28) HashAggregate [codegen id : 3]
Input [4]: [cs_item_sk#17, sum#30, sum#31, isEmpty#32]
Keys [1]: [cs_item_sk#17]
Functions [2]: [sum(UnscaledValue(cs_ext_list_price#19)), sum(((cr_refunded_cash#23 + cr_reversed_charge#24) + cr_store_credit#25))]
Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#19))#33, sum(((cr_refunded_cash#23 + cr_reversed_charge#24) + cr_store_credit#25))#34]
Results [3]: [cs_item_sk#17, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#19))#33,17,2) AS sale#35, sum(((cr_refunded_cash#23 + cr_reversed_charge#24) + cr_store_credit#25))#34 AS refund#36]

(29) Filter [codegen id : 3]
Input [3]: [cs_item_sk#17, sale#35, refund#36]
Condition : ((isnotnull(sale#35) AND isnotnull(refund#36)) AND (cast(sale#35 as decimal(21,2)) > (2 * refund#36)))

(30) Project [codegen id : 3]
Output [1]: [cs_item_sk#17]
Input [3]: [cs_item_sk#17, sale#35, refund#36]

(31) Sort [codegen id : 3]
Input [1]: [cs_item_sk#17]
Arguments: [cs_item_sk#17 ASC NULLS FIRST], false, 0

(32) SortMergeJoin [codegen id : 19]
Left keys [1]: [ss_item_sk#1]
Right keys [1]: [cs_item_sk#17]
Join type: Inner
Join condition: None

(33) Project [codegen id : 19]
Output [11]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12]
Input [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12, cs_item_sk#17]

(34) ReusedExchange [Reuses operator id: 190]
Output [2]: [d_date_sk#37, d_year#38]

(35) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_sold_date_sk#12]
Right keys [1]: [d_date_sk#37]
Join type: Inner
Join condition: None

(36) Project [codegen id : 19]
Output [11]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38]
Input [13]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, ss_sold_date_sk#12, d_date_sk#37, d_year#38]

(37) CometScan parquet spark_catalog.default.store
Output [3]: [s_store_sk#39, s_store_name#40, s_zip#41]
Batched: true
Location [not included in comparison]/{warehouse_dir}/store]
PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_name)]
ReadSchema: struct<s_store_sk:int,s_store_name:string,s_zip:string>

(38) CometFilter
Input [3]: [s_store_sk#39, s_store_name#40, s_zip#41]
Condition : ((isnotnull(s_store_sk#39) AND isnotnull(s_store_name#40)) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, s_zip#41, 10, true, false, true)))

(39) CometProject
Input [3]: [s_store_sk#39, s_store_name#40, s_zip#41]
Arguments: [s_store_sk#39, s_store_name#40, s_zip#42], [s_store_sk#39, s_store_name#40, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, s_zip#41, 10, true, false, true) AS s_zip#42]

(40) CometColumnarToRow [codegen id : 5]
Input [3]: [s_store_sk#39, s_store_name#40, s_zip#42]

(41) BroadcastExchange
Input [3]: [s_store_sk#39, s_store_name#40, s_zip#42]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=5]

(42) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_store_sk#6]
Right keys [1]: [s_store_sk#39]
Join type: Inner
Join condition: None

(43) Project [codegen id : 19]
Output [12]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42]
Input [14]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_store_sk#6, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_sk#39, s_store_name#40, s_zip#42]

(44) CometScan parquet spark_catalog.default.customer
Output [6]: [c_customer_sk#43, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer]
PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_first_sales_date_sk), IsNotNull(c_first_shipto_date_sk), IsNotNull(c_current_cdemo_sk), IsNotNull(c_current_hdemo_sk), IsNotNull(c_current_addr_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_hdemo_sk:int,c_current_addr_sk:int,c_first_shipto_date_sk:int,c_first_sales_date_sk:int>

(45) CometFilter
Input [6]: [c_customer_sk#43, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]
Condition : (((((isnotnull(c_customer_sk#43) AND isnotnull(c_first_sales_date_sk#48)) AND isnotnull(c_first_shipto_date_sk#47)) AND isnotnull(c_current_cdemo_sk#44)) AND isnotnull(c_current_hdemo_sk#45)) AND isnotnull(c_current_addr_sk#46))

(46) CometColumnarToRow [codegen id : 6]
Input [6]: [c_customer_sk#43, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]

(47) BroadcastExchange
Input [6]: [c_customer_sk#43, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=6]

(48) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_customer_sk#2]
Right keys [1]: [c_customer_sk#43]
Join type: Inner
Join condition: None

(49) Project [codegen id : 19]
Output [16]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]
Input [18]: [ss_item_sk#1, ss_customer_sk#2, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_customer_sk#43, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48]

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

(51) CometFilter
Input [2]: [d_date_sk#49, d_year#50]
Condition : isnotnull(d_date_sk#49)

(52) CometColumnarToRow [codegen id : 7]
Input [2]: [d_date_sk#49, d_year#50]

(53) BroadcastExchange
Input [2]: [d_date_sk#49, d_year#50]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=7]

(54) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [c_first_sales_date_sk#48]
Right keys [1]: [d_date_sk#49]
Join type: Inner
Join condition: None

(55) Project [codegen id : 19]
Output [16]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, d_year#50]
Input [18]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, c_first_sales_date_sk#48, d_date_sk#49, d_year#50]

(56) ReusedExchange [Reuses operator id: 53]
Output [2]: [d_date_sk#51, d_year#52]

(57) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [c_first_shipto_date_sk#47]
Right keys [1]: [d_date_sk#51]
Join type: Inner
Join condition: None

(58) Project [codegen id : 19]
Output [16]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52]
Input [18]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, c_first_shipto_date_sk#47, d_year#50, d_date_sk#51, d_year#52]

(59) CometScan parquet spark_catalog.default.customer_demographics
Output [2]: [cd_demo_sk#53, cd_marital_status#54]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_demographics]
PushedFilters: [IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string>

(60) CometFilter
Input [2]: [cd_demo_sk#53, cd_marital_status#54]
Condition : (isnotnull(cd_demo_sk#53) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#54, 1, true, false, true)))

(61) CometProject
Input [2]: [cd_demo_sk#53, cd_marital_status#54]
Arguments: [cd_demo_sk#53, cd_marital_status#55], [cd_demo_sk#53, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#54, 1, true, false, true) AS cd_marital_status#55]

(62) CometColumnarToRow [codegen id : 9]
Input [2]: [cd_demo_sk#53, cd_marital_status#55]

(63) BroadcastExchange
Input [2]: [cd_demo_sk#53, cd_marital_status#55]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=8]

(64) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_cdemo_sk#3]
Right keys [1]: [cd_demo_sk#53]
Join type: Inner
Join condition: None

(65) Project [codegen id : 19]
Output [16]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, cd_marital_status#55]
Input [18]: [ss_item_sk#1, ss_cdemo_sk#3, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, cd_demo_sk#53, cd_marital_status#55]

(66) ReusedExchange [Reuses operator id: 63]
Output [2]: [cd_demo_sk#56, cd_marital_status#57]

(67) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [c_current_cdemo_sk#44]
Right keys [1]: [cd_demo_sk#56]
Join type: Inner
Join condition: NOT (cd_marital_status#55 = cd_marital_status#57)

(68) Project [codegen id : 19]
Output [14]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52]
Input [18]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_cdemo_sk#44, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, cd_marital_status#55, cd_demo_sk#56, cd_marital_status#57]

(69) CometScan parquet spark_catalog.default.promotion
Output [1]: [p_promo_sk#58]
Batched: true
Location [not included in comparison]/{warehouse_dir}/promotion]
PushedFilters: [IsNotNull(p_promo_sk)]
ReadSchema: struct<p_promo_sk:int>

(70) CometFilter
Input [1]: [p_promo_sk#58]
Condition : isnotnull(p_promo_sk#58)

(71) CometColumnarToRow [codegen id : 11]
Input [1]: [p_promo_sk#58]

(72) BroadcastExchange
Input [1]: [p_promo_sk#58]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=9]

(73) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_promo_sk#7]
Right keys [1]: [p_promo_sk#58]
Join type: Inner
Join condition: None

(74) Project [codegen id : 19]
Output [13]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52]
Input [15]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_promo_sk#7, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, p_promo_sk#58]

(75) CometScan parquet spark_catalog.default.household_demographics
Output [2]: [hd_demo_sk#59, hd_income_band_sk#60]
Batched: true
Location [not included in comparison]/{warehouse_dir}/household_demographics]
PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)]
ReadSchema: struct<hd_demo_sk:int,hd_income_band_sk:int>

(76) CometFilter
Input [2]: [hd_demo_sk#59, hd_income_band_sk#60]
Condition : (isnotnull(hd_demo_sk#59) AND isnotnull(hd_income_band_sk#60))

(77) CometColumnarToRow [codegen id : 12]
Input [2]: [hd_demo_sk#59, hd_income_band_sk#60]

(78) BroadcastExchange
Input [2]: [hd_demo_sk#59, hd_income_band_sk#60]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=10]

(79) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_hdemo_sk#4]
Right keys [1]: [hd_demo_sk#59]
Join type: Inner
Join condition: None

(80) Project [codegen id : 19]
Output [13]: [ss_item_sk#1, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60]
Input [15]: [ss_item_sk#1, ss_hdemo_sk#4, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, hd_demo_sk#59, hd_income_band_sk#60]

(81) ReusedExchange [Reuses operator id: 78]
Output [2]: [hd_demo_sk#61, hd_income_band_sk#62]

(82) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [c_current_hdemo_sk#45]
Right keys [1]: [hd_demo_sk#61]
Join type: Inner
Join condition: None

(83) Project [codegen id : 19]
Output [13]: [ss_item_sk#1, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62]
Input [15]: [ss_item_sk#1, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_hdemo_sk#45, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60, hd_demo_sk#61, hd_income_band_sk#62]

(84) CometScan parquet spark_catalog.default.customer_address
Output [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67]
Batched: true
Location [not included in comparison]/{warehouse_dir}/customer_address]
PushedFilters: [IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_street_number:string,ca_street_name:string,ca_city:string,ca_zip:string>

(85) CometFilter
Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67]
Condition : isnotnull(ca_address_sk#63)

(86) CometProject
Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67]
Arguments: [ca_address_sk#63, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69], [ca_address_sk#63, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_street_number#64, 10, true, false, true) AS ca_street_number#68, ca_street_name#65, ca_city#66, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_zip#67, 10, true, false, true) AS ca_zip#69]

(87) CometColumnarToRow [codegen id : 14]
Input [5]: [ca_address_sk#63, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69]

(88) BroadcastExchange
Input [5]: [ca_address_sk#63, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=11]

(89) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_addr_sk#5]
Right keys [1]: [ca_address_sk#63]
Join type: Inner
Join condition: None

(90) Project [codegen id : 19]
Output [16]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69]
Input [18]: [ss_item_sk#1, ss_addr_sk#5, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62, ca_address_sk#63, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69]

(91) ReusedExchange [Reuses operator id: 88]
Output [5]: [ca_address_sk#70, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74]

(92) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [c_current_addr_sk#46]
Right keys [1]: [ca_address_sk#70]
Join type: Inner
Join condition: None

(93) Project [codegen id : 19]
Output [19]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74]
Input [21]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, c_current_addr_sk#46, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_address_sk#70, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74]

(94) CometScan parquet spark_catalog.default.income_band
Output [1]: [ib_income_band_sk#75]
Batched: true
Location [not included in comparison]/{warehouse_dir}/income_band]
PushedFilters: [IsNotNull(ib_income_band_sk)]
ReadSchema: struct<ib_income_band_sk:int>

(95) CometFilter
Input [1]: [ib_income_band_sk#75]
Condition : isnotnull(ib_income_band_sk#75)

(96) CometColumnarToRow [codegen id : 16]
Input [1]: [ib_income_band_sk#75]

(97) BroadcastExchange
Input [1]: [ib_income_band_sk#75]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=12]

(98) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [hd_income_band_sk#60]
Right keys [1]: [ib_income_band_sk#75]
Join type: Inner
Join condition: None

(99) Project [codegen id : 19]
Output [18]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74]
Input [20]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, hd_income_band_sk#60, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, ib_income_band_sk#75]

(100) ReusedExchange [Reuses operator id: 97]
Output [1]: [ib_income_band_sk#76]

(101) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [hd_income_band_sk#62]
Right keys [1]: [ib_income_band_sk#76]
Join type: Inner
Join condition: None

(102) Project [codegen id : 19]
Output [17]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74]
Input [19]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, hd_income_band_sk#62, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, ib_income_band_sk#76]

(103) CometScan parquet spark_catalog.default.item
Output [4]: [i_item_sk#77, i_current_price#78, i_color#79, i_product_name#80]
Batched: true
Location [not included in comparison]/{warehouse_dir}/item]
PushedFilters: [IsNotNull(i_current_price), GreaterThanOrEqual(i_current_price,64.00), LessThanOrEqual(i_current_price,74.00), GreaterThanOrEqual(i_current_price,65.00), LessThanOrEqual(i_current_price,79.00), IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_current_price:decimal(7,2),i_color:string,i_product_name:string>

(104) CometFilter
Input [4]: [i_item_sk#77, i_current_price#78, i_color#79, i_product_name#80]
Condition : ((((((isnotnull(i_current_price#78) AND staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_color#79, 20, true, false, true) IN (purple              ,burlywood           ,indian              ,spring              ,floral              ,medium              )) AND (i_current_price#78 >= 64.00)) AND (i_current_price#78 <= 74.00)) AND (i_current_price#78 >= 65.00)) AND (i_current_price#78 <= 79.00)) AND isnotnull(i_item_sk#77))

(105) CometProject
Input [4]: [i_item_sk#77, i_current_price#78, i_color#79, i_product_name#80]
Arguments: [i_item_sk#77, i_product_name#81], [i_item_sk#77, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_product_name#80, 50, true, false, true) AS i_product_name#81]

(106) CometColumnarToRow [codegen id : 18]
Input [2]: [i_item_sk#77, i_product_name#81]

(107) BroadcastExchange
Input [2]: [i_item_sk#77, i_product_name#81]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=13]

(108) BroadcastHashJoin [codegen id : 19]
Left keys [1]: [ss_item_sk#1]
Right keys [1]: [i_item_sk#77]
Join type: Inner
Join condition: None

(109) Project [codegen id : 19]
Output [18]: [ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, d_year#50, d_year#52, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, i_item_sk#77, i_product_name#81]
Input [19]: [ss_item_sk#1, ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, s_store_name#40, s_zip#42, d_year#50, d_year#52, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, i_item_sk#77, i_product_name#81]

(110) HashAggregate [codegen id : 19]
Input [18]: [ss_wholesale_cost#9, ss_list_price#10, ss_coupon_amt#11, d_year#38, d_year#50, d_year#52, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, i_item_sk#77, i_product_name#81]
Keys [15]: [i_product_name#81, i_item_sk#77, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, d_year#38, d_year#50, d_year#52]
Functions [4]: [partial_count(1), partial_sum(UnscaledValue(ss_wholesale_cost#9)), partial_sum(UnscaledValue(ss_list_price#10)), partial_sum(UnscaledValue(ss_coupon_amt#11))]
Aggregate Attributes [4]: [count#82, sum#83, sum#84, sum#85]
Results [19]: [i_product_name#81, i_item_sk#77, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, d_year#38, d_year#50, d_year#52, count#86, sum#87, sum#88, sum#89]

(111) HashAggregate [codegen id : 19]
Input [19]: [i_product_name#81, i_item_sk#77, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, d_year#38, d_year#50, d_year#52, count#86, sum#87, sum#88, sum#89]
Keys [15]: [i_product_name#81, i_item_sk#77, s_store_name#40, s_zip#42, ca_street_number#68, ca_street_name#65, ca_city#66, ca_zip#69, ca_street_number#71, ca_street_name#72, ca_city#73, ca_zip#74, d_year#38, d_year#50, d_year#52]
Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#9)), sum(UnscaledValue(ss_list_price#10)), sum(UnscaledValue(ss_coupon_amt#11))]
Aggregate Attributes [4]: [count(1)#90, sum(UnscaledValue(ss_wholesale_cost#9))#91, sum(UnscaledValue(ss_list_price#10))#92, sum(UnscaledValue(ss_coupon_amt#11))#93]
Results [17]: [i_product_name#81 AS product_name#94, i_item_sk#77 AS item_sk#95, s_store_name#40 AS store_name#96, s_zip#42 AS store_zip#97, ca_street_number#68 AS b_street_number#98, ca_street_name#65 AS b_streen_name#99, ca_city#66 AS b_city#100, ca_zip#69 AS b_zip#101, ca_street_number#71 AS c_street_number#102, ca_street_name#72 AS c_street_name#103, ca_city#73 AS c_city#104, ca_zip#74 AS c_zip#105, d_year#38 AS syear#106, count(1)#90 AS cnt#107, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#9))#91,17,2) AS s1#108, MakeDecimal(sum(UnscaledValue(ss_list_price#10))#92,17,2) AS s2#109, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#11))#93,17,2) AS s3#110]

(112) CometColumnarExchange
Input [17]: [product_name#94, item_sk#95, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110]
Arguments: hashpartitioning(item_sk#95, store_name#96, store_zip#97, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=14]

(113) CometSort
Input [17]: [product_name#94, item_sk#95, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110]
Arguments: [product_name#94, item_sk#95, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110], [item_sk#95 ASC NULLS FIRST, store_name#96 ASC NULLS FIRST, store_zip#97 ASC NULLS FIRST]

(114) CometScan parquet spark_catalog.default.store_sales
Output [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Batched: true
Location: InMemoryFileIndex []
PartitionFilters: [isnotnull(ss_sold_date_sk#122), dynamicpruningexpression(ss_sold_date_sk#122 IN dynamicpruning#123)]
PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_ticket_number), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_promo_sk), IsNotNull(ss_hdemo_sk), IsNotNull(ss_addr_sk)]
ReadSchema: struct<ss_item_sk:int,ss_customer_sk:int,ss_cdemo_sk:int,ss_hdemo_sk:int,ss_addr_sk:int,ss_store_sk:int,ss_promo_sk:int,ss_ticket_number:int,ss_wholesale_cost:decimal(7,2),ss_list_price:decimal(7,2),ss_coupon_amt:decimal(7,2)>

(115) CometFilter
Input [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Condition : (((((((isnotnull(ss_item_sk#111) AND isnotnull(ss_ticket_number#118)) AND isnotnull(ss_store_sk#116)) AND isnotnull(ss_customer_sk#112)) AND isnotnull(ss_cdemo_sk#113)) AND isnotnull(ss_promo_sk#117)) AND isnotnull(ss_hdemo_sk#114)) AND isnotnull(ss_addr_sk#115))

(116) CometBroadcastExchange
Input [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Arguments: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]

(117) CometScan parquet spark_catalog.default.store_returns
Output [3]: [sr_item_sk#124, sr_ticket_number#125, sr_returned_date_sk#126]
Batched: true
Location [not included in comparison]/{warehouse_dir}/store_returns]
PushedFilters: [IsNotNull(sr_item_sk), IsNotNull(sr_ticket_number)]
ReadSchema: struct<sr_item_sk:int,sr_ticket_number:int>

(118) CometFilter
Input [3]: [sr_item_sk#124, sr_ticket_number#125, sr_returned_date_sk#126]
Condition : (isnotnull(sr_item_sk#124) AND isnotnull(sr_ticket_number#125))

(119) CometProject
Input [3]: [sr_item_sk#124, sr_ticket_number#125, sr_returned_date_sk#126]
Arguments: [sr_item_sk#124, sr_ticket_number#125], [sr_item_sk#124, sr_ticket_number#125]

(120) CometBroadcastHashJoin
Left output [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Right output [2]: [sr_item_sk#124, sr_ticket_number#125]
Arguments: [ss_item_sk#111, ss_ticket_number#118], [sr_item_sk#124, sr_ticket_number#125], Inner, BuildLeft

(121) CometProject
Input [14]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_ticket_number#118, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122, sr_item_sk#124, sr_ticket_number#125]
Arguments: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122], [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]

(122) CometExchange
Input [11]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Arguments: hashpartitioning(ss_item_sk#111, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=15]

(123) CometSort
Input [11]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Arguments: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122], [ss_item_sk#111 ASC NULLS FIRST]

(124) CometColumnarToRow [codegen id : 20]
Input [11]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]

(125) ReusedExchange [Reuses operator id: 26]
Output [4]: [cs_item_sk#127, sum#128, sum#129, isEmpty#130]

(126) CometColumnarToRow [codegen id : 22]
Input [4]: [cs_item_sk#127, sum#128, sum#129, isEmpty#130]

(127) HashAggregate [codegen id : 22]
Input [4]: [cs_item_sk#127, sum#128, sum#129, isEmpty#130]
Keys [1]: [cs_item_sk#127]
Functions [2]: [sum(UnscaledValue(cs_ext_list_price#131)), sum(((cr_refunded_cash#132 + cr_reversed_charge#133) + cr_store_credit#134))]
Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#131))#33, sum(((cr_refunded_cash#132 + cr_reversed_charge#133) + cr_store_credit#134))#34]
Results [3]: [cs_item_sk#127, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#131))#33,17,2) AS sale#135, sum(((cr_refunded_cash#132 + cr_reversed_charge#133) + cr_store_credit#134))#34 AS refund#136]

(128) Filter [codegen id : 22]
Input [3]: [cs_item_sk#127, sale#135, refund#136]
Condition : ((isnotnull(sale#135) AND isnotnull(refund#136)) AND (cast(sale#135 as decimal(21,2)) > (2 * refund#136)))

(129) Project [codegen id : 22]
Output [1]: [cs_item_sk#127]
Input [3]: [cs_item_sk#127, sale#135, refund#136]

(130) Sort [codegen id : 22]
Input [1]: [cs_item_sk#127]
Arguments: [cs_item_sk#127 ASC NULLS FIRST], false, 0

(131) SortMergeJoin [codegen id : 38]
Left keys [1]: [ss_item_sk#111]
Right keys [1]: [cs_item_sk#127]
Join type: Inner
Join condition: None

(132) Project [codegen id : 38]
Output [11]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122]
Input [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122, cs_item_sk#127]

(133) ReusedExchange [Reuses operator id: 194]
Output [2]: [d_date_sk#137, d_year#138]

(134) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_sold_date_sk#122]
Right keys [1]: [d_date_sk#137]
Join type: Inner
Join condition: None

(135) Project [codegen id : 38]
Output [11]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138]
Input [13]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, ss_sold_date_sk#122, d_date_sk#137, d_year#138]

(136) ReusedExchange [Reuses operator id: 41]
Output [3]: [s_store_sk#139, s_store_name#140, s_zip#141]

(137) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_store_sk#116]
Right keys [1]: [s_store_sk#139]
Join type: Inner
Join condition: None

(138) Project [codegen id : 38]
Output [12]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141]
Input [14]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_store_sk#116, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_sk#139, s_store_name#140, s_zip#141]

(139) ReusedExchange [Reuses operator id: 47]
Output [6]: [c_customer_sk#142, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, c_first_sales_date_sk#147]

(140) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_customer_sk#112]
Right keys [1]: [c_customer_sk#142]
Join type: Inner
Join condition: None

(141) Project [codegen id : 38]
Output [16]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, c_first_sales_date_sk#147]
Input [18]: [ss_item_sk#111, ss_customer_sk#112, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_customer_sk#142, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, c_first_sales_date_sk#147]

(142) ReusedExchange [Reuses operator id: 53]
Output [2]: [d_date_sk#148, d_year#149]

(143) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [c_first_sales_date_sk#147]
Right keys [1]: [d_date_sk#148]
Join type: Inner
Join condition: None

(144) Project [codegen id : 38]
Output [16]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, d_year#149]
Input [18]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, c_first_sales_date_sk#147, d_date_sk#148, d_year#149]

(145) ReusedExchange [Reuses operator id: 53]
Output [2]: [d_date_sk#150, d_year#151]

(146) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [c_first_shipto_date_sk#146]
Right keys [1]: [d_date_sk#150]
Join type: Inner
Join condition: None

(147) Project [codegen id : 38]
Output [16]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151]
Input [18]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, c_first_shipto_date_sk#146, d_year#149, d_date_sk#150, d_year#151]

(148) ReusedExchange [Reuses operator id: 63]
Output [2]: [cd_demo_sk#152, cd_marital_status#153]

(149) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_cdemo_sk#113]
Right keys [1]: [cd_demo_sk#152]
Join type: Inner
Join condition: None

(150) Project [codegen id : 38]
Output [16]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, cd_marital_status#153]
Input [18]: [ss_item_sk#111, ss_cdemo_sk#113, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, cd_demo_sk#152, cd_marital_status#153]

(151) ReusedExchange [Reuses operator id: 63]
Output [2]: [cd_demo_sk#154, cd_marital_status#155]

(152) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [c_current_cdemo_sk#143]
Right keys [1]: [cd_demo_sk#154]
Join type: Inner
Join condition: NOT (cd_marital_status#153 = cd_marital_status#155)

(153) Project [codegen id : 38]
Output [14]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151]
Input [18]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_cdemo_sk#143, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, cd_marital_status#153, cd_demo_sk#154, cd_marital_status#155]

(154) ReusedExchange [Reuses operator id: 72]
Output [1]: [p_promo_sk#156]

(155) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_promo_sk#117]
Right keys [1]: [p_promo_sk#156]
Join type: Inner
Join condition: None

(156) Project [codegen id : 38]
Output [13]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151]
Input [15]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_promo_sk#117, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, p_promo_sk#156]

(157) ReusedExchange [Reuses operator id: 78]
Output [2]: [hd_demo_sk#157, hd_income_band_sk#158]

(158) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_hdemo_sk#114]
Right keys [1]: [hd_demo_sk#157]
Join type: Inner
Join condition: None

(159) Project [codegen id : 38]
Output [13]: [ss_item_sk#111, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158]
Input [15]: [ss_item_sk#111, ss_hdemo_sk#114, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, hd_demo_sk#157, hd_income_band_sk#158]

(160) ReusedExchange [Reuses operator id: 78]
Output [2]: [hd_demo_sk#159, hd_income_band_sk#160]

(161) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [c_current_hdemo_sk#144]
Right keys [1]: [hd_demo_sk#159]
Join type: Inner
Join condition: None

(162) Project [codegen id : 38]
Output [13]: [ss_item_sk#111, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160]
Input [15]: [ss_item_sk#111, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_hdemo_sk#144, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158, hd_demo_sk#159, hd_income_band_sk#160]

(163) ReusedExchange [Reuses operator id: 88]
Output [5]: [ca_address_sk#161, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165]

(164) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_addr_sk#115]
Right keys [1]: [ca_address_sk#161]
Join type: Inner
Join condition: None

(165) Project [codegen id : 38]
Output [16]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165]
Input [18]: [ss_item_sk#111, ss_addr_sk#115, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160, ca_address_sk#161, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165]

(166) ReusedExchange [Reuses operator id: 88]
Output [5]: [ca_address_sk#166, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170]

(167) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [c_current_addr_sk#145]
Right keys [1]: [ca_address_sk#166]
Join type: Inner
Join condition: None

(168) Project [codegen id : 38]
Output [19]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170]
Input [21]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, c_current_addr_sk#145, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_address_sk#166, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170]

(169) ReusedExchange [Reuses operator id: 97]
Output [1]: [ib_income_band_sk#171]

(170) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [hd_income_band_sk#158]
Right keys [1]: [ib_income_band_sk#171]
Join type: Inner
Join condition: None

(171) Project [codegen id : 38]
Output [18]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170]
Input [20]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, hd_income_band_sk#158, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, ib_income_band_sk#171]

(172) ReusedExchange [Reuses operator id: 97]
Output [1]: [ib_income_band_sk#172]

(173) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [hd_income_band_sk#160]
Right keys [1]: [ib_income_band_sk#172]
Join type: Inner
Join condition: None

(174) Project [codegen id : 38]
Output [17]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170]
Input [19]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, hd_income_band_sk#160, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, ib_income_band_sk#172]

(175) ReusedExchange [Reuses operator id: 107]
Output [2]: [i_item_sk#173, i_product_name#174]

(176) BroadcastHashJoin [codegen id : 38]
Left keys [1]: [ss_item_sk#111]
Right keys [1]: [i_item_sk#173]
Join type: Inner
Join condition: None

(177) Project [codegen id : 38]
Output [18]: [ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, d_year#149, d_year#151, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, i_item_sk#173, i_product_name#174]
Input [19]: [ss_item_sk#111, ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, s_store_name#140, s_zip#141, d_year#149, d_year#151, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, i_item_sk#173, i_product_name#174]

(178) HashAggregate [codegen id : 38]
Input [18]: [ss_wholesale_cost#119, ss_list_price#120, ss_coupon_amt#121, d_year#138, d_year#149, d_year#151, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, i_item_sk#173, i_product_name#174]
Keys [15]: [i_product_name#174, i_item_sk#173, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, d_year#138, d_year#149, d_year#151]
Functions [4]: [partial_count(1), partial_sum(UnscaledValue(ss_wholesale_cost#119)), partial_sum(UnscaledValue(ss_list_price#120)), partial_sum(UnscaledValue(ss_coupon_amt#121))]
Aggregate Attributes [4]: [count#82, sum#175, sum#176, sum#177]
Results [19]: [i_product_name#174, i_item_sk#173, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, d_year#138, d_year#149, d_year#151, count#86, sum#178, sum#179, sum#180]

(179) HashAggregate [codegen id : 38]
Input [19]: [i_product_name#174, i_item_sk#173, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, d_year#138, d_year#149, d_year#151, count#86, sum#178, sum#179, sum#180]
Keys [15]: [i_product_name#174, i_item_sk#173, s_store_name#140, s_zip#141, ca_street_number#162, ca_street_name#163, ca_city#164, ca_zip#165, ca_street_number#167, ca_street_name#168, ca_city#169, ca_zip#170, d_year#138, d_year#149, d_year#151]
Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#119)), sum(UnscaledValue(ss_list_price#120)), sum(UnscaledValue(ss_coupon_amt#121))]
Aggregate Attributes [4]: [count(1)#90, sum(UnscaledValue(ss_wholesale_cost#119))#91, sum(UnscaledValue(ss_list_price#120))#92, sum(UnscaledValue(ss_coupon_amt#121))#93]
Results [8]: [i_item_sk#173 AS item_sk#181, s_store_name#140 AS store_name#182, s_zip#141 AS store_zip#183, d_year#138 AS syear#184, count(1)#90 AS cnt#185, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#119))#91,17,2) AS s1#186, MakeDecimal(sum(UnscaledValue(ss_list_price#120))#92,17,2) AS s2#187, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#121))#93,17,2) AS s3#188]

(180) CometColumnarExchange
Input [8]: [item_sk#181, store_name#182, store_zip#183, syear#184, cnt#185, s1#186, s2#187, s3#188]
Arguments: hashpartitioning(item_sk#181, store_name#182, store_zip#183, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=16]

(181) CometSort
Input [8]: [item_sk#181, store_name#182, store_zip#183, syear#184, cnt#185, s1#186, s2#187, s3#188]
Arguments: [item_sk#181, store_name#182, store_zip#183, syear#184, cnt#185, s1#186, s2#187, s3#188], [item_sk#181 ASC NULLS FIRST, store_name#182 ASC NULLS FIRST, store_zip#183 ASC NULLS FIRST]

(182) CometSortMergeJoin
Left output [17]: [product_name#94, item_sk#95, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110]
Right output [8]: [item_sk#181, store_name#182, store_zip#183, syear#184, cnt#185, s1#186, s2#187, s3#188]
Arguments: [item_sk#95, store_name#96, store_zip#97], [item_sk#181, store_name#182, store_zip#183], Inner, (cnt#185 <= cnt#107)

(183) CometProject
Input [25]: [product_name#94, item_sk#95, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, item_sk#181, store_name#182, store_zip#183, syear#184, cnt#185, s1#186, s2#187, s3#188]
Arguments: [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185], [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185]

(184) CometColumnarExchange
Input [21]: [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185]
Arguments: rangepartitioning(product_name#94 ASC NULLS FIRST, store_name#96 ASC NULLS FIRST, cnt#185 ASC NULLS FIRST, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=17]

(185) CometSort
Input [21]: [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185]
Arguments: [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185], [product_name#94 ASC NULLS FIRST, store_name#96 ASC NULLS FIRST, cnt#185 ASC NULLS FIRST]

(186) CometColumnarToRow [codegen id : 39]
Input [21]: [product_name#94, store_name#96, store_zip#97, b_street_number#98, b_streen_name#99, b_city#100, b_zip#101, c_street_number#102, c_street_name#103, c_city#104, c_zip#105, syear#106, cnt#107, s1#108, s2#109, s3#110, s1#186, s2#187, s3#188, syear#184, cnt#185]

===== Subqueries =====

Subquery:1 Hosting operator id = 1 Hosting Expression = ss_sold_date_sk#12 IN dynamicpruning#13
BroadcastExchange (190)
+- * CometColumnarToRow (189)
   +- CometFilter (188)
      +- CometScan parquet spark_catalog.default.date_dim (187)


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

(188) CometFilter
Input [2]: [d_date_sk#37, d_year#38]
Condition : ((isnotnull(d_year#38) AND (d_year#38 = 1999)) AND isnotnull(d_date_sk#37))

(189) CometColumnarToRow [codegen id : 1]
Input [2]: [d_date_sk#37, d_year#38]

(190) BroadcastExchange
Input [2]: [d_date_sk#37, d_year#38]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=18]

Subquery:2 Hosting operator id = 114 Hosting Expression = ss_sold_date_sk#122 IN dynamicpruning#123
BroadcastExchange (194)
+- * CometColumnarToRow (193)
   +- CometFilter (192)
      +- CometScan parquet spark_catalog.default.date_dim (191)


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

(192) CometFilter
Input [2]: [d_date_sk#137, d_year#138]
Condition : ((isnotnull(d_year#138) AND (d_year#138 = 2000)) AND isnotnull(d_date_sk#137))

(193) CometColumnarToRow [codegen id : 1]
Input [2]: [d_date_sk#137, d_year#138]

(194) BroadcastExchange
Input [2]: [d_date_sk#137, d_year#138]
Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=19]


