== Physical Plan ==
AdaptiveSparkPlan (256)
+- == Final Plan ==
   NativeTakeOrdered (166)
   +- NativeProject (165)
      +- NativeHashAggregate (164)
         +- InputAdapter (163)
            +- AQEShuffleRead (162)
               +- ShuffleQueryStage (161), Statistics(X)
                  +- NativeShuffleExchange (160)
                     +- NativeHashAggregate (159)
                        +- NativeProject (158)
                           +- NativeSortMergeJoin LeftOuter (157)
                              :- NativeSort (148)
                              :  +- InputAdapter (147)
                              :     +- AQEShuffleRead (146)
                              :        +- ShuffleQueryStage (145), Statistics(X)
                              :           +- NativeShuffleExchange (144)
                              :              +- NativeProject (143)
                              :                 +- NativeSortMergeJoin LeftOuter (142)
                              :                    :- NativeSort (133)
                              :                    :  +- InputAdapter (132)
                              :                    :     +- AQEShuffleRead (131)
                              :                    :        +- ShuffleQueryStage (130), Statistics(X)
                              :                    :           +- NativeShuffleExchange (129)
                              :                    :              +- ConvertToNative (128)
                              :                    :                 +- * Project (127)
                              :                    :                    +- * SortMergeJoin Inner (126)
                              :                    :                       :- NativeSort (117)
                              :                    :                       :  +- InputAdapter (116)
                              :                    :                       :     +- AQEShuffleRead (115)
                              :                    :                       :        +- ShuffleQueryStage (114), Statistics(X)
                              :                    :                       :           +- NativeShuffleExchange (113)
                              :                    :                       :              +- NativeProject (112)
                              :                    :                       :                 +- NativeSortMergeJoin Inner (111)
                              :                    :                       :                    :- NativeSort (102)
                              :                    :                       :                    :  +- InputAdapter (101)
                              :                    :                       :                    :     +- AQEShuffleRead (100)
                              :                    :                       :                    :        +- ShuffleQueryStage (99), Statistics(X)
                              :                    :                       :                    :           +- NativeShuffleExchange (98)
                              :                    :                       :                    :              +- NativeProject (97)
                              :                    :                       :                    :                 +- NativeSortMergeJoin Inner (96)
                              :                    :                       :                    :                    :- NativeSort (86)
                              :                    :                       :                    :                    :  +- InputAdapter (85)
                              :                    :                       :                    :                    :     +- AQEShuffleRead (84)
                              :                    :                       :                    :                    :        +- ShuffleQueryStage (83), Statistics(X)
                              :                    :                       :                    :                    :           +- NativeShuffleExchange (82)
                              :                    :                       :                    :                    :              +- NativeProject (81)
                              :                    :                       :                    :                    :                 +- NativeSortMergeJoin Inner (80)
                              :                    :                       :                    :                    :                    :- NativeSort (70)
                              :                    :                       :                    :                    :                    :  +- InputAdapter (69)
                              :                    :                       :                    :                    :                    :     +- AQEShuffleRead (68)
                              :                    :                       :                    :                    :                    :        +- ShuffleQueryStage (67), Statistics(X)
                              :                    :                       :                    :                    :                    :           +- NativeShuffleExchange (66)
                              :                    :                       :                    :                    :                    :              +- NativeProject (65)
                              :                    :                       :                    :                    :                    :                 +- NativeSortMergeJoin Inner (64)
                              :                    :                       :                    :                    :                    :                    :- NativeSort (54)
                              :                    :                       :                    :                    :                    :                    :  +- InputAdapter (53)
                              :                    :                       :                    :                    :                    :                    :     +- AQEShuffleRead (52)
                              :                    :                       :                    :                    :                    :                    :        +- ShuffleQueryStage (51), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :           +- NativeShuffleExchange (50)
                              :                    :                       :                    :                    :                    :                    :              +- NativeProject (49)
                              :                    :                       :                    :                    :                    :                    :                 +- NativeSortMergeJoin Inner (48)
                              :                    :                       :                    :                    :                    :                    :                    :- NativeSort (39)
                              :                    :                       :                    :                    :                    :                    :                    :  +- InputAdapter (38)
                              :                    :                       :                    :                    :                    :                    :                    :     +- AQEShuffleRead (37)
                              :                    :                       :                    :                    :                    :                    :                    :        +- ShuffleQueryStage (36), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                    :           +- NativeShuffleExchange (35)
                              :                    :                       :                    :                    :                    :                    :                    :              +- NativeProject (34)
                              :                    :                       :                    :                    :                    :                    :                    :                 +- NativeSortMergeJoin Inner (33)
                              :                    :                       :                    :                    :                    :                    :                    :                    :- NativeSort (24)
                              :                    :                       :                    :                    :                    :                    :                    :                    :  +- InputAdapter (23)
                              :                    :                       :                    :                    :                    :                    :                    :                    :     +- AQEShuffleRead (22)
                              :                    :                       :                    :                    :                    :                    :                    :                    :        +- ShuffleQueryStage (21), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                    :                    :           +- NativeShuffleExchange (20)
                              :                    :                       :                    :                    :                    :                    :                    :                    :              +- ConvertToNative (19)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                 +- * Project (18)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                    +- * SortMergeJoin Inner (17)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :- NativeSort (8)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :  +- InputAdapter (7)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :     +- AQEShuffleRead (6)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :        +- ShuffleQueryStage (5), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :           +- NativeShuffleExchange (4)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :              +- NativeFilter (3)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :                 +- InputAdapter (2)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       :                    +- NativeParquetScan  (1)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                       +- NativeSort (16)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                          +- InputAdapter (15)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                             +- AQEShuffleRead (14)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                                +- ShuffleQueryStage (13), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                                   +- NativeShuffleExchange (12)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                                      +- NativeFilter (11)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                                         +- InputAdapter (10)
                              :                    :                       :                    :                    :                    :                    :                    :                    :                                            +- NativeParquetScan  (9)
                              :                    :                       :                    :                    :                    :                    :                    :                    +- NativeSort (32)
                              :                    :                       :                    :                    :                    :                    :                    :                       +- InputAdapter (31)
                              :                    :                       :                    :                    :                    :                    :                    :                          +- AQEShuffleRead (30)
                              :                    :                       :                    :                    :                    :                    :                    :                             +- ShuffleQueryStage (29), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                    :                                +- NativeShuffleExchange (28)
                              :                    :                       :                    :                    :                    :                    :                    :                                   +- NativeFilter (27)
                              :                    :                       :                    :                    :                    :                    :                    :                                      +- InputAdapter (26)
                              :                    :                       :                    :                    :                    :                    :                    :                                         +- NativeParquetScan  (25)
                              :                    :                       :                    :                    :                    :                    :                    +- NativeSort (47)
                              :                    :                       :                    :                    :                    :                    :                       +- InputAdapter (46)
                              :                    :                       :                    :                    :                    :                    :                          +- AQEShuffleRead (45)
                              :                    :                       :                    :                    :                    :                    :                             +- ShuffleQueryStage (44), Statistics(X)
                              :                    :                       :                    :                    :                    :                    :                                +- NativeShuffleExchange (43)
                              :                    :                       :                    :                    :                    :                    :                                   +- NativeFilter (42)
                              :                    :                       :                    :                    :                    :                    :                                      +- InputAdapter (41)
                              :                    :                       :                    :                    :                    :                    :                                         +- NativeParquetScan  (40)
                              :                    :                       :                    :                    :                    :                    +- NativeSort (63)
                              :                    :                       :                    :                    :                    :                       +- InputAdapter (62)
                              :                    :                       :                    :                    :                    :                          +- AQEShuffleRead (61)
                              :                    :                       :                    :                    :                    :                             +- ShuffleQueryStage (60), Statistics(X)
                              :                    :                       :                    :                    :                    :                                +- NativeShuffleExchange (59)
                              :                    :                       :                    :                    :                    :                                   +- NativeProject (58)
                              :                    :                       :                    :                    :                    :                                      +- NativeFilter (57)
                              :                    :                       :                    :                    :                    :                                         +- InputAdapter (56)
                              :                    :                       :                    :                    :                    :                                            +- NativeParquetScan  (55)
                              :                    :                       :                    :                    :                    +- NativeSort (79)
                              :                    :                       :                    :                    :                       +- InputAdapter (78)
                              :                    :                       :                    :                    :                          +- AQEShuffleRead (77)
                              :                    :                       :                    :                    :                             +- ShuffleQueryStage (76), Statistics(X)
                              :                    :                       :                    :                    :                                +- NativeShuffleExchange (75)
                              :                    :                       :                    :                    :                                   +- NativeProject (74)
                              :                    :                       :                    :                    :                                      +- NativeFilter (73)
                              :                    :                       :                    :                    :                                         +- InputAdapter (72)
                              :                    :                       :                    :                    :                                            +- NativeParquetScan  (71)
                              :                    :                       :                    :                    +- NativeSort (95)
                              :                    :                       :                    :                       +- InputAdapter (94)
                              :                    :                       :                    :                          +- AQEShuffleRead (93)
                              :                    :                       :                    :                             +- ShuffleQueryStage (92), Statistics(X)
                              :                    :                       :                    :                                +- NativeShuffleExchange (91)
                              :                    :                       :                    :                                   +- NativeProject (90)
                              :                    :                       :                    :                                      +- NativeFilter (89)
                              :                    :                       :                    :                                         +- InputAdapter (88)
                              :                    :                       :                    :                                            +- NativeParquetScan  (87)
                              :                    :                       :                    +- NativeSort (110)
                              :                    :                       :                       +- InputAdapter (109)
                              :                    :                       :                          +- AQEShuffleRead (108)
                              :                    :                       :                             +- ShuffleQueryStage (107), Statistics(X)
                              :                    :                       :                                +- NativeShuffleExchange (106)
                              :                    :                       :                                   +- NativeFilter (105)
                              :                    :                       :                                      +- InputAdapter (104)
                              :                    :                       :                                         +- NativeParquetScan  (103)
                              :                    :                       +- NativeSort (125)
                              :                    :                          +- InputAdapter (124)
                              :                    :                             +- AQEShuffleRead (123)
                              :                    :                                +- ShuffleQueryStage (122), Statistics(X)
                              :                    :                                   +- NativeShuffleExchange (121)
                              :                    :                                      +- NativeFilter (120)
                              :                    :                                         +- InputAdapter (119)
                              :                    :                                            +- NativeParquetScan  (118)
                              :                    +- NativeSort (141)
                              :                       +- InputAdapter (140)
                              :                          +- AQEShuffleRead (139)
                              :                             +- ShuffleQueryStage (138), Statistics(X)
                              :                                +- NativeShuffleExchange (137)
                              :                                   +- NativeFilter (136)
                              :                                      +- InputAdapter (135)
                              :                                         +- NativeParquetScan  (134)
                              +- NativeSort (156)
                                 +- InputAdapter (155)
                                    +- AQEShuffleRead (154)
                                       +- ShuffleQueryStage (153), Statistics(X)
                                          +- NativeShuffleExchange (152)
                                             +- NativeFilter (151)
                                                +- InputAdapter (150)
                                                   +- NativeParquetScan  (149)
+- == Initial Plan ==
   TakeOrderedAndProject (255)
   +- HashAggregate (254)
      +- Exchange (253)
         +- HashAggregate (252)
            +- Project (251)
               +- SortMergeJoin LeftOuter (250)
                  :- Sort (245)
                  :  +- Exchange (244)
                  :     +- Project (243)
                  :        +- SortMergeJoin LeftOuter (242)
                  :           :- Sort (237)
                  :           :  +- Exchange (236)
                  :           :     +- Project (235)
                  :           :        +- SortMergeJoin Inner (234)
                  :           :           :- Sort (229)
                  :           :           :  +- Exchange (228)
                  :           :           :     +- Project (227)
                  :           :           :        +- SortMergeJoin Inner (226)
                  :           :           :           :- Sort (221)
                  :           :           :           :  +- Exchange (220)
                  :           :           :           :     +- Project (219)
                  :           :           :           :        +- SortMergeJoin Inner (218)
                  :           :           :           :           :- Sort (212)
                  :           :           :           :           :  +- Exchange (211)
                  :           :           :           :           :     +- Project (210)
                  :           :           :           :           :        +- SortMergeJoin Inner (209)
                  :           :           :           :           :           :- Sort (203)
                  :           :           :           :           :           :  +- Exchange (202)
                  :           :           :           :           :           :     +- Project (201)
                  :           :           :           :           :           :        +- SortMergeJoin Inner (200)
                  :           :           :           :           :           :           :- Sort (194)
                  :           :           :           :           :           :           :  +- Exchange (193)
                  :           :           :           :           :           :           :     +- Project (192)
                  :           :           :           :           :           :           :        +- SortMergeJoin Inner (191)
                  :           :           :           :           :           :           :           :- Sort (186)
                  :           :           :           :           :           :           :           :  +- Exchange (185)
                  :           :           :           :           :           :           :           :     +- Project (184)
                  :           :           :           :           :           :           :           :        +- SortMergeJoin Inner (183)
                  :           :           :           :           :           :           :           :           :- Sort (178)
                  :           :           :           :           :           :           :           :           :  +- Exchange (177)
                  :           :           :           :           :           :           :           :           :     +- Project (176)
                  :           :           :           :           :           :           :           :           :        +- SortMergeJoin Inner (175)
                  :           :           :           :           :           :           :           :           :           :- Sort (170)
                  :           :           :           :           :           :           :           :           :           :  +- Exchange (169)
                  :           :           :           :           :           :           :           :           :           :     +- Filter (168)
                  :           :           :           :           :           :           :           :           :           :        +- Scan parquet (167)
                  :           :           :           :           :           :           :           :           :           +- Sort (174)
                  :           :           :           :           :           :           :           :           :              +- Exchange (173)
                  :           :           :           :           :           :           :           :           :                 +- Filter (172)
                  :           :           :           :           :           :           :           :           :                    +- Scan parquet (171)
                  :           :           :           :           :           :           :           :           +- Sort (182)
                  :           :           :           :           :           :           :           :              +- Exchange (181)
                  :           :           :           :           :           :           :           :                 +- Filter (180)
                  :           :           :           :           :           :           :           :                    +- Scan parquet (179)
                  :           :           :           :           :           :           :           +- Sort (190)
                  :           :           :           :           :           :           :              +- Exchange (189)
                  :           :           :           :           :           :           :                 +- Filter (188)
                  :           :           :           :           :           :           :                    +- Scan parquet (187)
                  :           :           :           :           :           :           +- Sort (199)
                  :           :           :           :           :           :              +- Exchange (198)
                  :           :           :           :           :           :                 +- Project (197)
                  :           :           :           :           :           :                    +- Filter (196)
                  :           :           :           :           :           :                       +- Scan parquet (195)
                  :           :           :           :           :           +- Sort (208)
                  :           :           :           :           :              +- Exchange (207)
                  :           :           :           :           :                 +- Project (206)
                  :           :           :           :           :                    +- Filter (205)
                  :           :           :           :           :                       +- Scan parquet (204)
                  :           :           :           :           +- Sort (217)
                  :           :           :           :              +- Exchange (216)
                  :           :           :           :                 +- Project (215)
                  :           :           :           :                    +- Filter (214)
                  :           :           :           :                       +- Scan parquet (213)
                  :           :           :           +- Sort (225)
                  :           :           :              +- Exchange (224)
                  :           :           :                 +- Filter (223)
                  :           :           :                    +- Scan parquet (222)
                  :           :           +- Sort (233)
                  :           :              +- Exchange (232)
                  :           :                 +- Filter (231)
                  :           :                    +- Scan parquet (230)
                  :           +- Sort (241)
                  :              +- Exchange (240)
                  :                 +- Filter (239)
                  :                    +- Scan parquet (238)
                  +- Sort (249)
                     +- Exchange (248)
                        +- Filter (247)
                           +- Scan parquet (246)


(167) Scan parquet
Output [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_quantity), IsNotNull(cs_item_sk), IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_hdemo_sk), IsNotNull(cs_sold_date_sk), IsNotNull(cs_ship_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_ship_date_sk:int,cs_bill_cdemo_sk:int,cs_bill_hdemo_sk:int,cs_item_sk:int,cs_promo_sk:int,cs_order_number:int,cs_quantity:int>

(2) InputAdapter
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Arguments: [#1, #2, #3, #4, #5, #6, #7, #8]

(3) NativeFilter
Input [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]
Condition : (((((isnotnull(cs_quantity#8) AND isnotnull(cs_item_sk#5)) AND isnotnull(cs_bill_cdemo_sk#3)) AND isnotnull(cs_bill_hdemo_sk#4)) AND isnotnull(cs_sold_date_sk#1)) AND isnotnull(cs_ship_date_sk#2))

(4) NativeShuffleExchange
Input [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]
Arguments: hashpartitioning(cs_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=1]

(5) ShuffleQueryStage
Output [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]
Arguments: X

(6) AQEShuffleRead
Input [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]
Arguments: coalesced

(7) InputAdapter
Input [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]

(8) NativeSort
Input [8]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8]
Arguments: [cs_item_sk#5 ASC NULLS FIRST], false

(171) Scan parquet
Output [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(inv_quantity_on_hand), IsNotNull(inv_item_sk), IsNotNull(inv_warehouse_sk), IsNotNull(inv_date_sk)]
ReadSchema: struct<inv_date_sk:int,inv_item_sk:int,inv_warehouse_sk:int,inv_quantity_on_hand:int>

(10) InputAdapter
Input [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Arguments: [#9, #10, #11, #12]

(11) NativeFilter
Input [4]: [#9#9, #10#10, #11#11, #12#12]
Condition : (((isnotnull(inv_quantity_on_hand#12) AND isnotnull(inv_item_sk#10)) AND isnotnull(inv_warehouse_sk#11)) AND isnotnull(inv_date_sk#9))

(12) NativeShuffleExchange
Input [4]: [#9#9, #10#10, #11#11, #12#12]
Arguments: hashpartitioning(inv_item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=2]

(13) ShuffleQueryStage
Output [4]: [#9#9, #10#10, #11#11, #12#12]
Arguments: X

(14) AQEShuffleRead
Input [4]: [#9#9, #10#10, #11#11, #12#12]
Arguments: coalesced

(15) InputAdapter
Input [4]: [#9#9, #10#10, #11#11, #12#12]

(16) NativeSort
Input [4]: [#9#9, #10#10, #11#11, #12#12]
Arguments: [inv_item_sk#10 ASC NULLS FIRST], false

(17) SortMergeJoin [codegen id : X]
Left keys [1]: [cs_item_sk#5]
Right keys [1]: [inv_item_sk#10]
Join type: Inner
Join condition: (inv_quantity_on_hand#12 < cs_quantity#8)

(18) Project [codegen id : X]
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Input [12]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8, #9#9, #10#10, #11#11, #12#12]

(19) ConvertToNative
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]

(20) NativeShuffleExchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: hashpartitioning(inv_warehouse_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=3]

(21) ShuffleQueryStage
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: X

(22) AQEShuffleRead
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: coalesced

(23) InputAdapter
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]

(24) NativeSort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: [inv_warehouse_sk#11 ASC NULLS FIRST], false

(179) Scan parquet
Output [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(w_warehouse_sk)]
ReadSchema: struct<w_warehouse_sk:int,w_warehouse_name:string>

(26) InputAdapter
Input [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Arguments: [#13, #14]

(27) NativeFilter
Input [2]: [#13#13, #14#14]
Condition : isnotnull(w_warehouse_sk#13)

(28) NativeShuffleExchange
Input [2]: [#13#13, #14#14]
Arguments: hashpartitioning(w_warehouse_sk#13, 100), ENSURE_REQUIREMENTS, [plan_id=4]

(29) ShuffleQueryStage
Output [2]: [#13#13, #14#14]
Arguments: X

(30) AQEShuffleRead
Input [2]: [#13#13, #14#14]
Arguments: coalesced

(31) InputAdapter
Input [2]: [#13#13, #14#14]

(32) NativeSort
Input [2]: [#13#13, #14#14]
Arguments: [w_warehouse_sk#13 ASC NULLS FIRST], false

(33) NativeSortMergeJoin
Left keys [1]: [inv_warehouse_sk#11]
Right keys [1]: [w_warehouse_sk#13]
Join type: Inner
Join condition: None

(34) NativeProject
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11, #13#13, #14#14]

(35) NativeShuffleExchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: hashpartitioning(cs_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=5]

(36) ShuffleQueryStage
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: X

(37) AQEShuffleRead
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: coalesced

(38) InputAdapter
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]

(39) NativeSort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: [cs_item_sk#5 ASC NULLS FIRST], false

(187) Scan parquet
Output [2]: [i_item_sk#15, i_item_desc#16]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_item_desc:string>

(41) InputAdapter
Input [2]: [i_item_sk#15, i_item_desc#16]
Arguments: [#15, #16]

(42) NativeFilter
Input [2]: [#15#15, #16#16]
Condition : isnotnull(i_item_sk#15)

(43) NativeShuffleExchange
Input [2]: [#15#15, #16#16]
Arguments: hashpartitioning(i_item_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=6]

(44) ShuffleQueryStage
Output [2]: [#15#15, #16#16]
Arguments: X

(45) AQEShuffleRead
Input [2]: [#15#15, #16#16]
Arguments: coalesced

(46) InputAdapter
Input [2]: [#15#15, #16#16]

(47) NativeSort
Input [2]: [#15#15, #16#16]
Arguments: [i_item_sk#15 ASC NULLS FIRST], false

(48) NativeSortMergeJoin
Left keys [1]: [cs_item_sk#5]
Right keys [1]: [i_item_sk#15]
Join type: Inner
Join condition: None

(49) NativeProject
Output [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, #15#15, #16#16]

(50) NativeShuffleExchange
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_bill_cdemo_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=7]

(51) ShuffleQueryStage
Output [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: X

(52) AQEShuffleRead
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: coalesced

(53) InputAdapter
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]

(54) NativeSort
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_bill_cdemo_sk#3 ASC NULLS FIRST], false

(195) Scan parquet
Output [2]: [cd_demo_sk#17, cd_marital_status#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cd_marital_status), EqualTo(cd_marital_status,D), IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string>

(56) InputAdapter
Input [2]: [cd_demo_sk#17, cd_marital_status#18]
Arguments: [#17, #18]

(57) NativeFilter
Input [2]: [#17#17, #18#18]
Condition : ((isnotnull(cd_marital_status#18) AND (cd_marital_status#18 = D)) AND isnotnull(cd_demo_sk#17))

(58) NativeProject
Output [1]: [cd_demo_sk#17]
Input [2]: [#17#17, #18#18]

(59) NativeShuffleExchange
Input [1]: [cd_demo_sk#17]
Arguments: hashpartitioning(cd_demo_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=8]

(60) ShuffleQueryStage
Output [1]: [cd_demo_sk#17]
Arguments: X

(61) AQEShuffleRead
Input [1]: [cd_demo_sk#17]
Arguments: coalesced

(62) InputAdapter
Input [1]: [cd_demo_sk#17]

(63) NativeSort
Input [1]: [cd_demo_sk#17]
Arguments: [cd_demo_sk#17 ASC NULLS FIRST], false

(64) NativeSortMergeJoin
Left keys [1]: [cs_bill_cdemo_sk#3]
Right keys [1]: [cd_demo_sk#17]
Join type: Inner
Join condition: None

(65) NativeProject
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, cd_demo_sk#17]

(66) NativeShuffleExchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_bill_hdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=9]

(67) ShuffleQueryStage
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: X

(68) AQEShuffleRead
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: coalesced

(69) InputAdapter
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]

(70) NativeSort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_bill_hdemo_sk#4 ASC NULLS FIRST], false

(204) Scan parquet
Output [2]: [hd_demo_sk#19, hd_buy_potential#20]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(hd_buy_potential), EqualTo(hd_buy_potential,>10000), IsNotNull(hd_demo_sk)]
ReadSchema: struct<hd_demo_sk:int,hd_buy_potential:string>

(72) InputAdapter
Input [2]: [hd_demo_sk#19, hd_buy_potential#20]
Arguments: [#19, #20]

(73) NativeFilter
Input [2]: [#19#19, #20#20]
Condition : ((isnotnull(hd_buy_potential#20) AND (hd_buy_potential#20 = >10000)) AND isnotnull(hd_demo_sk#19))

(74) NativeProject
Output [1]: [hd_demo_sk#19]
Input [2]: [#19#19, #20#20]

(75) NativeShuffleExchange
Input [1]: [hd_demo_sk#19]
Arguments: hashpartitioning(hd_demo_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=10]

(76) ShuffleQueryStage
Output [1]: [hd_demo_sk#19]
Arguments: X

(77) AQEShuffleRead
Input [1]: [hd_demo_sk#19]
Arguments: coalesced

(78) InputAdapter
Input [1]: [hd_demo_sk#19]

(79) NativeSort
Input [1]: [hd_demo_sk#19]
Arguments: [hd_demo_sk#19 ASC NULLS FIRST], false

(80) NativeSortMergeJoin
Left keys [1]: [cs_bill_hdemo_sk#4]
Right keys [1]: [hd_demo_sk#19]
Join type: Inner
Join condition: None

(81) NativeProject
Output [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, hd_demo_sk#19]

(82) NativeShuffleExchange
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=11]

(83) ShuffleQueryStage
Output [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: X

(84) AQEShuffleRead
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: coalesced

(85) InputAdapter
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]

(86) NativeSort
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false

(213) Scan parquet
Output [4]: [d_date_sk#21, d_date#22, d_week_seq#23, d_year#24]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), EqualTo(d_year,1999), IsNotNull(d_date_sk), IsNotNull(d_week_seq), IsNotNull(d_date)]
ReadSchema: struct<d_date_sk:int,d_date:date,d_week_seq:int,d_year:int>

(88) InputAdapter
Input [4]: [d_date_sk#21, d_date#22, d_week_seq#23, d_year#24]
Arguments: [#21, #22, #23, #24]

(89) NativeFilter
Input [4]: [#21#21, #22#22, #23#23, #24#24]
Condition : ((((isnotnull(d_year#24) AND (d_year#24 = 1999)) AND isnotnull(d_date_sk#21)) AND isnotnull(d_week_seq#23)) AND isnotnull(d_date#22))

(90) NativeProject
Output [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Input [4]: [#21#21, #22#22, #23#23, #24#24]

(91) NativeShuffleExchange
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(d_date_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=12]

(92) ShuffleQueryStage
Output [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: X

(93) AQEShuffleRead
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: coalesced

(94) InputAdapter
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]

(95) NativeSort
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: [d_date_sk#21 ASC NULLS FIRST], false

(96) NativeSortMergeJoin
Left keys [1]: [cs_sold_date_sk#1]
Right keys [1]: [d_date_sk#21]
Join type: Inner
Join condition: None

(97) NativeProject
Output [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date_sk#21, d_date#22, d_week_seq#23]

(98) NativeShuffleExchange
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(d_week_seq#23, inv_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=13]

(99) ShuffleQueryStage
Output [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: X

(100) AQEShuffleRead
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: coalesced

(101) InputAdapter
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]

(102) NativeSort
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: [d_week_seq#23 ASC NULLS FIRST, inv_date_sk#9 ASC NULLS FIRST], false

(222) Scan parquet
Output [2]: [d_date_sk#25, d_week_seq#26]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_week_seq:int>

(104) InputAdapter
Input [2]: [d_date_sk#25, d_week_seq#26]
Arguments: [#25, #26]

(105) NativeFilter
Input [2]: [#25#25, #26#26]
Condition : (isnotnull(d_week_seq#26) AND isnotnull(d_date_sk#25))

(106) NativeShuffleExchange
Input [2]: [#25#25, #26#26]
Arguments: hashpartitioning(d_week_seq#26, d_date_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=14]

(107) ShuffleQueryStage
Output [2]: [#25#25, #26#26]
Arguments: X

(108) AQEShuffleRead
Input [2]: [#25#25, #26#26]
Arguments: coalesced

(109) InputAdapter
Input [2]: [#25#25, #26#26]

(110) NativeSort
Input [2]: [#25#25, #26#26]
Arguments: [d_week_seq#26 ASC NULLS FIRST, d_date_sk#25 ASC NULLS FIRST], false

(111) NativeSortMergeJoin
Left keys [2]: [d_week_seq#23, inv_date_sk#9]
Right keys [2]: [d_week_seq#26, d_date_sk#25]
Join type: Inner
Join condition: None

(112) NativeProject
Output [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Input [11]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23, #25#25, #26#26]

(113) NativeShuffleExchange
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(cs_ship_date_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=15]

(114) ShuffleQueryStage
Output [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: X

(115) AQEShuffleRead
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: coalesced

(116) InputAdapter
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]

(117) NativeSort
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: [cs_ship_date_sk#2 ASC NULLS FIRST], false

(230) Scan parquet
Output [2]: [d_date_sk#27, d_date#28]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_date), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_date:date>

(119) InputAdapter
Input [2]: [d_date_sk#27, d_date#28]
Arguments: [#27, #28]

(120) NativeFilter
Input [2]: [#27#27, #28#28]
Condition : (isnotnull(d_date#28) AND isnotnull(d_date_sk#27))

(121) NativeShuffleExchange
Input [2]: [#27#27, #28#28]
Arguments: hashpartitioning(d_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=16]

(122) ShuffleQueryStage
Output [2]: [#27#27, #28#28]
Arguments: X

(123) AQEShuffleRead
Input [2]: [#27#27, #28#28]
Arguments: coalesced

(124) InputAdapter
Input [2]: [#27#27, #28#28]

(125) NativeSort
Input [2]: [#27#27, #28#28]
Arguments: [d_date_sk#27 ASC NULLS FIRST], false

(126) SortMergeJoin [codegen id : X]
Left keys [1]: [cs_ship_date_sk#2]
Right keys [1]: [d_date_sk#27]
Join type: Inner
Join condition: (d_date#28 > date_add(d_date#22, 5))

(127) Project [codegen id : X]
Output [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [10]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23, #27#27, #28#28]

(128) ConvertToNative
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]

(129) NativeShuffleExchange
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: hashpartitioning(cs_promo_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=17]

(130) ShuffleQueryStage
Output [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: X

(131) AQEShuffleRead
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: coalesced

(132) InputAdapter
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]

(133) NativeSort
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: [cs_promo_sk#6 ASC NULLS FIRST], false

(238) Scan parquet
Output [1]: [p_promo_sk#29]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(p_promo_sk)]
ReadSchema: struct<p_promo_sk:int>

(135) InputAdapter
Input [1]: [p_promo_sk#29]
Arguments: [#29]

(136) NativeFilter
Input [1]: [#29#29]
Condition : isnotnull(p_promo_sk#29)

(137) NativeShuffleExchange
Input [1]: [#29#29]
Arguments: hashpartitioning(p_promo_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=18]

(138) ShuffleQueryStage
Output [1]: [#29#29]
Arguments: X

(139) AQEShuffleRead
Input [1]: [#29#29]
Arguments: coalesced

(140) InputAdapter
Input [1]: [#29#29]

(141) NativeSort
Input [1]: [#29#29]
Arguments: [p_promo_sk#29 ASC NULLS FIRST], false

(142) NativeSortMergeJoin
Left keys [1]: [cs_promo_sk#6]
Right keys [1]: [p_promo_sk#29]
Join type: LeftOuter
Join condition: None

(143) NativeProject
Output [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [7]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23, #29#29]

(144) NativeShuffleExchange
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: hashpartitioning(cs_item_sk#5, cs_order_number#7, 100), ENSURE_REQUIREMENTS, [plan_id=19]

(145) ShuffleQueryStage
Output [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: X

(146) AQEShuffleRead
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: coalesced

(147) InputAdapter
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]

(148) NativeSort
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: [cs_item_sk#5 ASC NULLS FIRST, cs_order_number#7 ASC NULLS FIRST], false

(246) Scan parquet
Output [2]: [cr_item_sk#30, cr_order_number#31]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)]
ReadSchema: struct<cr_item_sk:int,cr_order_number:int>

(150) InputAdapter
Input [2]: [cr_item_sk#30, cr_order_number#31]
Arguments: [#30, #31]

(151) NativeFilter
Input [2]: [#30#30, #31#31]
Condition : (isnotnull(cr_item_sk#30) AND isnotnull(cr_order_number#31))

(152) NativeShuffleExchange
Input [2]: [#30#30, #31#31]
Arguments: hashpartitioning(cr_item_sk#30, cr_order_number#31, 100), ENSURE_REQUIREMENTS, [plan_id=20]

(153) ShuffleQueryStage
Output [2]: [#30#30, #31#31]
Arguments: X

(154) AQEShuffleRead
Input [2]: [#30#30, #31#31]
Arguments: coalesced

(155) InputAdapter
Input [2]: [#30#30, #31#31]

(156) NativeSort
Input [2]: [#30#30, #31#31]
Arguments: [cr_item_sk#30 ASC NULLS FIRST, cr_order_number#31 ASC NULLS FIRST], false

(157) NativeSortMergeJoin
Left keys [2]: [cs_item_sk#5, cs_order_number#7]
Right keys [2]: [cr_item_sk#30, cr_order_number#31]
Join type: LeftOuter
Join condition: None

(158) NativeProject
Output [3]: [w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [7]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23, #30#30, #31#31]

(159) NativeHashAggregate
Input [3]: [w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#32]
Results [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]

(160) NativeShuffleExchange
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]
Arguments: hashpartitioning(i_item_desc#16, w_warehouse_name#14, d_week_seq#23, 100), ENSURE_REQUIREMENTS, [plan_id=21]

(161) ShuffleQueryStage
Output [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]
Arguments: X

(162) AQEShuffleRead
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]
Arguments: coalesced

(163) InputAdapter
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]

(164) NativeHashAggregate
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33]
Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#34]
Results [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count(1)#34]

(165) NativeProject
Output [6]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count(1)#34 AS no_promo#35, count(1)#34 AS promo#36, count(1)#34 AS total_cnt#37]
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count(1)#34]

(166) NativeTakeOrdered
Input [6]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, no_promo#35, promo#36, total_cnt#37]
Arguments: X, X, [total_cnt#37 DESC NULLS LAST, i_item_desc#16 ASC NULLS FIRST, w_warehouse_name#14 ASC NULLS FIRST, d_week_seq#23 ASC NULLS FIRST]

(167) Scan parquet
Output [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_quantity), IsNotNull(cs_item_sk), IsNotNull(cs_bill_cdemo_sk), IsNotNull(cs_bill_hdemo_sk), IsNotNull(cs_sold_date_sk), IsNotNull(cs_ship_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_ship_date_sk:int,cs_bill_cdemo_sk:int,cs_bill_hdemo_sk:int,cs_item_sk:int,cs_promo_sk:int,cs_order_number:int,cs_quantity:int>

(168) Filter
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Condition : (((((isnotnull(cs_quantity#8) AND isnotnull(cs_item_sk#5)) AND isnotnull(cs_bill_cdemo_sk#3)) AND isnotnull(cs_bill_hdemo_sk#4)) AND isnotnull(cs_sold_date_sk#1)) AND isnotnull(cs_ship_date_sk#2))

(169) Exchange
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Arguments: hashpartitioning(cs_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=22]

(170) Sort
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8]
Arguments: [cs_item_sk#5 ASC NULLS FIRST], false, 0

(171) Scan parquet
Output [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(inv_quantity_on_hand), IsNotNull(inv_item_sk), IsNotNull(inv_warehouse_sk), IsNotNull(inv_date_sk)]
ReadSchema: struct<inv_date_sk:int,inv_item_sk:int,inv_warehouse_sk:int,inv_quantity_on_hand:int>

(172) Filter
Input [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Condition : (((isnotnull(inv_quantity_on_hand#12) AND isnotnull(inv_item_sk#10)) AND isnotnull(inv_warehouse_sk#11)) AND isnotnull(inv_date_sk#9))

(173) Exchange
Input [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Arguments: hashpartitioning(inv_item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=23]

(174) Sort
Input [4]: [inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]
Arguments: [inv_item_sk#10 ASC NULLS FIRST], false, 0

(175) SortMergeJoin
Left keys [1]: [cs_item_sk#5]
Right keys [1]: [inv_item_sk#10]
Join type: Inner
Join condition: (inv_quantity_on_hand#12 < cs_quantity#8)

(176) Project
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Input [12]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, cs_quantity#8, inv_date_sk#9, inv_item_sk#10, inv_warehouse_sk#11, inv_quantity_on_hand#12]

(177) Exchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: hashpartitioning(inv_warehouse_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=24]

(178) Sort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11]
Arguments: [inv_warehouse_sk#11 ASC NULLS FIRST], false, 0

(179) Scan parquet
Output [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(w_warehouse_sk)]
ReadSchema: struct<w_warehouse_sk:int,w_warehouse_name:string>

(180) Filter
Input [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Condition : isnotnull(w_warehouse_sk#13)

(181) Exchange
Input [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Arguments: hashpartitioning(w_warehouse_sk#13, 100), ENSURE_REQUIREMENTS, [plan_id=25]

(182) Sort
Input [2]: [w_warehouse_sk#13, w_warehouse_name#14]
Arguments: [w_warehouse_sk#13 ASC NULLS FIRST], false, 0

(183) SortMergeJoin
Left keys [1]: [inv_warehouse_sk#11]
Right keys [1]: [w_warehouse_sk#13]
Join type: Inner
Join condition: None

(184) Project
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11, w_warehouse_sk#13, w_warehouse_name#14]

(185) Exchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: hashpartitioning(cs_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=26]

(186) Sort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14]
Arguments: [cs_item_sk#5 ASC NULLS FIRST], false, 0

(187) Scan parquet
Output [2]: [i_item_sk#15, i_item_desc#16]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_item_desc:string>

(188) Filter
Input [2]: [i_item_sk#15, i_item_desc#16]
Condition : isnotnull(i_item_sk#15)

(189) Exchange
Input [2]: [i_item_sk#15, i_item_desc#16]
Arguments: hashpartitioning(i_item_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=27]

(190) Sort
Input [2]: [i_item_sk#15, i_item_desc#16]
Arguments: [i_item_sk#15 ASC NULLS FIRST], false, 0

(191) SortMergeJoin
Left keys [1]: [cs_item_sk#5]
Right keys [1]: [i_item_sk#15]
Join type: Inner
Join condition: None

(192) Project
Output [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_sk#15, i_item_desc#16]

(193) Exchange
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_bill_cdemo_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=28]

(194) Sort
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_bill_cdemo_sk#3 ASC NULLS FIRST], false, 0

(195) Scan parquet
Output [2]: [cd_demo_sk#17, cd_marital_status#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cd_marital_status), EqualTo(cd_marital_status,D), IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string>

(196) Filter
Input [2]: [cd_demo_sk#17, cd_marital_status#18]
Condition : ((isnotnull(cd_marital_status#18) AND (cd_marital_status#18 = D)) AND isnotnull(cd_demo_sk#17))

(197) Project
Output [1]: [cd_demo_sk#17]
Input [2]: [cd_demo_sk#17, cd_marital_status#18]

(198) Exchange
Input [1]: [cd_demo_sk#17]
Arguments: hashpartitioning(cd_demo_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=29]

(199) Sort
Input [1]: [cd_demo_sk#17]
Arguments: [cd_demo_sk#17 ASC NULLS FIRST], false, 0

(200) SortMergeJoin
Left keys [1]: [cs_bill_cdemo_sk#3]
Right keys [1]: [cd_demo_sk#17]
Join type: Inner
Join condition: None

(201) Project
Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, cd_demo_sk#17]

(202) Exchange
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_bill_hdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=30]

(203) Sort
Input [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_bill_hdemo_sk#4 ASC NULLS FIRST], false, 0

(204) Scan parquet
Output [2]: [hd_demo_sk#19, hd_buy_potential#20]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(hd_buy_potential), EqualTo(hd_buy_potential,>10000), IsNotNull(hd_demo_sk)]
ReadSchema: struct<hd_demo_sk:int,hd_buy_potential:string>

(205) Filter
Input [2]: [hd_demo_sk#19, hd_buy_potential#20]
Condition : ((isnotnull(hd_buy_potential#20) AND (hd_buy_potential#20 = >10000)) AND isnotnull(hd_demo_sk#19))

(206) Project
Output [1]: [hd_demo_sk#19]
Input [2]: [hd_demo_sk#19, hd_buy_potential#20]

(207) Exchange
Input [1]: [hd_demo_sk#19]
Arguments: hashpartitioning(hd_demo_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=31]

(208) Sort
Input [1]: [hd_demo_sk#19]
Arguments: [hd_demo_sk#19 ASC NULLS FIRST], false, 0

(209) SortMergeJoin
Left keys [1]: [cs_bill_hdemo_sk#4]
Right keys [1]: [hd_demo_sk#19]
Join type: Inner
Join condition: None

(210) Project
Output [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Input [10]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, hd_demo_sk#19]

(211) Exchange
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: hashpartitioning(cs_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=32]

(212) Sort
Input [8]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16]
Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false, 0

(213) Scan parquet
Output [4]: [d_date_sk#21, d_date#22, d_week_seq#23, d_year#24]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), EqualTo(d_year,1999), IsNotNull(d_date_sk), IsNotNull(d_week_seq), IsNotNull(d_date)]
ReadSchema: struct<d_date_sk:int,d_date:date,d_week_seq:int,d_year:int>

(214) Filter
Input [4]: [d_date_sk#21, d_date#22, d_week_seq#23, d_year#24]
Condition : ((((isnotnull(d_year#24) AND (d_year#24 = 1999)) AND isnotnull(d_date_sk#21)) AND isnotnull(d_week_seq#23)) AND isnotnull(d_date#22))

(215) Project
Output [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Input [4]: [d_date_sk#21, d_date#22, d_week_seq#23, d_year#24]

(216) Exchange
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(d_date_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=33]

(217) Sort
Input [3]: [d_date_sk#21, d_date#22, d_week_seq#23]
Arguments: [d_date_sk#21 ASC NULLS FIRST], false, 0

(218) SortMergeJoin
Left keys [1]: [cs_sold_date_sk#1]
Right keys [1]: [d_date_sk#21]
Join type: Inner
Join condition: None

(219) Project
Output [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Input [11]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date_sk#21, d_date#22, d_week_seq#23]

(220) Exchange
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(d_week_seq#23, inv_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=34]

(221) Sort
Input [9]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: [d_week_seq#23 ASC NULLS FIRST, inv_date_sk#9 ASC NULLS FIRST], false, 0

(222) Scan parquet
Output [2]: [d_date_sk#25, d_week_seq#26]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_week_seq:int>

(223) Filter
Input [2]: [d_date_sk#25, d_week_seq#26]
Condition : (isnotnull(d_week_seq#26) AND isnotnull(d_date_sk#25))

(224) Exchange
Input [2]: [d_date_sk#25, d_week_seq#26]
Arguments: hashpartitioning(d_week_seq#26, d_date_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=35]

(225) Sort
Input [2]: [d_date_sk#25, d_week_seq#26]
Arguments: [d_week_seq#26 ASC NULLS FIRST, d_date_sk#25 ASC NULLS FIRST], false, 0

(226) SortMergeJoin
Left keys [2]: [d_week_seq#23, inv_date_sk#9]
Right keys [2]: [d_week_seq#26, d_date_sk#25]
Join type: Inner
Join condition: None

(227) Project
Output [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Input [11]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23, d_date_sk#25, d_week_seq#26]

(228) Exchange
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: hashpartitioning(cs_ship_date_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=36]

(229) Sort
Input [8]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23]
Arguments: [cs_ship_date_sk#2 ASC NULLS FIRST], false, 0

(230) Scan parquet
Output [2]: [d_date_sk#27, d_date#28]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_date), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_date:date>

(231) Filter
Input [2]: [d_date_sk#27, d_date#28]
Condition : (isnotnull(d_date#28) AND isnotnull(d_date_sk#27))

(232) Exchange
Input [2]: [d_date_sk#27, d_date#28]
Arguments: hashpartitioning(d_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=37]

(233) Sort
Input [2]: [d_date_sk#27, d_date#28]
Arguments: [d_date_sk#27 ASC NULLS FIRST], false, 0

(234) SortMergeJoin
Left keys [1]: [cs_ship_date_sk#2]
Right keys [1]: [d_date_sk#27]
Join type: Inner
Join condition: (d_date#28 > date_add(d_date#22, 5))

(235) Project
Output [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [10]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23, d_date_sk#27, d_date#28]

(236) Exchange
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: hashpartitioning(cs_promo_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=38]

(237) Sort
Input [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: [cs_promo_sk#6 ASC NULLS FIRST], false, 0

(238) Scan parquet
Output [1]: [p_promo_sk#29]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(p_promo_sk)]
ReadSchema: struct<p_promo_sk:int>

(239) Filter
Input [1]: [p_promo_sk#29]
Condition : isnotnull(p_promo_sk#29)

(240) Exchange
Input [1]: [p_promo_sk#29]
Arguments: hashpartitioning(p_promo_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=39]

(241) Sort
Input [1]: [p_promo_sk#29]
Arguments: [p_promo_sk#29 ASC NULLS FIRST], false, 0

(242) SortMergeJoin
Left keys [1]: [cs_promo_sk#6]
Right keys [1]: [p_promo_sk#29]
Join type: LeftOuter
Join condition: None

(243) Project
Output [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [7]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23, p_promo_sk#29]

(244) Exchange
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: hashpartitioning(cs_item_sk#5, cs_order_number#7, 100), ENSURE_REQUIREMENTS, [plan_id=40]

(245) Sort
Input [5]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Arguments: [cs_item_sk#5 ASC NULLS FIRST, cs_order_number#7 ASC NULLS FIRST], false, 0

(246) Scan parquet
Output [2]: [cr_item_sk#30, cr_order_number#31]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)]
ReadSchema: struct<cr_item_sk:int,cr_order_number:int>

(247) Filter
Input [2]: [cr_item_sk#30, cr_order_number#31]
Condition : (isnotnull(cr_item_sk#30) AND isnotnull(cr_order_number#31))

(248) Exchange
Input [2]: [cr_item_sk#30, cr_order_number#31]
Arguments: hashpartitioning(cr_item_sk#30, cr_order_number#31, 100), ENSURE_REQUIREMENTS, [plan_id=41]

(249) Sort
Input [2]: [cr_item_sk#30, cr_order_number#31]
Arguments: [cr_item_sk#30 ASC NULLS FIRST, cr_order_number#31 ASC NULLS FIRST], false, 0

(250) SortMergeJoin
Left keys [2]: [cs_item_sk#5, cs_order_number#7]
Right keys [2]: [cr_item_sk#30, cr_order_number#31]
Join type: LeftOuter
Join condition: None

(251) Project
Output [3]: [w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Input [7]: [cs_item_sk#5, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23, cr_item_sk#30, cr_order_number#31]

(252) HashAggregate
Input [3]: [w_warehouse_name#14, i_item_desc#16, d_week_seq#23]
Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#32]
Results [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count#38]

(253) Exchange
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count#38]
Arguments: hashpartitioning(i_item_desc#16, w_warehouse_name#14, d_week_seq#23, 100), ENSURE_REQUIREMENTS, [plan_id=42]

(254) HashAggregate
Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count#38]
Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#34]
Results [6]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, count(1)#34 AS no_promo#35, count(1)#34 AS promo#36, count(1)#34 AS total_cnt#37]

(255) TakeOrderedAndProject
Input [6]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, no_promo#35, promo#36, total_cnt#37]
Arguments: X, [total_cnt#37 DESC NULLS LAST, i_item_desc#16 ASC NULLS FIRST, w_warehouse_name#14 ASC NULLS FIRST, d_week_seq#23 ASC NULLS FIRST], [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, no_promo#35, promo#36, total_cnt#37]

(256) AdaptiveSparkPlan
Output [6]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, no_promo#35, promo#36, total_cnt#37]
Arguments: isFinalPlan=true

