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


(165) 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

(169) 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) NativeSortMergeJoin
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) 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, 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) 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]

(20) 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

(21) 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

(22) 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]

(23) 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

(177) 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>

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

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

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

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

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

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

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

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

(33) 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]

(34) 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]

(35) 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

(36) 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

(37) 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]

(38) 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

(185) 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>

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

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

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

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

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

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

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

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

(48) 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]

(49) 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]

(50) 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

(51) 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

(52) 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]

(53) 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

(193) 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>

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

(56) 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))

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

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

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

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

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

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

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

(64) 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]

(65) 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]

(66) 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

(67) 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

(68) 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]

(69) 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

(202) 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>

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

(72) 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))

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

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

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

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

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

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

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

(80) 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]

(81) 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]

(82) 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

(83) 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

(84) 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]

(85) 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

(211) 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>

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

(88) 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))

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

(90) 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]

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

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

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

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

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

(96) 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]

(97) 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]

(98) 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

(99) 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

(100) 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]

(101) 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

(220) 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>

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

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

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

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

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

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

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

(110) 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

(111) 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]

(112) 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]

(113) 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

(114) 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

(115) 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]

(116) 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

(228) 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>

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

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

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

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

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

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

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

(125) NativeSortMergeJoin
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))

(126) NativeProject
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]

(127) 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]

(128) 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

(129) 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

(130) 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]

(131) 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

(236) 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>

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

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

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

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

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

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

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

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

(141) 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]

(142) 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]

(143) 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

(144) 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

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

(146) 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

(244) 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>

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

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

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

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

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

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

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

(155) 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

(156) 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]

(157) 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]

(158) 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]

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

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

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

(162) 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]

(163) 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]

(164) 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]

(165) 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>

(166) 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))

(167) 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]

(168) 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

(169) 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>

(170) 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))

(171) 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]

(172) 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

(173) 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)

(174) 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]

(175) 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]

(176) 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

(177) 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>

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

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

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

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

(182) 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]

(183) 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]

(184) 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

(185) 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>

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

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

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

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

(190) 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]

(191) 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]

(192) 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

(193) 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>

(194) 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))

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

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

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

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

(199) 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]

(200) 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]

(201) 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

(202) 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>

(203) 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))

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

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

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

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

(208) 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]

(209) 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]

(210) 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

(211) 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>

(212) 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))

(213) 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]

(214) 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]

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

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

(217) 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]

(218) 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]

(219) 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

(220) 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>

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

(222) 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]

(223) 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

(224) 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

(225) 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]

(226) 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]

(227) 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

(228) 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>

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

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

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

(232) 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))

(233) 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]

(234) 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]

(235) 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

(236) 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>

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

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

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

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

(241) 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]

(242) 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]

(243) 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

(244) 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>

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

(246) 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]

(247) 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

(248) 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

(249) 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]

(250) 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]

(251) 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]

(252) 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]

(253) 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]

(254) 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

