== Physical Plan ==
AdaptiveSparkPlan (415)
+- == Final Plan ==
   NativeTakeOrdered (248)
   +- InputAdapter (247)
      +- NativeUnion (246)
         :- NativeProject (137)
         :  +- NativeHashAggregate (136)
         :     +- InputAdapter (135)
         :        +- AQEShuffleRead (134)
         :           +- ShuffleQueryStage (133), Statistics(X)
         :              +- NativeShuffleExchange (132)
         :                 +- NativeHashAggregate (131)
         :                    +- NativeProject (130)
         :                       +- NativeProject (129)
         :                          +- NativeSortMergeJoin Inner (128)
         :                             :- NativeSort (118)
         :                             :  +- InputAdapter (117)
         :                             :     +- AQEShuffleRead (116)
         :                             :        +- ShuffleQueryStage (115), Statistics(X)
         :                             :           +- NativeShuffleExchange (114)
         :                             :              +- NativeProject (113)
         :                             :                 +- NativeSortMergeJoin Inner (112)
         :                             :                    :- NativeSortMergeJoin LeftSemi (81)
         :                             :                    :  :- NativeSort (55)
         :                             :                    :  :  +- InputAdapter (54)
         :                             :                    :  :     +- AQEShuffleRead (53)
         :                             :                    :  :        +- ShuffleQueryStage (52), Statistics(X)
         :                             :                    :  :           +- NativeShuffleExchange (51)
         :                             :                    :  :              +- NativeProject (50)
         :                             :                    :  :                 +- NativeSortMergeJoin LeftSemi (49)
         :                             :                    :  :                    :- NativeSort (8)
         :                             :                    :  :                    :  +- InputAdapter (7)
         :                             :                    :  :                    :     +- AQEShuffleRead (6)
         :                             :                    :  :                    :        +- ShuffleQueryStage (5), Statistics(X)
         :                             :                    :  :                    :           +- NativeShuffleExchange (4)
         :                             :                    :  :                    :              +- NativeFilter (3)
         :                             :                    :  :                    :                 +- InputAdapter (2)
         :                             :                    :  :                    :                    +- NativeParquetScan  (1)
         :                             :                    :  :                    +- NativeSort (48)
         :                             :                    :  :                       +- NativeProject (47)
         :                             :                    :  :                          +- NativeFilter (46)
         :                             :                    :  :                             +- NativeProject (45)
         :                             :                    :  :                                +- NativeHashAggregate (44)
         :                             :                    :  :                                   +- NativeHashAggregate (43)
         :                             :                    :  :                                      +- NativeProject (42)
         :                             :                    :  :                                         +- NativeSortMergeJoin Inner (41)
         :                             :                    :  :                                            :- NativeSort (32)
         :                             :                    :  :                                            :  +- InputAdapter (31)
         :                             :                    :  :                                            :     +- AQEShuffleRead (30)
         :                             :                    :  :                                            :        +- ShuffleQueryStage (29), Statistics(X)
         :                             :                    :  :                                            :           +- NativeShuffleExchange (28)
         :                             :                    :  :                                            :              +- NativeProject (27)
         :                             :                    :  :                                            :                 +- NativeSortMergeJoin Inner (26)
         :                             :                    :  :                                            :                    :- NativeSort (16)
         :                             :                    :  :                                            :                    :  +- InputAdapter (15)
         :                             :                    :  :                                            :                    :     +- AQEShuffleRead (14)
         :                             :                    :  :                                            :                    :        +- ShuffleQueryStage (13), Statistics(X)
         :                             :                    :  :                                            :                    :           +- NativeShuffleExchange (12)
         :                             :                    :  :                                            :                    :              +- NativeFilter (11)
         :                             :                    :  :                                            :                    :                 +- InputAdapter (10)
         :                             :                    :  :                                            :                    :                    +- NativeParquetScan  (9)
         :                             :                    :  :                                            :                    +- NativeSort (25)
         :                             :                    :  :                                            :                       +- InputAdapter (24)
         :                             :                    :  :                                            :                          +- AQEShuffleRead (23)
         :                             :                    :  :                                            :                             +- ShuffleQueryStage (22), Statistics(X)
         :                             :                    :  :                                            :                                +- NativeShuffleExchange (21)
         :                             :                    :  :                                            :                                   +- NativeProject (20)
         :                             :                    :  :                                            :                                      +- NativeFilter (19)
         :                             :                    :  :                                            :                                         +- InputAdapter (18)
         :                             :                    :  :                                            :                                            +- NativeParquetScan  (17)
         :                             :                    :  :                                            +- NativeSort (40)
         :                             :                    :  :                                               +- InputAdapter (39)
         :                             :                    :  :                                                  +- AQEShuffleRead (38)
         :                             :                    :  :                                                     +- ShuffleQueryStage (37), Statistics(X)
         :                             :                    :  :                                                        +- NativeShuffleExchange (36)
         :                             :                    :  :                                                           +- NativeFilter (35)
         :                             :                    :  :                                                              +- InputAdapter (34)
         :                             :                    :  :                                                                 +- NativeParquetScan  (33)
         :                             :                    :  +- NativeSort (80)
         :                             :                    :     +- NativeProject (79)
         :                             :                    :        +- NativeFilter (78)
         :                             :                    :           +- NativeProject (77)
         :                             :                    :              +- NativeHashAggregate (76)
         :                             :                    :                 +- NativeHashAggregate (75)
         :                             :                    :                    +- NativeProject (74)
         :                             :                    :                       +- NativeProject (73)
         :                             :                    :                          +- NativeSortMergeJoin Inner (72)
         :                             :                    :                             :- NativeSort (63)
         :                             :                    :                             :  +- InputAdapter (62)
         :                             :                    :                             :     +- AQEShuffleRead (61)
         :                             :                    :                             :        +- ShuffleQueryStage (60), Statistics(X)
         :                             :                    :                             :           +- NativeShuffleExchange (59)
         :                             :                    :                             :              +- NativeFilter (58)
         :                             :                    :                             :                 +- InputAdapter (57)
         :                             :                    :                             :                    +- NativeParquetScan  (56)
         :                             :                    :                             +- NativeSort (71)
         :                             :                    :                                +- InputAdapter (70)
         :                             :                    :                                   +- AQEShuffleRead (69)
         :                             :                    :                                      +- ShuffleQueryStage (68), Statistics(X)
         :                             :                    :                                         +- NativeShuffleExchange (67)
         :                             :                    :                                            +- NativeFilter (66)
         :                             :                    :                                               +- InputAdapter (65)
         :                             :                    :                                                  +- NativeParquetScan  (64)
         :                             :                    +- NativeSortMergeJoin LeftSemi (111)
         :                             :                       :- NativeSort (89)
         :                             :                       :  +- InputAdapter (88)
         :                             :                       :     +- AQEShuffleRead (87)
         :                             :                       :        +- ShuffleQueryStage (86), Statistics(X)
         :                             :                       :           +- NativeShuffleExchange (85)
         :                             :                       :              +- NativeFilter (84)
         :                             :                       :                 +- InputAdapter (83)
         :                             :                       :                    +- NativeParquetScan  (82)
         :                             :                       +- NativeSort (110)
         :                             :                          +- NativeProject (109)
         :                             :                             +- NativeFilter (108)
         :                             :                                +- NativeProject (107)
         :                             :                                   +- NativeHashAggregate (106)
         :                             :                                      +- NativeHashAggregate (105)
         :                             :                                         +- NativeProject (104)
         :                             :                                            +- NativeProject (103)
         :                             :                                               +- NativeSortMergeJoin Inner (102)
         :                             :                                                  :- NativeSort (95)
         :                             :                                                  :  +- InputAdapter (94)
         :                             :                                                  :     +- InputAdapter (93)
         :                             :                                                  :        +- AQEShuffleRead (92)
         :                             :                                                  :           +- ShuffleQueryStage (91), Statistics(X)
         :                             :                                                  :              +- ReusedExchange (90)
         :                             :                                                  +- NativeSort (101)
         :                             :                                                     +- InputAdapter (100)
         :                             :                                                        +- InputAdapter (99)
         :                             :                                                           +- AQEShuffleRead (98)
         :                             :                                                              +- ShuffleQueryStage (97), Statistics(X)
         :                             :                                                                 +- ReusedExchange (96)
         :                             +- NativeSort (127)
         :                                +- InputAdapter (126)
         :                                   +- AQEShuffleRead (125)
         :                                      +- ShuffleQueryStage (124), Statistics(X)
         :                                         +- NativeShuffleExchange (123)
         :                                            +- NativeProject (122)
         :                                               +- NativeFilter (121)
         :                                                  +- InputAdapter (120)
         :                                                     +- NativeParquetScan  (119)
         +- NativeProject (245)
            +- NativeHashAggregate (244)
               +- InputAdapter (243)
                  +- AQEShuffleRead (242)
                     +- ShuffleQueryStage (241), Statistics(X)
                        +- NativeShuffleExchange (240)
                           +- NativeHashAggregate (239)
                              +- NativeProject (238)
                                 +- NativeProject (237)
                                    +- NativeSortMergeJoin Inner (236)
                                       :- NativeSort (229)
                                       :  +- InputAdapter (228)
                                       :     +- AQEShuffleRead (227)
                                       :        +- ShuffleQueryStage (226), Statistics(X)
                                       :           +- NativeShuffleExchange (225)
                                       :              +- NativeProject (224)
                                       :                 +- NativeSortMergeJoin Inner (223)
                                       :                    :- NativeSortMergeJoin LeftSemi (194)
                                       :                    :  :- NativeSort (172)
                                       :                    :  :  +- InputAdapter (171)
                                       :                    :  :     +- AQEShuffleRead (170)
                                       :                    :  :        +- ShuffleQueryStage (169), Statistics(X)
                                       :                    :  :           +- NativeShuffleExchange (168)
                                       :                    :  :              +- NativeProject (167)
                                       :                    :  :                 +- NativeSortMergeJoin LeftSemi (166)
                                       :                    :  :                    :- NativeSort (145)
                                       :                    :  :                    :  +- InputAdapter (144)
                                       :                    :  :                    :     +- AQEShuffleRead (143)
                                       :                    :  :                    :        +- ShuffleQueryStage (142), Statistics(X)
                                       :                    :  :                    :           +- NativeShuffleExchange (141)
                                       :                    :  :                    :              +- NativeFilter (140)
                                       :                    :  :                    :                 +- InputAdapter (139)
                                       :                    :  :                    :                    +- NativeParquetScan  (138)
                                       :                    :  :                    +- NativeSort (165)
                                       :                    :  :                       +- NativeProject (164)
                                       :                    :  :                          +- NativeFilter (163)
                                       :                    :  :                             +- NativeProject (162)
                                       :                    :  :                                +- NativeHashAggregate (161)
                                       :                    :  :                                   +- NativeHashAggregate (160)
                                       :                    :  :                                      +- NativeProject (159)
                                       :                    :  :                                         +- NativeSortMergeJoin Inner (158)
                                       :                    :  :                                            :- NativeSort (151)
                                       :                    :  :                                            :  +- InputAdapter (150)
                                       :                    :  :                                            :     +- InputAdapter (149)
                                       :                    :  :                                            :        +- AQEShuffleRead (148)
                                       :                    :  :                                            :           +- ShuffleQueryStage (147), Statistics(X)
                                       :                    :  :                                            :              +- ReusedExchange (146)
                                       :                    :  :                                            +- NativeSort (157)
                                       :                    :  :                                               +- InputAdapter (156)
                                       :                    :  :                                                  +- InputAdapter (155)
                                       :                    :  :                                                     +- AQEShuffleRead (154)
                                       :                    :  :                                                        +- ShuffleQueryStage (153), Statistics(X)
                                       :                    :  :                                                           +- ReusedExchange (152)
                                       :                    :  +- NativeSort (193)
                                       :                    :     +- NativeProject (192)
                                       :                    :        +- NativeFilter (191)
                                       :                    :           +- NativeProject (190)
                                       :                    :              +- NativeHashAggregate (189)
                                       :                    :                 +- NativeHashAggregate (188)
                                       :                    :                    +- NativeProject (187)
                                       :                    :                       +- NativeProject (186)
                                       :                    :                          +- NativeSortMergeJoin Inner (185)
                                       :                    :                             :- NativeSort (178)
                                       :                    :                             :  +- InputAdapter (177)
                                       :                    :                             :     +- InputAdapter (176)
                                       :                    :                             :        +- AQEShuffleRead (175)
                                       :                    :                             :           +- ShuffleQueryStage (174), Statistics(X)
                                       :                    :                             :              +- ReusedExchange (173)
                                       :                    :                             +- NativeSort (184)
                                       :                    :                                +- InputAdapter (183)
                                       :                    :                                   +- InputAdapter (182)
                                       :                    :                                      +- AQEShuffleRead (181)
                                       :                    :                                         +- ShuffleQueryStage (180), Statistics(X)
                                       :                    :                                            +- ReusedExchange (179)
                                       :                    +- NativeSortMergeJoin LeftSemi (222)
                                       :                       :- NativeSort (200)
                                       :                       :  +- InputAdapter (199)
                                       :                       :     +- InputAdapter (198)
                                       :                       :        +- AQEShuffleRead (197)
                                       :                       :           +- ShuffleQueryStage (196), Statistics(X)
                                       :                       :              +- ReusedExchange (195)
                                       :                       +- NativeSort (221)
                                       :                          +- NativeProject (220)
                                       :                             +- NativeFilter (219)
                                       :                                +- NativeProject (218)
                                       :                                   +- NativeHashAggregate (217)
                                       :                                      +- NativeHashAggregate (216)
                                       :                                         +- NativeProject (215)
                                       :                                            +- NativeProject (214)
                                       :                                               +- NativeSortMergeJoin Inner (213)
                                       :                                                  :- NativeSort (206)
                                       :                                                  :  +- InputAdapter (205)
                                       :                                                  :     +- InputAdapter (204)
                                       :                                                  :        +- AQEShuffleRead (203)
                                       :                                                  :           +- ShuffleQueryStage (202), Statistics(X)
                                       :                                                  :              +- ReusedExchange (201)
                                       :                                                  +- NativeSort (212)
                                       :                                                     +- InputAdapter (211)
                                       :                                                        +- InputAdapter (210)
                                       :                                                           +- AQEShuffleRead (209)
                                       :                                                              +- ShuffleQueryStage (208), Statistics(X)
                                       :                                                                 +- ReusedExchange (207)
                                       +- NativeSort (235)
                                          +- InputAdapter (234)
                                             +- InputAdapter (233)
                                                +- AQEShuffleRead (232)
                                                   +- ShuffleQueryStage (231), Statistics(X)
                                                      +- ReusedExchange (230)
+- == Initial Plan ==
   TakeOrderedAndProject (414)
   +- Union (413)
      :- HashAggregate (330)
      :  +- Exchange (329)
      :     +- HashAggregate (328)
      :        +- Project (327)
      :           +- SortMergeJoin Inner (326)
      :              :- Sort (320)
      :              :  +- Exchange (319)
      :              :     +- Project (318)
      :              :        +- SortMergeJoin Inner (317)
      :              :           :- SortMergeJoin LeftSemi (296)
      :              :           :  :- Sort (280)
      :              :           :  :  +- Exchange (279)
      :              :           :  :     +- Project (278)
      :              :           :  :        +- SortMergeJoin LeftSemi (277)
      :              :           :  :           :- Sort (252)
      :              :           :  :           :  +- Exchange (251)
      :              :           :  :           :     +- Filter (250)
      :              :           :  :           :        +- Scan parquet (249)
      :              :           :  :           +- Sort (276)
      :              :           :  :              +- Project (275)
      :              :           :  :                 +- Filter (274)
      :              :           :  :                    +- HashAggregate (273)
      :              :           :  :                       +- HashAggregate (272)
      :              :           :  :                          +- Project (271)
      :              :           :  :                             +- SortMergeJoin Inner (270)
      :              :           :  :                                :- Sort (265)
      :              :           :  :                                :  +- Exchange (264)
      :              :           :  :                                :     +- Project (263)
      :              :           :  :                                :        +- SortMergeJoin Inner (262)
      :              :           :  :                                :           :- Sort (256)
      :              :           :  :                                :           :  +- Exchange (255)
      :              :           :  :                                :           :     +- Filter (254)
      :              :           :  :                                :           :        +- Scan parquet (253)
      :              :           :  :                                :           +- Sort (261)
      :              :           :  :                                :              +- Exchange (260)
      :              :           :  :                                :                 +- Project (259)
      :              :           :  :                                :                    +- Filter (258)
      :              :           :  :                                :                       +- Scan parquet (257)
      :              :           :  :                                +- Sort (269)
      :              :           :  :                                   +- Exchange (268)
      :              :           :  :                                      +- Filter (267)
      :              :           :  :                                         +- Scan parquet (266)
      :              :           :  +- Sort (295)
      :              :           :     +- Project (294)
      :              :           :        +- Filter (293)
      :              :           :           +- HashAggregate (292)
      :              :           :              +- HashAggregate (291)
      :              :           :                 +- Project (290)
      :              :           :                    +- SortMergeJoin Inner (289)
      :              :           :                       :- Sort (284)
      :              :           :                       :  +- Exchange (283)
      :              :           :                       :     +- Filter (282)
      :              :           :                       :        +- Scan parquet (281)
      :              :           :                       +- Sort (288)
      :              :           :                          +- Exchange (287)
      :              :           :                             +- Filter (286)
      :              :           :                                +- Scan parquet (285)
      :              :           +- SortMergeJoin LeftSemi (316)
      :              :              :- Sort (300)
      :              :              :  +- Exchange (299)
      :              :              :     +- Filter (298)
      :              :              :        +- Scan parquet (297)
      :              :              +- Sort (315)
      :              :                 +- Project (314)
      :              :                    +- Filter (313)
      :              :                       +- HashAggregate (312)
      :              :                          +- HashAggregate (311)
      :              :                             +- Project (310)
      :              :                                +- SortMergeJoin Inner (309)
      :              :                                   :- Sort (304)
      :              :                                   :  +- Exchange (303)
      :              :                                   :     +- Filter (302)
      :              :                                   :        +- Scan parquet (301)
      :              :                                   +- Sort (308)
      :              :                                      +- Exchange (307)
      :              :                                         +- Filter (306)
      :              :                                            +- Scan parquet (305)
      :              +- Sort (325)
      :                 +- Exchange (324)
      :                    +- Project (323)
      :                       +- Filter (322)
      :                          +- Scan parquet (321)
      +- HashAggregate (412)
         +- Exchange (411)
            +- HashAggregate (410)
               +- Project (409)
                  +- SortMergeJoin Inner (408)
                     :- Sort (402)
                     :  +- Exchange (401)
                     :     +- Project (400)
                     :        +- SortMergeJoin Inner (399)
                     :           :- SortMergeJoin LeftSemi (378)
                     :           :  :- Sort (362)
                     :           :  :  +- Exchange (361)
                     :           :  :     +- Project (360)
                     :           :  :        +- SortMergeJoin LeftSemi (359)
                     :           :  :           :- Sort (334)
                     :           :  :           :  +- Exchange (333)
                     :           :  :           :     +- Filter (332)
                     :           :  :           :        +- Scan parquet (331)
                     :           :  :           +- Sort (358)
                     :           :  :              +- Project (357)
                     :           :  :                 +- Filter (356)
                     :           :  :                    +- HashAggregate (355)
                     :           :  :                       +- HashAggregate (354)
                     :           :  :                          +- Project (353)
                     :           :  :                             +- SortMergeJoin Inner (352)
                     :           :  :                                :- Sort (347)
                     :           :  :                                :  +- Exchange (346)
                     :           :  :                                :     +- Project (345)
                     :           :  :                                :        +- SortMergeJoin Inner (344)
                     :           :  :                                :           :- Sort (338)
                     :           :  :                                :           :  +- Exchange (337)
                     :           :  :                                :           :     +- Filter (336)
                     :           :  :                                :           :        +- Scan parquet (335)
                     :           :  :                                :           +- Sort (343)
                     :           :  :                                :              +- Exchange (342)
                     :           :  :                                :                 +- Project (341)
                     :           :  :                                :                    +- Filter (340)
                     :           :  :                                :                       +- Scan parquet (339)
                     :           :  :                                +- Sort (351)
                     :           :  :                                   +- Exchange (350)
                     :           :  :                                      +- Filter (349)
                     :           :  :                                         +- Scan parquet (348)
                     :           :  +- Sort (377)
                     :           :     +- Project (376)
                     :           :        +- Filter (375)
                     :           :           +- HashAggregate (374)
                     :           :              +- HashAggregate (373)
                     :           :                 +- Project (372)
                     :           :                    +- SortMergeJoin Inner (371)
                     :           :                       :- Sort (366)
                     :           :                       :  +- Exchange (365)
                     :           :                       :     +- Filter (364)
                     :           :                       :        +- Scan parquet (363)
                     :           :                       +- Sort (370)
                     :           :                          +- Exchange (369)
                     :           :                             +- Filter (368)
                     :           :                                +- Scan parquet (367)
                     :           +- SortMergeJoin LeftSemi (398)
                     :              :- Sort (382)
                     :              :  +- Exchange (381)
                     :              :     +- Filter (380)
                     :              :        +- Scan parquet (379)
                     :              +- Sort (397)
                     :                 +- Project (396)
                     :                    +- Filter (395)
                     :                       +- HashAggregate (394)
                     :                          +- HashAggregate (393)
                     :                             +- Project (392)
                     :                                +- SortMergeJoin Inner (391)
                     :                                   :- Sort (386)
                     :                                   :  +- Exchange (385)
                     :                                   :     +- Filter (384)
                     :                                   :        +- Scan parquet (383)
                     :                                   +- Sort (390)
                     :                                      +- Exchange (389)
                     :                                         +- Filter (388)
                     :                                            +- Scan parquet (387)
                     +- Sort (407)
                        +- Exchange (406)
                           +- Project (405)
                              +- Filter (404)
                                 +- Scan parquet (403)


(249) Scan parquet
Output [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_bill_customer_sk), IsNotNull(cs_sold_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_bill_customer_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2)>

(2) InputAdapter
Input [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Arguments: [#1, #2, #3, #4, #5]

(3) NativeFilter
Input [5]: [#1#1, #2#2, #3#3, #4#4, #5#5]
Condition : (isnotnull(cs_bill_customer_sk#2) AND isnotnull(cs_sold_date_sk#1))

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

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

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

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

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

(253) Scan parquet
Output [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_item_sk:int>

(10) InputAdapter
Input [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Arguments: [#6, #7]

(11) NativeFilter
Input [2]: [#6#6, #7#7]
Condition : (isnotnull(ss_sold_date_sk#6) AND isnotnull(ss_item_sk#7))

(12) NativeShuffleExchange
Input [2]: [#6#6, #7#7]
Arguments: hashpartitioning(ss_sold_date_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=2]

(13) ShuffleQueryStage
Output [2]: [#6#6, #7#7]
Arguments: X

(14) AQEShuffleRead
Input [2]: [#6#6, #7#7]
Arguments: coalesced

(15) InputAdapter
Input [2]: [#6#6, #7#7]

(16) NativeSort
Input [2]: [#6#6, #7#7]
Arguments: [ss_sold_date_sk#6 ASC NULLS FIRST], false

(257) Scan parquet
Output [3]: [d_date_sk#8, d_date#9, d_year#10]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_date:date,d_year:int>

(18) InputAdapter
Input [3]: [d_date_sk#8, d_date#9, d_year#10]
Arguments: [#8, #9, #10]

(19) NativeFilter
Input [3]: [#8#8, #9#9, #10#10]
Condition : (d_year#10 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#8))

(20) NativeProject
Output [2]: [d_date_sk#8, d_date#9]
Input [3]: [#8#8, #9#9, #10#10]

(21) NativeShuffleExchange
Input [2]: [d_date_sk#8, d_date#9]
Arguments: hashpartitioning(d_date_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=3]

(22) ShuffleQueryStage
Output [2]: [d_date_sk#8, d_date#9]
Arguments: X

(23) AQEShuffleRead
Input [2]: [d_date_sk#8, d_date#9]
Arguments: coalesced

(24) InputAdapter
Input [2]: [d_date_sk#8, d_date#9]

(25) NativeSort
Input [2]: [d_date_sk#8, d_date#9]
Arguments: [d_date_sk#8 ASC NULLS FIRST], false

(26) NativeSortMergeJoin
Left keys [1]: [ss_sold_date_sk#6]
Right keys [1]: [d_date_sk#8]
Join type: Inner
Join condition: None

(27) NativeProject
Output [2]: [ss_item_sk#7, d_date#9]
Input [4]: [#6#6, #7#7, d_date_sk#8, d_date#9]

(28) NativeShuffleExchange
Input [2]: [ss_item_sk#7, d_date#9]
Arguments: hashpartitioning(ss_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=4]

(29) ShuffleQueryStage
Output [2]: [ss_item_sk#7, d_date#9]
Arguments: X

(30) AQEShuffleRead
Input [2]: [ss_item_sk#7, d_date#9]
Arguments: coalesced

(31) InputAdapter
Input [2]: [ss_item_sk#7, d_date#9]

(32) NativeSort
Input [2]: [ss_item_sk#7, d_date#9]
Arguments: [ss_item_sk#7 ASC NULLS FIRST], false

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

(34) InputAdapter
Input [2]: [i_item_sk#11, i_item_desc#12]
Arguments: [#11, #12]

(35) NativeFilter
Input [2]: [#11#11, #12#12]
Condition : isnotnull(i_item_sk#11)

(36) NativeShuffleExchange
Input [2]: [#11#11, #12#12]
Arguments: hashpartitioning(i_item_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=5]

(37) ShuffleQueryStage
Output [2]: [#11#11, #12#12]
Arguments: X

(38) AQEShuffleRead
Input [2]: [#11#11, #12#12]
Arguments: coalesced

(39) InputAdapter
Input [2]: [#11#11, #12#12]

(40) NativeSort
Input [2]: [#11#11, #12#12]
Arguments: [i_item_sk#11 ASC NULLS FIRST], false

(41) NativeSortMergeJoin
Left keys [1]: [ss_item_sk#7]
Right keys [1]: [i_item_sk#11]
Join type: Inner
Join condition: None

(42) NativeProject
Output [3]: [d_date#9, i_item_sk#11, substr(i_item_desc#12, 1, 30) AS _groupingexpression#13]
Input [4]: [ss_item_sk#7, d_date#9, #11#11, #12#12]

(43) NativeHashAggregate
Input [3]: [d_date#9, i_item_sk#11, _groupingexpression#13]
Keys [3]: [_groupingexpression#13, i_item_sk#11, d_date#9]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#14]
Results [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, #15]

(44) NativeHashAggregate
Input [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, #15]
Keys [3]: [_groupingexpression#13, i_item_sk#11, d_date#9]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16]
Results [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count(1)#16]

(45) NativeProject
Output [2]: [i_item_sk#11 AS item_sk#17, count(1)#16 AS cnt#18]
Input [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count(1)#16]

(46) NativeFilter
Input [2]: [item_sk#17, cnt#18]
Condition : (cnt#18 > 4)

(47) NativeProject
Output [1]: [item_sk#17]
Input [2]: [item_sk#17, cnt#18]

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

(49) NativeSortMergeJoin
Left keys [1]: [cs_item_sk#3]
Right keys [1]: [item_sk#17]
Join type: LeftSemi
Join condition: None

(50) NativeProject
Output [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Input [5]: [#1#1, #2#2, #3#3, #4#4, #5#5]

(51) NativeShuffleExchange
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: hashpartitioning(cs_bill_customer_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=6]

(52) ShuffleQueryStage
Output [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: X

(53) AQEShuffleRead
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: coalesced

(54) InputAdapter
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]

(55) NativeSort
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: [cs_bill_customer_sk#2 ASC NULLS FIRST], false

(281) Scan parquet
Output [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(57) InputAdapter
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: [#19, #20, #21]

(58) NativeFilter
Input [3]: [#19#19, #20#20, #21#21]
Condition : isnotnull(ss_customer_sk#19)

(59) NativeShuffleExchange
Input [3]: [#19#19, #20#20, #21#21]
Arguments: hashpartitioning(ss_customer_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=7]

(60) ShuffleQueryStage
Output [3]: [#19#19, #20#20, #21#21]
Arguments: X

(61) AQEShuffleRead
Input [3]: [#19#19, #20#20, #21#21]
Arguments: coalesced

(62) InputAdapter
Input [3]: [#19#19, #20#20, #21#21]

(63) NativeSort
Input [3]: [#19#19, #20#20, #21#21]
Arguments: [ss_customer_sk#19 ASC NULLS FIRST], false

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

(65) InputAdapter
Input [1]: [c_customer_sk#22]
Arguments: [#22]

(66) NativeFilter
Input [1]: [#22#22]
Condition : isnotnull(c_customer_sk#22)

(67) NativeShuffleExchange
Input [1]: [#22#22]
Arguments: hashpartitioning(c_customer_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=8]

(68) ShuffleQueryStage
Output [1]: [#22#22]
Arguments: X

(69) AQEShuffleRead
Input [1]: [#22#22]
Arguments: coalesced

(70) InputAdapter
Input [1]: [#22#22]

(71) NativeSort
Input [1]: [#22#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false

(72) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#19]
Right keys [1]: [c_customer_sk#22]
Join type: Inner
Join condition: None

(73) NativeProject
Output [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Input [4]: [#19#19, #20#20, #21#21, #22#22]

(74) NativeProject
Output [2]: [c_customer_sk#22 AS c_customer_sk#22, (cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21) AS _c1#23]
Input [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]

(75) NativeHashAggregate
Input [2]: [c_customer_sk#22, _c1#23]
Keys [1]: [c_customer_sk#22]
Functions [1]: [partial_sum(_c1#23)]
Aggregate Attributes [2]: [sum#24, isEmpty#25]
Results [2]: [c_customer_sk#22, #26]

(76) NativeHashAggregate
Input [2]: [c_customer_sk#22, #26]
Keys [1]: [c_customer_sk#22]
Functions [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]
Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]

(77) NativeProject
Output [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27 AS ssales#28]
Input [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]

(78) NativeFilter
Input [2]: [c_customer_sk#22, ssales#28]
Condition : (isnotnull(ssales#28) AND (cast(ssales#28 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#30])))

(79) NativeProject
Output [1]: [c_customer_sk#22]
Input [2]: [c_customer_sk#22, ssales#28]

(80) NativeSort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false

(81) NativeSortMergeJoin
Left keys [1]: [cs_bill_customer_sk#2]
Right keys [1]: [c_customer_sk#22]
Join type: LeftSemi
Join condition: None

(297) Scan parquet
Output [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_customer_sk)]
ReadSchema: struct<c_customer_sk:int,c_first_name:string,c_last_name:string>

(83) InputAdapter
Input [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Arguments: [#31, #32, #33]

(84) NativeFilter
Input [3]: [#31#31, #32#32, #33#33]
Condition : isnotnull(c_customer_sk#31)

(85) NativeShuffleExchange
Input [3]: [#31#31, #32#32, #33#33]
Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=9]

(86) ShuffleQueryStage
Output [3]: [#31#31, #32#32, #33#33]
Arguments: X

(87) AQEShuffleRead
Input [3]: [#31#31, #32#32, #33#33]
Arguments: coalesced

(88) InputAdapter
Input [3]: [#31#31, #32#32, #33#33]

(89) NativeSort
Input [3]: [#31#31, #32#32, #33#33]
Arguments: [c_customer_sk#31 ASC NULLS FIRST], false

(90) ReusedExchange [Reuses operator id: 59]
Output [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]

(91) ShuffleQueryStage
Output [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: X

(92) AQEShuffleRead
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: coalesced

(93) InputAdapter
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: [#19, #20, #21]

(94) InputAdapter
Input [3]: [#19#19, #20#20, #21#21]

(95) NativeSort
Input [3]: [#19#19, #20#20, #21#21]
Arguments: [ss_customer_sk#19 ASC NULLS FIRST], false

(96) ReusedExchange [Reuses operator id: 67]
Output [1]: [c_customer_sk#22]

(97) ShuffleQueryStage
Output [1]: [c_customer_sk#22]
Arguments: X

(98) AQEShuffleRead
Input [1]: [c_customer_sk#22]
Arguments: coalesced

(99) InputAdapter
Input [1]: [c_customer_sk#22]
Arguments: [#22]

(100) InputAdapter
Input [1]: [#22#22]

(101) NativeSort
Input [1]: [#22#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false

(102) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#19]
Right keys [1]: [c_customer_sk#22]
Join type: Inner
Join condition: None

(103) NativeProject
Output [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Input [4]: [#19#19, #20#20, #21#21, #22#22]

(104) NativeProject
Output [2]: [c_customer_sk#22 AS c_customer_sk#22, (cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21) AS _c1#34]
Input [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]

(105) NativeHashAggregate
Input [2]: [c_customer_sk#22, _c1#34]
Keys [1]: [c_customer_sk#22]
Functions [1]: [partial_sum(_c1#34)]
Aggregate Attributes [2]: [sum#24, isEmpty#25]
Results [2]: [c_customer_sk#22, #26]

(106) NativeHashAggregate
Input [2]: [c_customer_sk#22, #26]
Keys [1]: [c_customer_sk#22]
Functions [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]
Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]

(107) NativeProject
Output [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27 AS ssales#28]
Input [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]

(108) NativeFilter
Input [2]: [c_customer_sk#22, ssales#28]
Condition : (isnotnull(ssales#28) AND (cast(ssales#28 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#29, [id=#30])))

(109) NativeProject
Output [1]: [c_customer_sk#22]
Input [2]: [c_customer_sk#22, ssales#28]

(110) NativeSort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false

(111) NativeSortMergeJoin
Left keys [1]: [c_customer_sk#31]
Right keys [1]: [c_customer_sk#22]
Join type: LeftSemi
Join condition: None

(112) NativeSortMergeJoin
Left keys [1]: [cs_bill_customer_sk#2]
Right keys [1]: [c_customer_sk#31]
Join type: Inner
Join condition: None

(113) NativeProject
Output [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Input [7]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5, #31#31, #32#32, #33#33]

(114) NativeShuffleExchange
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: hashpartitioning(cs_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=10]

(115) ShuffleQueryStage
Output [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: X

(116) AQEShuffleRead
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: coalesced

(117) InputAdapter
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]

(118) NativeSort
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false

(321) Scan parquet
Output [3]: [d_date_sk#35, d_year#36, d_moy#37]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(120) InputAdapter
Input [3]: [d_date_sk#35, d_year#36, d_moy#37]
Arguments: [#35, #36, #37]

(121) NativeFilter
Input [3]: [#35#35, #36#36, #37#37]
Condition : ((((isnotnull(d_year#36) AND isnotnull(d_moy#37)) AND (d_year#36 = 2000)) AND (d_moy#37 = 2)) AND isnotnull(d_date_sk#35))

(122) NativeProject
Output [1]: [d_date_sk#35]
Input [3]: [#35#35, #36#36, #37#37]

(123) NativeShuffleExchange
Input [1]: [d_date_sk#35]
Arguments: hashpartitioning(d_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=11]

(124) ShuffleQueryStage
Output [1]: [d_date_sk#35]
Arguments: X

(125) AQEShuffleRead
Input [1]: [d_date_sk#35]
Arguments: coalesced

(126) InputAdapter
Input [1]: [d_date_sk#35]

(127) NativeSort
Input [1]: [d_date_sk#35]
Arguments: [d_date_sk#35 ASC NULLS FIRST], false

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

(129) NativeProject
Output [4]: [cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Input [6]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33, d_date_sk#35]

(130) NativeProject
Output [3]: [c_last_name#33 AS c_last_name#33, c_first_name#32 AS c_first_name#32, (cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS _c2#38]
Input [4]: [cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]

(131) NativeHashAggregate
Input [3]: [c_last_name#33, c_first_name#32, _c2#38]
Keys [2]: [c_last_name#33, c_first_name#32]
Functions [1]: [partial_sum(_c2#38)]
Aggregate Attributes [2]: [sum#39, isEmpty#40]
Results [3]: [c_last_name#33, c_first_name#32, #26]

(132) NativeShuffleExchange
Input [3]: [c_last_name#33, c_first_name#32, #26]
Arguments: hashpartitioning(c_last_name#33, c_first_name#32, 100), ENSURE_REQUIREMENTS, [plan_id=12]

(133) ShuffleQueryStage
Output [3]: [c_last_name#33, c_first_name#32, #26]
Arguments: X

(134) AQEShuffleRead
Input [3]: [c_last_name#33, c_first_name#32, #26]
Arguments: coalesced

(135) InputAdapter
Input [3]: [c_last_name#33, c_first_name#32, #26]

(136) NativeHashAggregate
Input [3]: [c_last_name#33, c_first_name#32, #26]
Keys [2]: [c_last_name#33, c_first_name#32]
Functions [1]: [sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))]
Aggregate Attributes [1]: [sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41]
Results [3]: [c_last_name#33, c_first_name#32, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41]

(137) NativeProject
Output [3]: [c_last_name#33, c_first_name#32, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41 AS sales#42]
Input [3]: [c_last_name#33, c_first_name#32, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41]

(331) Scan parquet
Output [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ws_bill_customer_sk), IsNotNull(ws_sold_date_sk)]
ReadSchema: struct<ws_sold_date_sk:int,ws_item_sk:int,ws_bill_customer_sk:int,ws_quantity:int,ws_list_price:decimal(7,2)>

(139) InputAdapter
Input [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: [#43, #44, #45, #46, #47]

(140) NativeFilter
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]
Condition : (isnotnull(ws_bill_customer_sk#45) AND isnotnull(ws_sold_date_sk#43))

(141) NativeShuffleExchange
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]
Arguments: hashpartitioning(ws_item_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=13]

(142) ShuffleQueryStage
Output [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]
Arguments: X

(143) AQEShuffleRead
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]
Arguments: coalesced

(144) InputAdapter
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]

(145) NativeSort
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]
Arguments: [ws_item_sk#44 ASC NULLS FIRST], false

(146) ReusedExchange [Reuses operator id: 28]
Output [2]: [ss_item_sk#48, d_date#49]

(147) ShuffleQueryStage
Output [2]: [ss_item_sk#48, d_date#49]
Arguments: X

(148) AQEShuffleRead
Input [2]: [ss_item_sk#48, d_date#49]
Arguments: coalesced

(149) InputAdapter
Input [2]: [ss_item_sk#48, d_date#49]
Arguments: [#48, #49]

(150) InputAdapter
Input [2]: [#48#48, #49#49]

(151) NativeSort
Input [2]: [#48#48, #49#49]
Arguments: [ss_item_sk#48 ASC NULLS FIRST], false

(152) ReusedExchange [Reuses operator id: 36]
Output [2]: [i_item_sk#50, i_item_desc#51]

(153) ShuffleQueryStage
Output [2]: [i_item_sk#50, i_item_desc#51]
Arguments: X

(154) AQEShuffleRead
Input [2]: [i_item_sk#50, i_item_desc#51]
Arguments: coalesced

(155) InputAdapter
Input [2]: [i_item_sk#50, i_item_desc#51]
Arguments: [#50, #51]

(156) InputAdapter
Input [2]: [#50#50, #51#51]

(157) NativeSort
Input [2]: [#50#50, #51#51]
Arguments: [i_item_sk#50 ASC NULLS FIRST], false

(158) NativeSortMergeJoin
Left keys [1]: [ss_item_sk#48]
Right keys [1]: [i_item_sk#50]
Join type: Inner
Join condition: None

(159) NativeProject
Output [3]: [d_date#49, i_item_sk#50, substr(i_item_desc#51, 1, 30) AS _groupingexpression#13]
Input [4]: [#48#48, #49#49, #50#50, #51#51]

(160) NativeHashAggregate
Input [3]: [d_date#49, i_item_sk#50, _groupingexpression#13]
Keys [3]: [_groupingexpression#13, i_item_sk#50, d_date#49]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#14]
Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, #15]

(161) NativeHashAggregate
Input [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, #15]
Keys [3]: [_groupingexpression#13, i_item_sk#50, d_date#49]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16]
Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count(1)#16]

(162) NativeProject
Output [2]: [i_item_sk#50 AS item_sk#52, count(1)#16 AS cnt#53]
Input [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count(1)#16]

(163) NativeFilter
Input [2]: [item_sk#52, cnt#53]
Condition : (cnt#53 > 4)

(164) NativeProject
Output [1]: [item_sk#52]
Input [2]: [item_sk#52, cnt#53]

(165) NativeSort
Input [1]: [item_sk#52]
Arguments: [item_sk#52 ASC NULLS FIRST], false

(166) NativeSortMergeJoin
Left keys [1]: [ws_item_sk#44]
Right keys [1]: [item_sk#52]
Join type: LeftSemi
Join condition: None

(167) NativeProject
Output [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47]

(168) NativeShuffleExchange
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: hashpartitioning(ws_bill_customer_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=14]

(169) ShuffleQueryStage
Output [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: X

(170) AQEShuffleRead
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: coalesced

(171) InputAdapter
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]

(172) NativeSort
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: [ws_bill_customer_sk#45 ASC NULLS FIRST], false

(173) ReusedExchange [Reuses operator id: 59]
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]

(174) ShuffleQueryStage
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: X

(175) AQEShuffleRead
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: coalesced

(176) InputAdapter
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: [#54, #55, #56]

(177) InputAdapter
Input [3]: [#54#54, #55#55, #56#56]

(178) NativeSort
Input [3]: [#54#54, #55#55, #56#56]
Arguments: [ss_customer_sk#54 ASC NULLS FIRST], false

(179) ReusedExchange [Reuses operator id: 67]
Output [1]: [c_customer_sk#57]

(180) ShuffleQueryStage
Output [1]: [c_customer_sk#57]
Arguments: X

(181) AQEShuffleRead
Input [1]: [c_customer_sk#57]
Arguments: coalesced

(182) InputAdapter
Input [1]: [c_customer_sk#57]
Arguments: [#57]

(183) InputAdapter
Input [1]: [#57#57]

(184) NativeSort
Input [1]: [#57#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false

(185) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#54]
Right keys [1]: [c_customer_sk#57]
Join type: Inner
Join condition: None

(186) NativeProject
Output [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Input [4]: [#54#54, #55#55, #56#56, #57#57]

(187) NativeProject
Output [2]: [c_customer_sk#57 AS c_customer_sk#57, (cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56) AS _c1#58]
Input [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]

(188) NativeHashAggregate
Input [2]: [c_customer_sk#57, _c1#58]
Keys [1]: [c_customer_sk#57]
Functions [1]: [partial_sum(_c1#58)]
Aggregate Attributes [2]: [sum#59, isEmpty#60]
Results [2]: [c_customer_sk#57, #26]

(189) NativeHashAggregate
Input [2]: [c_customer_sk#57, #26]
Keys [1]: [c_customer_sk#57]
Functions [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]
Results [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]

(190) NativeProject
Output [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27 AS ssales#61]
Input [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]

(191) NativeFilter
Input [2]: [c_customer_sk#57, ssales#61]
Condition : (isnotnull(ssales#61) AND (cast(ssales#61 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#29, [id=#30])))

(192) NativeProject
Output [1]: [c_customer_sk#57]
Input [2]: [c_customer_sk#57, ssales#61]

(193) NativeSort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false

(194) NativeSortMergeJoin
Left keys [1]: [ws_bill_customer_sk#45]
Right keys [1]: [c_customer_sk#57]
Join type: LeftSemi
Join condition: None

(195) ReusedExchange [Reuses operator id: 85]
Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]

(196) ShuffleQueryStage
Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Arguments: X

(197) AQEShuffleRead
Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Arguments: coalesced

(198) InputAdapter
Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Arguments: [#62, #63, #64]

(199) InputAdapter
Input [3]: [#62#62, #63#63, #64#64]

(200) NativeSort
Input [3]: [#62#62, #63#63, #64#64]
Arguments: [c_customer_sk#62 ASC NULLS FIRST], false

(201) ReusedExchange [Reuses operator id: 59]
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]

(202) ShuffleQueryStage
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: X

(203) AQEShuffleRead
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: coalesced

(204) InputAdapter
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: [#54, #55, #56]

(205) InputAdapter
Input [3]: [#54#54, #55#55, #56#56]

(206) NativeSort
Input [3]: [#54#54, #55#55, #56#56]
Arguments: [ss_customer_sk#54 ASC NULLS FIRST], false

(207) ReusedExchange [Reuses operator id: 67]
Output [1]: [c_customer_sk#57]

(208) ShuffleQueryStage
Output [1]: [c_customer_sk#57]
Arguments: X

(209) AQEShuffleRead
Input [1]: [c_customer_sk#57]
Arguments: coalesced

(210) InputAdapter
Input [1]: [c_customer_sk#57]
Arguments: [#57]

(211) InputAdapter
Input [1]: [#57#57]

(212) NativeSort
Input [1]: [#57#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false

(213) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#54]
Right keys [1]: [c_customer_sk#57]
Join type: Inner
Join condition: None

(214) NativeProject
Output [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Input [4]: [#54#54, #55#55, #56#56, #57#57]

(215) NativeProject
Output [2]: [c_customer_sk#57 AS c_customer_sk#57, (cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56) AS _c1#65]
Input [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]

(216) NativeHashAggregate
Input [2]: [c_customer_sk#57, _c1#65]
Keys [1]: [c_customer_sk#57]
Functions [1]: [partial_sum(_c1#65)]
Aggregate Attributes [2]: [sum#59, isEmpty#60]
Results [2]: [c_customer_sk#57, #26]

(217) NativeHashAggregate
Input [2]: [c_customer_sk#57, #26]
Keys [1]: [c_customer_sk#57]
Functions [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]
Results [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]

(218) NativeProject
Output [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27 AS ssales#61]
Input [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]

(219) NativeFilter
Input [2]: [c_customer_sk#57, ssales#61]
Condition : (isnotnull(ssales#61) AND (cast(ssales#61 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#29, [id=#30])))

(220) NativeProject
Output [1]: [c_customer_sk#57]
Input [2]: [c_customer_sk#57, ssales#61]

(221) NativeSort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false

(222) NativeSortMergeJoin
Left keys [1]: [c_customer_sk#62]
Right keys [1]: [c_customer_sk#57]
Join type: LeftSemi
Join condition: None

(223) NativeSortMergeJoin
Left keys [1]: [ws_bill_customer_sk#45]
Right keys [1]: [c_customer_sk#62]
Join type: Inner
Join condition: None

(224) NativeProject
Output [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Input [7]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47, #62#62, #63#63, #64#64]

(225) NativeShuffleExchange
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: hashpartitioning(ws_sold_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=15]

(226) ShuffleQueryStage
Output [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: X

(227) AQEShuffleRead
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: coalesced

(228) InputAdapter
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]

(229) NativeSort
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: [ws_sold_date_sk#43 ASC NULLS FIRST], false

(230) ReusedExchange [Reuses operator id: 123]
Output [1]: [d_date_sk#66]

(231) ShuffleQueryStage
Output [1]: [d_date_sk#66]
Arguments: X

(232) AQEShuffleRead
Input [1]: [d_date_sk#66]
Arguments: coalesced

(233) InputAdapter
Input [1]: [d_date_sk#66]
Arguments: [#66]

(234) InputAdapter
Input [1]: [#66#66]

(235) NativeSort
Input [1]: [#66#66]
Arguments: [d_date_sk#66 ASC NULLS FIRST], false

(236) NativeSortMergeJoin
Left keys [1]: [ws_sold_date_sk#43]
Right keys [1]: [d_date_sk#66]
Join type: Inner
Join condition: None

(237) NativeProject
Output [4]: [ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Input [6]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64, #66#66]

(238) NativeProject
Output [3]: [c_last_name#64 AS c_last_name#64, c_first_name#63 AS c_first_name#63, (cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47) AS _c2#67]
Input [4]: [ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]

(239) NativeHashAggregate
Input [3]: [c_last_name#64, c_first_name#63, _c2#67]
Keys [2]: [c_last_name#64, c_first_name#63]
Functions [1]: [partial_sum(_c2#67)]
Aggregate Attributes [2]: [sum#68, isEmpty#69]
Results [3]: [c_last_name#64, c_first_name#63, #26]

(240) NativeShuffleExchange
Input [3]: [c_last_name#64, c_first_name#63, #26]
Arguments: hashpartitioning(c_last_name#64, c_first_name#63, 100), ENSURE_REQUIREMENTS, [plan_id=16]

(241) ShuffleQueryStage
Output [3]: [c_last_name#64, c_first_name#63, #26]
Arguments: X

(242) AQEShuffleRead
Input [3]: [c_last_name#64, c_first_name#63, #26]
Arguments: coalesced

(243) InputAdapter
Input [3]: [c_last_name#64, c_first_name#63, #26]

(244) NativeHashAggregate
Input [3]: [c_last_name#64, c_first_name#63, #26]
Keys [2]: [c_last_name#64, c_first_name#63]
Functions [1]: [sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))]
Aggregate Attributes [1]: [sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70]
Results [3]: [c_last_name#64, c_first_name#63, sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70]

(245) NativeProject
Output [3]: [c_last_name#64, c_first_name#63, sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70 AS sales#71]
Input [3]: [c_last_name#64, c_first_name#63, sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70]

(246) NativeUnion
Arguments: [c_last_name#33, c_first_name#32, sales#42]

(247) InputAdapter
Input [3]: [c_last_name#33, c_first_name#32, sales#42]
Arguments: [#33, #32, #42]

(248) NativeTakeOrdered
Input [3]: [#33#33, #32#32, #42#42]
Arguments: X, X, [c_last_name#33 ASC NULLS FIRST, c_first_name#32 ASC NULLS FIRST, sales#42 ASC NULLS FIRST]

(249) Scan parquet
Output [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_bill_customer_sk), IsNotNull(cs_sold_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_bill_customer_sk:int,cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2)>

(250) Filter
Input [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Condition : (isnotnull(cs_bill_customer_sk#2) AND isnotnull(cs_sold_date_sk#1))

(251) Exchange
Input [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Arguments: hashpartitioning(cs_item_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=17]

(252) Sort
Input [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]
Arguments: [cs_item_sk#3 ASC NULLS FIRST], false, 0

(253) Scan parquet
Output [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_item_sk:int>

(254) Filter
Input [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Condition : (isnotnull(ss_sold_date_sk#6) AND isnotnull(ss_item_sk#7))

(255) Exchange
Input [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Arguments: hashpartitioning(ss_sold_date_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=18]

(256) Sort
Input [2]: [ss_sold_date_sk#6, ss_item_sk#7]
Arguments: [ss_sold_date_sk#6 ASC NULLS FIRST], false, 0

(257) Scan parquet
Output [3]: [d_date_sk#8, d_date#9, d_year#10]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_date:date,d_year:int>

(258) Filter
Input [3]: [d_date_sk#8, d_date#9, d_year#10]
Condition : (d_year#10 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#8))

(259) Project
Output [2]: [d_date_sk#8, d_date#9]
Input [3]: [d_date_sk#8, d_date#9, d_year#10]

(260) Exchange
Input [2]: [d_date_sk#8, d_date#9]
Arguments: hashpartitioning(d_date_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=19]

(261) Sort
Input [2]: [d_date_sk#8, d_date#9]
Arguments: [d_date_sk#8 ASC NULLS FIRST], false, 0

(262) SortMergeJoin
Left keys [1]: [ss_sold_date_sk#6]
Right keys [1]: [d_date_sk#8]
Join type: Inner
Join condition: None

(263) Project
Output [2]: [ss_item_sk#7, d_date#9]
Input [4]: [ss_sold_date_sk#6, ss_item_sk#7, d_date_sk#8, d_date#9]

(264) Exchange
Input [2]: [ss_item_sk#7, d_date#9]
Arguments: hashpartitioning(ss_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=20]

(265) Sort
Input [2]: [ss_item_sk#7, d_date#9]
Arguments: [ss_item_sk#7 ASC NULLS FIRST], false, 0

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

(267) Filter
Input [2]: [i_item_sk#11, i_item_desc#12]
Condition : isnotnull(i_item_sk#11)

(268) Exchange
Input [2]: [i_item_sk#11, i_item_desc#12]
Arguments: hashpartitioning(i_item_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=21]

(269) Sort
Input [2]: [i_item_sk#11, i_item_desc#12]
Arguments: [i_item_sk#11 ASC NULLS FIRST], false, 0

(270) SortMergeJoin
Left keys [1]: [ss_item_sk#7]
Right keys [1]: [i_item_sk#11]
Join type: Inner
Join condition: None

(271) Project
Output [3]: [d_date#9, i_item_sk#11, substr(i_item_desc#12, 1, 30) AS _groupingexpression#13]
Input [4]: [ss_item_sk#7, d_date#9, i_item_sk#11, i_item_desc#12]

(272) HashAggregate
Input [3]: [d_date#9, i_item_sk#11, _groupingexpression#13]
Keys [3]: [_groupingexpression#13, i_item_sk#11, d_date#9]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#14]
Results [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count#72]

(273) HashAggregate
Input [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count#72]
Keys [3]: [_groupingexpression#13, i_item_sk#11, d_date#9]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16]
Results [2]: [i_item_sk#11 AS item_sk#17, count(1)#16 AS cnt#18]

(274) Filter
Input [2]: [item_sk#17, cnt#18]
Condition : (cnt#18 > 4)

(275) Project
Output [1]: [item_sk#17]
Input [2]: [item_sk#17, cnt#18]

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

(277) SortMergeJoin
Left keys [1]: [cs_item_sk#3]
Right keys [1]: [item_sk#17]
Join type: LeftSemi
Join condition: None

(278) Project
Output [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Input [5]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_item_sk#3, cs_quantity#4, cs_list_price#5]

(279) Exchange
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: hashpartitioning(cs_bill_customer_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=22]

(280) Sort
Input [4]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5]
Arguments: [cs_bill_customer_sk#2 ASC NULLS FIRST], false, 0

(281) Scan parquet
Output [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(282) Filter
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Condition : isnotnull(ss_customer_sk#19)

(283) Exchange
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: hashpartitioning(ss_customer_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=23]

(284) Sort
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: [ss_customer_sk#19 ASC NULLS FIRST], false, 0

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

(286) Filter
Input [1]: [c_customer_sk#22]
Condition : isnotnull(c_customer_sk#22)

(287) Exchange
Input [1]: [c_customer_sk#22]
Arguments: hashpartitioning(c_customer_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=24]

(288) Sort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false, 0

(289) SortMergeJoin
Left keys [1]: [ss_customer_sk#19]
Right keys [1]: [c_customer_sk#22]
Join type: Inner
Join condition: None

(290) Project
Output [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Input [4]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21, c_customer_sk#22]

(291) HashAggregate
Input [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Keys [1]: [c_customer_sk#22]
Functions [1]: [partial_sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [2]: [sum#24, isEmpty#25]
Results [3]: [c_customer_sk#22, sum#73, isEmpty#74]

(292) HashAggregate
Input [3]: [c_customer_sk#22, sum#73, isEmpty#74]
Keys [1]: [c_customer_sk#22]
Functions [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]
Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27 AS ssales#28]

(293) Filter
Input [2]: [c_customer_sk#22, ssales#28]
Condition : (isnotnull(ssales#28) AND (cast(ssales#28 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#30])))

(294) Project
Output [1]: [c_customer_sk#22]
Input [2]: [c_customer_sk#22, ssales#28]

(295) Sort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false, 0

(296) SortMergeJoin
Left keys [1]: [cs_bill_customer_sk#2]
Right keys [1]: [c_customer_sk#22]
Join type: LeftSemi
Join condition: None

(297) Scan parquet
Output [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_customer_sk)]
ReadSchema: struct<c_customer_sk:int,c_first_name:string,c_last_name:string>

(298) Filter
Input [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Condition : isnotnull(c_customer_sk#31)

(299) Exchange
Input [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=25]

(300) Sort
Input [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33]
Arguments: [c_customer_sk#31 ASC NULLS FIRST], false, 0

(301) Scan parquet
Output [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(302) Filter
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Condition : isnotnull(ss_customer_sk#19)

(303) Exchange
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: hashpartitioning(ss_customer_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=26]

(304) Sort
Input [3]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21]
Arguments: [ss_customer_sk#19 ASC NULLS FIRST], false, 0

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

(306) Filter
Input [1]: [c_customer_sk#22]
Condition : isnotnull(c_customer_sk#22)

(307) Exchange
Input [1]: [c_customer_sk#22]
Arguments: hashpartitioning(c_customer_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=27]

(308) Sort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false, 0

(309) SortMergeJoin
Left keys [1]: [ss_customer_sk#19]
Right keys [1]: [c_customer_sk#22]
Join type: Inner
Join condition: None

(310) Project
Output [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Input [4]: [ss_customer_sk#19, ss_quantity#20, ss_sales_price#21, c_customer_sk#22]

(311) HashAggregate
Input [3]: [ss_quantity#20, ss_sales_price#21, c_customer_sk#22]
Keys [1]: [c_customer_sk#22]
Functions [1]: [partial_sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [2]: [sum#24, isEmpty#25]
Results [3]: [c_customer_sk#22, sum#73, isEmpty#74]

(312) HashAggregate
Input [3]: [c_customer_sk#22, sum#73, isEmpty#74]
Keys [1]: [c_customer_sk#22]
Functions [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27]
Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#27 AS ssales#28]

(313) Filter
Input [2]: [c_customer_sk#22, ssales#28]
Condition : (isnotnull(ssales#28) AND (cast(ssales#28 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#75])))

(314) Project
Output [1]: [c_customer_sk#22]
Input [2]: [c_customer_sk#22, ssales#28]

(315) Sort
Input [1]: [c_customer_sk#22]
Arguments: [c_customer_sk#22 ASC NULLS FIRST], false, 0

(316) SortMergeJoin
Left keys [1]: [c_customer_sk#31]
Right keys [1]: [c_customer_sk#22]
Join type: LeftSemi
Join condition: None

(317) SortMergeJoin
Left keys [1]: [cs_bill_customer_sk#2]
Right keys [1]: [c_customer_sk#31]
Join type: Inner
Join condition: None

(318) Project
Output [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Input [7]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5, c_customer_sk#31, c_first_name#32, c_last_name#33]

(319) Exchange
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: hashpartitioning(cs_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=28]

(320) Sort
Input [5]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false, 0

(321) Scan parquet
Output [3]: [d_date_sk#35, d_year#36, d_moy#37]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(322) Filter
Input [3]: [d_date_sk#35, d_year#36, d_moy#37]
Condition : ((((isnotnull(d_year#36) AND isnotnull(d_moy#37)) AND (d_year#36 = 2000)) AND (d_moy#37 = 2)) AND isnotnull(d_date_sk#35))

(323) Project
Output [1]: [d_date_sk#35]
Input [3]: [d_date_sk#35, d_year#36, d_moy#37]

(324) Exchange
Input [1]: [d_date_sk#35]
Arguments: hashpartitioning(d_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=29]

(325) Sort
Input [1]: [d_date_sk#35]
Arguments: [d_date_sk#35 ASC NULLS FIRST], false, 0

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

(327) Project
Output [4]: [cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Input [6]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33, d_date_sk#35]

(328) HashAggregate
Input [4]: [cs_quantity#4, cs_list_price#5, c_first_name#32, c_last_name#33]
Keys [2]: [c_last_name#33, c_first_name#32]
Functions [1]: [partial_sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))]
Aggregate Attributes [2]: [sum#39, isEmpty#40]
Results [4]: [c_last_name#33, c_first_name#32, sum#76, isEmpty#77]

(329) Exchange
Input [4]: [c_last_name#33, c_first_name#32, sum#76, isEmpty#77]
Arguments: hashpartitioning(c_last_name#33, c_first_name#32, 100), ENSURE_REQUIREMENTS, [plan_id=30]

(330) HashAggregate
Input [4]: [c_last_name#33, c_first_name#32, sum#76, isEmpty#77]
Keys [2]: [c_last_name#33, c_first_name#32]
Functions [1]: [sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))]
Aggregate Attributes [1]: [sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41]
Results [3]: [c_last_name#33, c_first_name#32, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#41 AS sales#42]

(331) Scan parquet
Output [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ws_bill_customer_sk), IsNotNull(ws_sold_date_sk)]
ReadSchema: struct<ws_sold_date_sk:int,ws_item_sk:int,ws_bill_customer_sk:int,ws_quantity:int,ws_list_price:decimal(7,2)>

(332) Filter
Input [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Condition : (isnotnull(ws_bill_customer_sk#45) AND isnotnull(ws_sold_date_sk#43))

(333) Exchange
Input [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: hashpartitioning(ws_item_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=31]

(334) Sort
Input [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: [ws_item_sk#44 ASC NULLS FIRST], false, 0

(335) Scan parquet
Output [2]: [ss_sold_date_sk#78, ss_item_sk#48]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_item_sk:int>

(336) Filter
Input [2]: [ss_sold_date_sk#78, ss_item_sk#48]
Condition : (isnotnull(ss_sold_date_sk#78) AND isnotnull(ss_item_sk#48))

(337) Exchange
Input [2]: [ss_sold_date_sk#78, ss_item_sk#48]
Arguments: hashpartitioning(ss_sold_date_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=32]

(338) Sort
Input [2]: [ss_sold_date_sk#78, ss_item_sk#48]
Arguments: [ss_sold_date_sk#78 ASC NULLS FIRST], false, 0

(339) Scan parquet
Output [3]: [d_date_sk#79, d_date#49, d_year#80]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_date:date,d_year:int>

(340) Filter
Input [3]: [d_date_sk#79, d_date#49, d_year#80]
Condition : (d_year#80 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#79))

(341) Project
Output [2]: [d_date_sk#79, d_date#49]
Input [3]: [d_date_sk#79, d_date#49, d_year#80]

(342) Exchange
Input [2]: [d_date_sk#79, d_date#49]
Arguments: hashpartitioning(d_date_sk#79, 100), ENSURE_REQUIREMENTS, [plan_id=33]

(343) Sort
Input [2]: [d_date_sk#79, d_date#49]
Arguments: [d_date_sk#79 ASC NULLS FIRST], false, 0

(344) SortMergeJoin
Left keys [1]: [ss_sold_date_sk#78]
Right keys [1]: [d_date_sk#79]
Join type: Inner
Join condition: None

(345) Project
Output [2]: [ss_item_sk#48, d_date#49]
Input [4]: [ss_sold_date_sk#78, ss_item_sk#48, d_date_sk#79, d_date#49]

(346) Exchange
Input [2]: [ss_item_sk#48, d_date#49]
Arguments: hashpartitioning(ss_item_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=34]

(347) Sort
Input [2]: [ss_item_sk#48, d_date#49]
Arguments: [ss_item_sk#48 ASC NULLS FIRST], false, 0

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

(349) Filter
Input [2]: [i_item_sk#50, i_item_desc#51]
Condition : isnotnull(i_item_sk#50)

(350) Exchange
Input [2]: [i_item_sk#50, i_item_desc#51]
Arguments: hashpartitioning(i_item_sk#50, 100), ENSURE_REQUIREMENTS, [plan_id=35]

(351) Sort
Input [2]: [i_item_sk#50, i_item_desc#51]
Arguments: [i_item_sk#50 ASC NULLS FIRST], false, 0

(352) SortMergeJoin
Left keys [1]: [ss_item_sk#48]
Right keys [1]: [i_item_sk#50]
Join type: Inner
Join condition: None

(353) Project
Output [3]: [d_date#49, i_item_sk#50, substr(i_item_desc#51, 1, 30) AS _groupingexpression#13]
Input [4]: [ss_item_sk#48, d_date#49, i_item_sk#50, i_item_desc#51]

(354) HashAggregate
Input [3]: [d_date#49, i_item_sk#50, _groupingexpression#13]
Keys [3]: [_groupingexpression#13, i_item_sk#50, d_date#49]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#14]
Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count#72]

(355) HashAggregate
Input [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count#72]
Keys [3]: [_groupingexpression#13, i_item_sk#50, d_date#49]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16]
Results [2]: [i_item_sk#50 AS item_sk#52, count(1)#16 AS cnt#53]

(356) Filter
Input [2]: [item_sk#52, cnt#53]
Condition : (cnt#53 > 4)

(357) Project
Output [1]: [item_sk#52]
Input [2]: [item_sk#52, cnt#53]

(358) Sort
Input [1]: [item_sk#52]
Arguments: [item_sk#52 ASC NULLS FIRST], false, 0

(359) SortMergeJoin
Left keys [1]: [ws_item_sk#44]
Right keys [1]: [item_sk#52]
Join type: LeftSemi
Join condition: None

(360) Project
Output [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Input [5]: [ws_sold_date_sk#43, ws_item_sk#44, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]

(361) Exchange
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: hashpartitioning(ws_bill_customer_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=36]

(362) Sort
Input [4]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47]
Arguments: [ws_bill_customer_sk#45 ASC NULLS FIRST], false, 0

(363) Scan parquet
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(364) Filter
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Condition : isnotnull(ss_customer_sk#54)

(365) Exchange
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: hashpartitioning(ss_customer_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=37]

(366) Sort
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: [ss_customer_sk#54 ASC NULLS FIRST], false, 0

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

(368) Filter
Input [1]: [c_customer_sk#57]
Condition : isnotnull(c_customer_sk#57)

(369) Exchange
Input [1]: [c_customer_sk#57]
Arguments: hashpartitioning(c_customer_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=38]

(370) Sort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0

(371) SortMergeJoin
Left keys [1]: [ss_customer_sk#54]
Right keys [1]: [c_customer_sk#57]
Join type: Inner
Join condition: None

(372) Project
Output [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Input [4]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56, c_customer_sk#57]

(373) HashAggregate
Input [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Keys [1]: [c_customer_sk#57]
Functions [1]: [partial_sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [2]: [sum#59, isEmpty#60]
Results [3]: [c_customer_sk#57, sum#81, isEmpty#82]

(374) HashAggregate
Input [3]: [c_customer_sk#57, sum#81, isEmpty#82]
Keys [1]: [c_customer_sk#57]
Functions [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]
Results [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27 AS ssales#61]

(375) Filter
Input [2]: [c_customer_sk#57, ssales#61]
Condition : (isnotnull(ssales#61) AND (cast(ssales#61 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#83])))

(376) Project
Output [1]: [c_customer_sk#57]
Input [2]: [c_customer_sk#57, ssales#61]

(377) Sort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0

(378) SortMergeJoin
Left keys [1]: [ws_bill_customer_sk#45]
Right keys [1]: [c_customer_sk#57]
Join type: LeftSemi
Join condition: None

(379) Scan parquet
Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_customer_sk)]
ReadSchema: struct<c_customer_sk:int,c_first_name:string,c_last_name:string>

(380) Filter
Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Condition : isnotnull(c_customer_sk#62)

(381) Exchange
Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Arguments: hashpartitioning(c_customer_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=39]

(382) Sort
Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64]
Arguments: [c_customer_sk#62 ASC NULLS FIRST], false, 0

(383) Scan parquet
Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk)]
ReadSchema: struct<ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(384) Filter
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Condition : isnotnull(ss_customer_sk#54)

(385) Exchange
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: hashpartitioning(ss_customer_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=40]

(386) Sort
Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56]
Arguments: [ss_customer_sk#54 ASC NULLS FIRST], false, 0

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

(388) Filter
Input [1]: [c_customer_sk#57]
Condition : isnotnull(c_customer_sk#57)

(389) Exchange
Input [1]: [c_customer_sk#57]
Arguments: hashpartitioning(c_customer_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=41]

(390) Sort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0

(391) SortMergeJoin
Left keys [1]: [ss_customer_sk#54]
Right keys [1]: [c_customer_sk#57]
Join type: Inner
Join condition: None

(392) Project
Output [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Input [4]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56, c_customer_sk#57]

(393) HashAggregate
Input [3]: [ss_quantity#55, ss_sales_price#56, c_customer_sk#57]
Keys [1]: [c_customer_sk#57]
Functions [1]: [partial_sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [2]: [sum#59, isEmpty#60]
Results [3]: [c_customer_sk#57, sum#81, isEmpty#82]

(394) HashAggregate
Input [3]: [c_customer_sk#57, sum#81, isEmpty#82]
Keys [1]: [c_customer_sk#57]
Functions [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27]
Results [2]: [c_customer_sk#57, sum((cast(ss_quantity#55 as decimal(10,0)) * ss_sales_price#56))#27 AS ssales#61]

(395) Filter
Input [2]: [c_customer_sk#57, ssales#61]
Condition : (isnotnull(ssales#61) AND (cast(ssales#61 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#84])))

(396) Project
Output [1]: [c_customer_sk#57]
Input [2]: [c_customer_sk#57, ssales#61]

(397) Sort
Input [1]: [c_customer_sk#57]
Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0

(398) SortMergeJoin
Left keys [1]: [c_customer_sk#62]
Right keys [1]: [c_customer_sk#57]
Join type: LeftSemi
Join condition: None

(399) SortMergeJoin
Left keys [1]: [ws_bill_customer_sk#45]
Right keys [1]: [c_customer_sk#62]
Join type: Inner
Join condition: None

(400) Project
Output [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Input [7]: [ws_sold_date_sk#43, ws_bill_customer_sk#45, ws_quantity#46, ws_list_price#47, c_customer_sk#62, c_first_name#63, c_last_name#64]

(401) Exchange
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: hashpartitioning(ws_sold_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=42]

(402) Sort
Input [5]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Arguments: [ws_sold_date_sk#43 ASC NULLS FIRST], false, 0

(403) Scan parquet
Output [3]: [d_date_sk#66, d_year#85, d_moy#86]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(404) Filter
Input [3]: [d_date_sk#66, d_year#85, d_moy#86]
Condition : ((((isnotnull(d_year#85) AND isnotnull(d_moy#86)) AND (d_year#85 = 2000)) AND (d_moy#86 = 2)) AND isnotnull(d_date_sk#66))

(405) Project
Output [1]: [d_date_sk#66]
Input [3]: [d_date_sk#66, d_year#85, d_moy#86]

(406) Exchange
Input [1]: [d_date_sk#66]
Arguments: hashpartitioning(d_date_sk#66, 100), ENSURE_REQUIREMENTS, [plan_id=43]

(407) Sort
Input [1]: [d_date_sk#66]
Arguments: [d_date_sk#66 ASC NULLS FIRST], false, 0

(408) SortMergeJoin
Left keys [1]: [ws_sold_date_sk#43]
Right keys [1]: [d_date_sk#66]
Join type: Inner
Join condition: None

(409) Project
Output [4]: [ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Input [6]: [ws_sold_date_sk#43, ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64, d_date_sk#66]

(410) HashAggregate
Input [4]: [ws_quantity#46, ws_list_price#47, c_first_name#63, c_last_name#64]
Keys [2]: [c_last_name#64, c_first_name#63]
Functions [1]: [partial_sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))]
Aggregate Attributes [2]: [sum#68, isEmpty#69]
Results [4]: [c_last_name#64, c_first_name#63, sum#87, isEmpty#88]

(411) Exchange
Input [4]: [c_last_name#64, c_first_name#63, sum#87, isEmpty#88]
Arguments: hashpartitioning(c_last_name#64, c_first_name#63, 100), ENSURE_REQUIREMENTS, [plan_id=44]

(412) HashAggregate
Input [4]: [c_last_name#64, c_first_name#63, sum#87, isEmpty#88]
Keys [2]: [c_last_name#64, c_first_name#63]
Functions [1]: [sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))]
Aggregate Attributes [1]: [sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70]
Results [3]: [c_last_name#64, c_first_name#63, sum((cast(ws_quantity#46 as decimal(10,0)) * ws_list_price#47))#70 AS sales#71]

(413) Union

(414) TakeOrderedAndProject
Input [3]: [c_last_name#33, c_first_name#32, sales#42]
Arguments: X, [c_last_name#33 ASC NULLS FIRST, c_first_name#32 ASC NULLS FIRST, sales#42 ASC NULLS FIRST], [c_last_name#33, c_first_name#32, sales#42]

(415) AdaptiveSparkPlan
Output [3]: [c_last_name#33, c_first_name#32, sales#42]
Arguments: isFinalPlan=true

===== Subqueries =====

Subquery:1 Hosting operator id = 78 Hosting Expression = Subquery subquery#29, [id=#30]
AdaptiveSparkPlan (486)
+- == Final Plan ==
   NativeProject (460)
   +- NativeHashAggregate (459)
      +- ShuffleQueryStage (458), Statistics(X)
         +- NativeShuffleExchange (457)
            +- NativeHashAggregate (456)
               +- NativeProject (455)
                  +- NativeHashAggregate (454)
                     +- InputAdapter (453)
                        +- AQEShuffleRead (452)
                           +- ShuffleQueryStage (451), Statistics(X)
                              +- NativeShuffleExchange (450)
                                 +- NativeHashAggregate (449)
                                    +- NativeProject (448)
                                       +- NativeProject (447)
                                          +- NativeSortMergeJoin Inner (446)
                                             :- NativeSort (436)
                                             :  +- InputAdapter (435)
                                             :     +- AQEShuffleRead (434)
                                             :        +- ShuffleQueryStage (433), Statistics(X)
                                             :           +- NativeShuffleExchange (432)
                                             :              +- NativeProject (431)
                                             :                 +- NativeSortMergeJoin Inner (430)
                                             :                    :- NativeSort (423)
                                             :                    :  +- InputAdapter (422)
                                             :                    :     +- AQEShuffleRead (421)
                                             :                    :        +- ShuffleQueryStage (420), Statistics(X)
                                             :                    :           +- NativeShuffleExchange (419)
                                             :                    :              +- NativeFilter (418)
                                             :                    :                 +- InputAdapter (417)
                                             :                    :                    +- NativeParquetScan  (416)
                                             :                    +- NativeSort (429)
                                             :                       +- InputAdapter (428)
                                             :                          +- InputAdapter (427)
                                             :                             +- AQEShuffleRead (426)
                                             :                                +- ShuffleQueryStage (425), Statistics(X)
                                             :                                   +- ReusedExchange (424)
                                             +- NativeSort (445)
                                                +- InputAdapter (444)
                                                   +- AQEShuffleRead (443)
                                                      +- ShuffleQueryStage (442), Statistics(X)
                                                         +- NativeShuffleExchange (441)
                                                            +- NativeProject (440)
                                                               +- NativeFilter (439)
                                                                  +- InputAdapter (438)
                                                                     +- NativeParquetScan  (437)
+- == Initial Plan ==
   HashAggregate (485)
   +- Exchange (484)
      +- HashAggregate (483)
         +- HashAggregate (482)
            +- Exchange (481)
               +- HashAggregate (480)
                  +- Project (479)
                     +- SortMergeJoin Inner (478)
                        :- Sort (472)
                        :  +- Exchange (471)
                        :     +- Project (470)
                        :        +- SortMergeJoin Inner (469)
                        :           :- Sort (464)
                        :           :  +- Exchange (463)
                        :           :     +- Filter (462)
                        :           :        +- Scan parquet (461)
                        :           +- Sort (468)
                        :              +- Exchange (467)
                        :                 +- Filter (466)
                        :                    +- Scan parquet (465)
                        +- Sort (477)
                           +- Exchange (476)
                              +- Project (475)
                                 +- Filter (474)
                                    +- Scan parquet (473)


(461) Scan parquet
Output [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(417) InputAdapter
Input [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Arguments: [#89, #90, #91, #92]

(418) NativeFilter
Input [4]: [#89#89, #90#90, #91#91, #92#92]
Condition : (isnotnull(ss_customer_sk#90) AND isnotnull(ss_sold_date_sk#89))

(419) NativeShuffleExchange
Input [4]: [#89#89, #90#90, #91#91, #92#92]
Arguments: hashpartitioning(ss_customer_sk#90, 100), ENSURE_REQUIREMENTS, [plan_id=45]

(420) ShuffleQueryStage
Output [4]: [#89#89, #90#90, #91#91, #92#92]
Arguments: X

(421) AQEShuffleRead
Input [4]: [#89#89, #90#90, #91#91, #92#92]
Arguments: coalesced

(422) InputAdapter
Input [4]: [#89#89, #90#90, #91#91, #92#92]

(423) NativeSort
Input [4]: [#89#89, #90#90, #91#91, #92#92]
Arguments: [ss_customer_sk#90 ASC NULLS FIRST], false

(424) ReusedExchange [Reuses operator id: 67]
Output [1]: [c_customer_sk#93]

(425) ShuffleQueryStage
Output [1]: [c_customer_sk#93]
Arguments: X

(426) AQEShuffleRead
Input [1]: [c_customer_sk#93]
Arguments: coalesced

(427) InputAdapter
Input [1]: [c_customer_sk#93]
Arguments: [#93]

(428) InputAdapter
Input [1]: [#93#93]

(429) NativeSort
Input [1]: [#93#93]
Arguments: [c_customer_sk#93 ASC NULLS FIRST], false

(430) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#90]
Right keys [1]: [c_customer_sk#93]
Join type: Inner
Join condition: None

(431) NativeProject
Output [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Input [5]: [#89#89, #90#90, #91#91, #92#92, #93#93]

(432) NativeShuffleExchange
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: hashpartitioning(ss_sold_date_sk#89, 100), ENSURE_REQUIREMENTS, [plan_id=46]

(433) ShuffleQueryStage
Output [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: X

(434) AQEShuffleRead
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: coalesced

(435) InputAdapter
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]

(436) NativeSort
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: [ss_sold_date_sk#89 ASC NULLS FIRST], false

(473) Scan parquet
Output [2]: [d_date_sk#94, d_year#95]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int>

(438) InputAdapter
Input [2]: [d_date_sk#94, d_year#95]
Arguments: [#94, #95]

(439) NativeFilter
Input [2]: [#94#94, #95#95]
Condition : (d_year#95 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#94))

(440) NativeProject
Output [1]: [d_date_sk#94]
Input [2]: [#94#94, #95#95]

(441) NativeShuffleExchange
Input [1]: [d_date_sk#94]
Arguments: hashpartitioning(d_date_sk#94, 100), ENSURE_REQUIREMENTS, [plan_id=47]

(442) ShuffleQueryStage
Output [1]: [d_date_sk#94]
Arguments: X

(443) AQEShuffleRead
Input [1]: [d_date_sk#94]
Arguments: coalesced

(444) InputAdapter
Input [1]: [d_date_sk#94]

(445) NativeSort
Input [1]: [d_date_sk#94]
Arguments: [d_date_sk#94 ASC NULLS FIRST], false

(446) NativeSortMergeJoin
Left keys [1]: [ss_sold_date_sk#89]
Right keys [1]: [d_date_sk#94]
Join type: Inner
Join condition: None

(447) NativeProject
Output [3]: [ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Input [5]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93, d_date_sk#94]

(448) NativeProject
Output [2]: [c_customer_sk#93 AS c_customer_sk#93, (cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92) AS _c1#96]
Input [3]: [ss_quantity#91, ss_sales_price#92, c_customer_sk#93]

(449) NativeHashAggregate
Input [2]: [c_customer_sk#93, _c1#96]
Keys [1]: [c_customer_sk#93]
Functions [1]: [partial_sum(_c1#96)]
Aggregate Attributes [2]: [sum#97, isEmpty#98]
Results [2]: [c_customer_sk#93, #26]

(450) NativeShuffleExchange
Input [2]: [c_customer_sk#93, #26]
Arguments: hashpartitioning(c_customer_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=48]

(451) ShuffleQueryStage
Output [2]: [c_customer_sk#93, #26]
Arguments: X

(452) AQEShuffleRead
Input [2]: [c_customer_sk#93, #26]
Arguments: coalesced

(453) InputAdapter
Input [2]: [c_customer_sk#93, #26]

(454) NativeHashAggregate
Input [2]: [c_customer_sk#93, #26]
Keys [1]: [c_customer_sk#93]
Functions [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99]
Results [2]: [c_customer_sk#93, sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99]

(455) NativeProject
Output [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99 AS csales#100]
Input [2]: [c_customer_sk#93, sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99]

(456) NativeHashAggregate
Input [1]: [csales#100]
Keys: []
Functions [1]: [partial_max(csales#100)]
Aggregate Attributes [1]: [max#101]
Results [1]: [#26]

(457) NativeShuffleExchange
Input [1]: [#26]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=49]

(458) ShuffleQueryStage
Output [1]: [#26]
Arguments: X

(459) NativeHashAggregate
Input [1]: [#26]
Keys: []
Functions [1]: [max(csales#100)]
Aggregate Attributes [1]: [max(csales#100)#102]
Results [1]: [max(csales#100)#102]

(460) NativeProject
Output [1]: [max(csales#100)#102 AS tpcds_cmax#103]
Input [1]: [max(csales#100)#102]

(461) Scan parquet
Output [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_customer_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2)>

(462) Filter
Input [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Condition : (isnotnull(ss_customer_sk#90) AND isnotnull(ss_sold_date_sk#89))

(463) Exchange
Input [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Arguments: hashpartitioning(ss_customer_sk#90, 100), ENSURE_REQUIREMENTS, [plan_id=50]

(464) Sort
Input [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92]
Arguments: [ss_customer_sk#90 ASC NULLS FIRST], false, 0

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

(466) Filter
Input [1]: [c_customer_sk#93]
Condition : isnotnull(c_customer_sk#93)

(467) Exchange
Input [1]: [c_customer_sk#93]
Arguments: hashpartitioning(c_customer_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=51]

(468) Sort
Input [1]: [c_customer_sk#93]
Arguments: [c_customer_sk#93 ASC NULLS FIRST], false, 0

(469) SortMergeJoin
Left keys [1]: [ss_customer_sk#90]
Right keys [1]: [c_customer_sk#93]
Join type: Inner
Join condition: None

(470) Project
Output [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Input [5]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]

(471) Exchange
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: hashpartitioning(ss_sold_date_sk#89, 100), ENSURE_REQUIREMENTS, [plan_id=52]

(472) Sort
Input [4]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Arguments: [ss_sold_date_sk#89 ASC NULLS FIRST], false, 0

(473) Scan parquet
Output [2]: [d_date_sk#94, d_year#95]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int>

(474) Filter
Input [2]: [d_date_sk#94, d_year#95]
Condition : (d_year#95 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#94))

(475) Project
Output [1]: [d_date_sk#94]
Input [2]: [d_date_sk#94, d_year#95]

(476) Exchange
Input [1]: [d_date_sk#94]
Arguments: hashpartitioning(d_date_sk#94, 100), ENSURE_REQUIREMENTS, [plan_id=53]

(477) Sort
Input [1]: [d_date_sk#94]
Arguments: [d_date_sk#94 ASC NULLS FIRST], false, 0

(478) SortMergeJoin
Left keys [1]: [ss_sold_date_sk#89]
Right keys [1]: [d_date_sk#94]
Join type: Inner
Join condition: None

(479) Project
Output [3]: [ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Input [5]: [ss_sold_date_sk#89, ss_quantity#91, ss_sales_price#92, c_customer_sk#93, d_date_sk#94]

(480) HashAggregate
Input [3]: [ss_quantity#91, ss_sales_price#92, c_customer_sk#93]
Keys [1]: [c_customer_sk#93]
Functions [1]: [partial_sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))]
Aggregate Attributes [2]: [sum#97, isEmpty#98]
Results [3]: [c_customer_sk#93, sum#104, isEmpty#105]

(481) Exchange
Input [3]: [c_customer_sk#93, sum#104, isEmpty#105]
Arguments: hashpartitioning(c_customer_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=54]

(482) HashAggregate
Input [3]: [c_customer_sk#93, sum#104, isEmpty#105]
Keys [1]: [c_customer_sk#93]
Functions [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))]
Aggregate Attributes [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99]
Results [1]: [sum((cast(ss_quantity#91 as decimal(10,0)) * ss_sales_price#92))#99 AS csales#100]

(483) HashAggregate
Input [1]: [csales#100]
Keys: []
Functions [1]: [partial_max(csales#100)]
Aggregate Attributes [1]: [max#101]
Results [1]: [max#106]

(484) Exchange
Input [1]: [max#106]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=55]

(485) HashAggregate
Input [1]: [max#106]
Keys: []
Functions [1]: [max(csales#100)]
Aggregate Attributes [1]: [max(csales#100)#102]
Results [1]: [max(csales#100)#102 AS tpcds_cmax#103]

(486) AdaptiveSparkPlan
Output [1]: [tpcds_cmax#103]
Arguments: isFinalPlan=true

Subquery:2 Hosting operator id = 108 Hosting Expression = ReusedSubquery Subquery subquery#29, [id=#30]

Subquery:3 Hosting operator id = 191 Hosting Expression = ReusedSubquery Subquery subquery#29, [id=#30]

Subquery:4 Hosting operator id = 219 Hosting Expression = ReusedSubquery Subquery subquery#29, [id=#30]


