== Physical Plan ==
AdaptiveSparkPlan (138)
+- == Final Plan ==
   NativeTakeOrdered (89)
   +- NativeProject (88)
      +- NativeHashAggregate (87)
         +- InputAdapter (86)
            +- AQEShuffleRead (85)
               +- ShuffleQueryStage (84), Statistics(X)
                  +- NativeShuffleExchange (83)
                     +- NativeHashAggregate (82)
                        +- NativeProject (81)
                           +- NativeProject (80)
                              +- NativeSortMergeJoin Inner (79)
                                 :- NativeSort (70)
                                 :  +- InputAdapter (69)
                                 :     +- AQEShuffleRead (68)
                                 :        +- ShuffleQueryStage (67), Statistics(X)
                                 :           +- NativeShuffleExchange (66)
                                 :              +- NativeProject (65)
                                 :                 +- NativeSortMergeJoin Inner (64)
                                 :                    :- NativeSort (55)
                                 :                    :  +- InputAdapter (54)
                                 :                    :     +- AQEShuffleRead (53)
                                 :                    :        +- ShuffleQueryStage (52), Statistics(X)
                                 :                    :           +- NativeShuffleExchange (51)
                                 :                    :              +- NativeProject (50)
                                 :                    :                 +- NativeSortMergeJoin Inner (49)
                                 :                    :                    :- NativeSort (40)
                                 :                    :                    :  +- InputAdapter (39)
                                 :                    :                    :     +- AQEShuffleRead (38)
                                 :                    :                    :        +- ShuffleQueryStage (37), Statistics(X)
                                 :                    :                    :           +- NativeShuffleExchange (36)
                                 :                    :                    :              +- NativeProject (35)
                                 :                    :                    :                 +- NativeSortMergeJoin Inner (34)
                                 :                    :                    :                    :- NativeSort (24)
                                 :                    :                    :                    :  +- InputAdapter (23)
                                 :                    :                    :                    :     +- AQEShuffleRead (22)
                                 :                    :                    :                    :        +- ShuffleQueryStage (21), Statistics(X)
                                 :                    :                    :                    :           +- NativeShuffleExchange (20)
                                 :                    :                    :                    :              +- NativeProject (19)
                                 :                    :                    :                    :                 +- NativeSortMergeJoin Inner (18)
                                 :                    :                    :                    :                    :- NativeSort (9)
                                 :                    :                    :                    :                    :  +- InputAdapter (8)
                                 :                    :                    :                    :                    :     +- AQEShuffleRead (7)
                                 :                    :                    :                    :                    :        +- ShuffleQueryStage (6), Statistics(X)
                                 :                    :                    :                    :                    :           +- NativeShuffleExchange (5)
                                 :                    :                    :                    :                    :              +- NativeProject (4)
                                 :                    :                    :                    :                    :                 +- NativeFilter (3)
                                 :                    :                    :                    :                    :                    +- InputAdapter (2)
                                 :                    :                    :                    :                    :                       +- NativeParquetScan  (1)
                                 :                    :                    :                    :                    +- NativeSort (17)
                                 :                    :                    :                    :                       +- InputAdapter (16)
                                 :                    :                    :                    :                          +- AQEShuffleRead (15)
                                 :                    :                    :                    :                             +- ShuffleQueryStage (14), Statistics(X)
                                 :                    :                    :                    :                                +- NativeShuffleExchange (13)
                                 :                    :                    :                    :                                   +- NativeFilter (12)
                                 :                    :                    :                    :                                      +- InputAdapter (11)
                                 :                    :                    :                    :                                         +- NativeParquetScan  (10)
                                 :                    :                    :                    +- NativeSort (33)
                                 :                    :                    :                       +- InputAdapter (32)
                                 :                    :                    :                          +- AQEShuffleRead (31)
                                 :                    :                    :                             +- ShuffleQueryStage (30), Statistics(X)
                                 :                    :                    :                                +- NativeShuffleExchange (29)
                                 :                    :                    :                                   +- NativeProject (28)
                                 :                    :                    :                                      +- NativeFilter (27)
                                 :                    :                    :                                         +- InputAdapter (26)
                                 :                    :                    :                                            +- NativeParquetScan  (25)
                                 :                    :                    +- NativeSort (48)
                                 :                    :                       +- InputAdapter (47)
                                 :                    :                          +- AQEShuffleRead (46)
                                 :                    :                             +- ShuffleQueryStage (45), Statistics(X)
                                 :                    :                                +- NativeShuffleExchange (44)
                                 :                    :                                   +- NativeFilter (43)
                                 :                    :                                      +- InputAdapter (42)
                                 :                    :                                         +- NativeParquetScan  (41)
                                 :                    +- NativeSort (63)
                                 :                       +- InputAdapter (62)
                                 :                          +- AQEShuffleRead (61)
                                 :                             +- ShuffleQueryStage (60), Statistics(X)
                                 :                                +- NativeShuffleExchange (59)
                                 :                                   +- NativeFilter (58)
                                 :                                      +- InputAdapter (57)
                                 :                                         +- NativeParquetScan  (56)
                                 +- NativeSort (78)
                                    +- InputAdapter (77)
                                       +- AQEShuffleRead (76)
                                          +- ShuffleQueryStage (75), Statistics(X)
                                             +- NativeShuffleExchange (74)
                                                +- NativeFilter (73)
                                                   +- InputAdapter (72)
                                                      +- NativeParquetScan  (71)
+- == Initial Plan ==
   TakeOrderedAndProject (137)
   +- HashAggregate (136)
      +- Exchange (135)
         +- HashAggregate (134)
            +- Project (133)
               +- SortMergeJoin Inner (132)
                  :- Sort (127)
                  :  +- Exchange (126)
                  :     +- Project (125)
                  :        +- SortMergeJoin Inner (124)
                  :           :- Sort (119)
                  :           :  +- Exchange (118)
                  :           :     +- Project (117)
                  :           :        +- SortMergeJoin Inner (116)
                  :           :           :- Sort (111)
                  :           :           :  +- Exchange (110)
                  :           :           :     +- Project (109)
                  :           :           :        +- SortMergeJoin Inner (108)
                  :           :           :           :- Sort (102)
                  :           :           :           :  +- Exchange (101)
                  :           :           :           :     +- Project (100)
                  :           :           :           :        +- SortMergeJoin Inner (99)
                  :           :           :           :           :- Sort (94)
                  :           :           :           :           :  +- Exchange (93)
                  :           :           :           :           :     +- Project (92)
                  :           :           :           :           :        +- Filter (91)
                  :           :           :           :           :           +- Scan parquet (90)
                  :           :           :           :           +- Sort (98)
                  :           :           :           :              +- Exchange (97)
                  :           :           :           :                 +- Filter (96)
                  :           :           :           :                    +- Scan parquet (95)
                  :           :           :           +- Sort (107)
                  :           :           :              +- Exchange (106)
                  :           :           :                 +- Project (105)
                  :           :           :                    +- Filter (104)
                  :           :           :                       +- Scan parquet (103)
                  :           :           +- Sort (115)
                  :           :              +- Exchange (114)
                  :           :                 +- Filter (113)
                  :           :                    +- Scan parquet (112)
                  :           +- Sort (123)
                  :              +- Exchange (122)
                  :                 +- Filter (121)
                  :                    +- Scan parquet (120)
                  +- Sort (131)
                     +- Exchange (130)
                        +- Filter (129)
                           +- Scan parquet (128)


(90) Scan parquet
Output [3]: [d_date_sk#1, d_year#2, d_moy#3]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_moy), IsNotNull(d_year), EqualTo(d_moy,11), EqualTo(d_year,1998), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(2) InputAdapter
Input [3]: [d_date_sk#1, d_year#2, d_moy#3]
Arguments: [#1, #2, #3]

(3) NativeFilter
Input [3]: [#1#1, #2#2, #3#3]
Condition : ((((isnotnull(d_moy#3) AND isnotnull(d_year#2)) AND (d_moy#3 = 11)) AND (d_year#2 = 1998)) AND isnotnull(d_date_sk#1))

(4) NativeProject
Output [1]: [d_date_sk#1]
Input [3]: [#1#1, #2#2, #3#3]

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

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

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

(8) InputAdapter
Input [1]: [d_date_sk#1]

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

(95) Scan parquet
Output [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk), IsNotNull(ss_customer_sk), IsNotNull(ss_store_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_item_sk:int,ss_customer_sk:int,ss_store_sk:int,ss_ext_sales_price:decimal(7,2)>

(11) InputAdapter
Input [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: [#4, #5, #6, #7, #8]

(12) NativeFilter
Input [5]: [#4#4, #5#5, #6#6, #7#7, #8#8]
Condition : (((isnotnull(ss_sold_date_sk#4) AND isnotnull(ss_item_sk#5)) AND isnotnull(ss_customer_sk#6)) AND isnotnull(ss_store_sk#7))

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

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

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

(16) InputAdapter
Input [5]: [#4#4, #5#5, #6#6, #7#7, #8#8]

(17) NativeSort
Input [5]: [#4#4, #5#5, #6#6, #7#7, #8#8]
Arguments: [ss_sold_date_sk#4 ASC NULLS FIRST], false

(18) NativeSortMergeJoin
Left keys [1]: [d_date_sk#1]
Right keys [1]: [ss_sold_date_sk#4]
Join type: Inner
Join condition: None

(19) NativeProject
Output [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Input [6]: [d_date_sk#1, #4#4, #5#5, #6#6, #7#7, #8#8]

(20) NativeShuffleExchange
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: hashpartitioning(ss_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=3]

(21) ShuffleQueryStage
Output [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: X

(22) AQEShuffleRead
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: coalesced

(23) InputAdapter
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]

(24) NativeSort
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: [ss_item_sk#5 ASC NULLS FIRST], false

(103) Scan parquet
Output [6]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, i_manager_id#14]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(i_manager_id), EqualTo(i_manager_id,8), IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_brand:string,i_manufact_id:int,i_manufact:string,i_manager_id:int>

(26) InputAdapter
Input [6]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, i_manager_id#14]
Arguments: [#9, #10, #11, #12, #13, #14]

(27) NativeFilter
Input [6]: [#9#9, #10#10, #11#11, #12#12, #13#13, #14#14]
Condition : ((isnotnull(i_manager_id#14) AND (i_manager_id#14 = 8)) AND isnotnull(i_item_sk#9))

(28) NativeProject
Output [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [6]: [#9#9, #10#10, #11#11, #12#12, #13#13, #14#14]

(29) NativeShuffleExchange
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: hashpartitioning(i_item_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=4]

(30) ShuffleQueryStage
Output [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: X

(31) AQEShuffleRead
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: coalesced

(32) InputAdapter
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]

(33) NativeSort
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: [i_item_sk#9 ASC NULLS FIRST], false

(34) NativeSortMergeJoin
Left keys [1]: [ss_item_sk#5]
Right keys [1]: [i_item_sk#9]
Join type: Inner
Join condition: None

(35) NativeProject
Output [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [9]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]

(36) NativeShuffleExchange
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: hashpartitioning(ss_customer_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=5]

(37) ShuffleQueryStage
Output [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: X

(38) AQEShuffleRead
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: coalesced

(39) InputAdapter
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]

(40) NativeSort
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: [ss_customer_sk#6 ASC NULLS FIRST], false

(112) Scan parquet
Output [2]: [c_customer_sk#15, c_current_addr_sk#16]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_addr_sk:int>

(42) InputAdapter
Input [2]: [c_customer_sk#15, c_current_addr_sk#16]
Arguments: [#15, #16]

(43) NativeFilter
Input [2]: [#15#15, #16#16]
Condition : (isnotnull(c_customer_sk#15) AND isnotnull(c_current_addr_sk#16))

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

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

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

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

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

(49) NativeSortMergeJoin
Left keys [1]: [ss_customer_sk#6]
Right keys [1]: [c_customer_sk#15]
Join type: Inner
Join condition: None

(50) NativeProject
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Input [9]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, #15#15, #16#16]

(51) NativeShuffleExchange
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: hashpartitioning(c_current_addr_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=7]

(52) ShuffleQueryStage
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: X

(53) AQEShuffleRead
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: coalesced

(54) InputAdapter
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]

(55) NativeSort
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: [c_current_addr_sk#16 ASC NULLS FIRST], false

(120) Scan parquet
Output [2]: [ca_address_sk#17, ca_zip#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ca_address_sk), IsNotNull(ca_zip)]
ReadSchema: struct<ca_address_sk:int,ca_zip:string>

(57) InputAdapter
Input [2]: [ca_address_sk#17, ca_zip#18]
Arguments: [#17, #18]

(58) NativeFilter
Input [2]: [#17#17, #18#18]
Condition : (isnotnull(ca_address_sk#17) AND isnotnull(ca_zip#18))

(59) NativeShuffleExchange
Input [2]: [#17#17, #18#18]
Arguments: hashpartitioning(ca_address_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=8]

(60) ShuffleQueryStage
Output [2]: [#17#17, #18#18]
Arguments: X

(61) AQEShuffleRead
Input [2]: [#17#17, #18#18]
Arguments: coalesced

(62) InputAdapter
Input [2]: [#17#17, #18#18]

(63) NativeSort
Input [2]: [#17#17, #18#18]
Arguments: [ca_address_sk#17 ASC NULLS FIRST], false

(64) NativeSortMergeJoin
Left keys [1]: [c_current_addr_sk#16]
Right keys [1]: [ca_address_sk#17]
Join type: Inner
Join condition: None

(65) NativeProject
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Input [9]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16, #17#17, #18#18]

(66) NativeShuffleExchange
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: hashpartitioning(ss_store_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=9]

(67) ShuffleQueryStage
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: X

(68) AQEShuffleRead
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: coalesced

(69) InputAdapter
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]

(70) NativeSort
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: [ss_store_sk#7 ASC NULLS FIRST], false

(128) Scan parquet
Output [2]: [s_store_sk#19, s_zip#20]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(s_zip), IsNotNull(s_store_sk)]
ReadSchema: struct<s_store_sk:int,s_zip:string>

(72) InputAdapter
Input [2]: [s_store_sk#19, s_zip#20]
Arguments: [#19, #20]

(73) NativeFilter
Input [2]: [#19#19, #20#20]
Condition : (isnotnull(s_zip#20) AND isnotnull(s_store_sk#19))

(74) NativeShuffleExchange
Input [2]: [#19#19, #20#20]
Arguments: hashpartitioning(s_store_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=10]

(75) ShuffleQueryStage
Output [2]: [#19#19, #20#20]
Arguments: X

(76) AQEShuffleRead
Input [2]: [#19#19, #20#20]
Arguments: coalesced

(77) InputAdapter
Input [2]: [#19#19, #20#20]

(78) NativeSort
Input [2]: [#19#19, #20#20]
Arguments: [s_store_sk#19 ASC NULLS FIRST], false

(79) NativeSortMergeJoin
Left keys [1]: [ss_store_sk#7]
Right keys [1]: [s_store_sk#19]
Join type: Inner
Join condition: NOT (substr(ca_zip#18, 1, 5) = substr(s_zip#20, 1, 5))

(80) NativeProject
Output [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [9]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18, #19#19, #20#20]

(81) NativeProject
Output [5]: [i_brand#11 AS i_brand#11, i_brand_id#10 AS i_brand_id#10, i_manufact_id#12 AS i_manufact_id#12, i_manufact#13 AS i_manufact#13, UnscaledValue(ss_ext_sales_price#8) AS _c4#21]
Input [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]

(82) NativeHashAggregate
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, _c4#21]
Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13]
Functions [1]: [partial_sum(_c4#21)]
Aggregate Attributes [1]: [sum#22]
Results [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]

(83) NativeShuffleExchange
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]
Arguments: hashpartitioning(i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, 100), ENSURE_REQUIREMENTS, [plan_id=11]

(84) ShuffleQueryStage
Output [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]
Arguments: X

(85) AQEShuffleRead
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]
Arguments: coalesced

(86) InputAdapter
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]

(87) NativeHashAggregate
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, #23]
Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13]
Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#8))]
Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#8))#24]
Results [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum(UnscaledValue(ss_ext_sales_price#8))#24]

(88) NativeProject
Output [5]: [i_brand_id#10 AS brand_id#25, i_brand#11 AS brand#26, i_manufact_id#12, i_manufact#13, MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#8))#24,17,2) AS ext_price#27]
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum(UnscaledValue(ss_ext_sales_price#8))#24]

(89) NativeTakeOrdered
Input [5]: [brand_id#25, brand#26, i_manufact_id#12, i_manufact#13, ext_price#27]
Arguments: X, X, [ext_price#27 DESC NULLS LAST, brand#26 ASC NULLS FIRST, brand_id#25 ASC NULLS FIRST, i_manufact_id#12 ASC NULLS FIRST, i_manufact#13 ASC NULLS FIRST]

(90) Scan parquet
Output [3]: [d_date_sk#1, d_year#2, d_moy#3]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_moy), IsNotNull(d_year), EqualTo(d_moy,11), EqualTo(d_year,1998), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(91) Filter
Input [3]: [d_date_sk#1, d_year#2, d_moy#3]
Condition : ((((isnotnull(d_moy#3) AND isnotnull(d_year#2)) AND (d_moy#3 = 11)) AND (d_year#2 = 1998)) AND isnotnull(d_date_sk#1))

(92) Project
Output [1]: [d_date_sk#1]
Input [3]: [d_date_sk#1, d_year#2, d_moy#3]

(93) Exchange
Input [1]: [d_date_sk#1]
Arguments: hashpartitioning(d_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=12]

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

(95) Scan parquet
Output [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk), IsNotNull(ss_customer_sk), IsNotNull(ss_store_sk)]
ReadSchema: struct<ss_sold_date_sk:int,ss_item_sk:int,ss_customer_sk:int,ss_store_sk:int,ss_ext_sales_price:decimal(7,2)>

(96) Filter
Input [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Condition : (((isnotnull(ss_sold_date_sk#4) AND isnotnull(ss_item_sk#5)) AND isnotnull(ss_customer_sk#6)) AND isnotnull(ss_store_sk#7))

(97) Exchange
Input [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: hashpartitioning(ss_sold_date_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=13]

(98) Sort
Input [5]: [ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: [ss_sold_date_sk#4 ASC NULLS FIRST], false, 0

(99) SortMergeJoin
Left keys [1]: [d_date_sk#1]
Right keys [1]: [ss_sold_date_sk#4]
Join type: Inner
Join condition: None

(100) Project
Output [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Input [6]: [d_date_sk#1, ss_sold_date_sk#4, ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]

(101) Exchange
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: hashpartitioning(ss_item_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=14]

(102) Sort
Input [4]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8]
Arguments: [ss_item_sk#5 ASC NULLS FIRST], false, 0

(103) Scan parquet
Output [6]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, i_manager_id#14]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(i_manager_id), EqualTo(i_manager_id,8), IsNotNull(i_item_sk)]
ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_brand:string,i_manufact_id:int,i_manufact:string,i_manager_id:int>

(104) Filter
Input [6]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, i_manager_id#14]
Condition : ((isnotnull(i_manager_id#14) AND (i_manager_id#14 = 8)) AND isnotnull(i_item_sk#9))

(105) Project
Output [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [6]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, i_manager_id#14]

(106) Exchange
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: hashpartitioning(i_item_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=15]

(107) Sort
Input [5]: [i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: [i_item_sk#9 ASC NULLS FIRST], false, 0

(108) SortMergeJoin
Left keys [1]: [ss_item_sk#5]
Right keys [1]: [i_item_sk#9]
Join type: Inner
Join condition: None

(109) Project
Output [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [9]: [ss_item_sk#5, ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_item_sk#9, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]

(110) Exchange
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: hashpartitioning(ss_customer_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=16]

(111) Sort
Input [7]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Arguments: [ss_customer_sk#6 ASC NULLS FIRST], false, 0

(112) Scan parquet
Output [2]: [c_customer_sk#15, c_current_addr_sk#16]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_addr_sk:int>

(113) Filter
Input [2]: [c_customer_sk#15, c_current_addr_sk#16]
Condition : (isnotnull(c_customer_sk#15) AND isnotnull(c_current_addr_sk#16))

(114) Exchange
Input [2]: [c_customer_sk#15, c_current_addr_sk#16]
Arguments: hashpartitioning(c_customer_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=17]

(115) Sort
Input [2]: [c_customer_sk#15, c_current_addr_sk#16]
Arguments: [c_customer_sk#15 ASC NULLS FIRST], false, 0

(116) SortMergeJoin
Left keys [1]: [ss_customer_sk#6]
Right keys [1]: [c_customer_sk#15]
Join type: Inner
Join condition: None

(117) Project
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Input [9]: [ss_customer_sk#6, ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_customer_sk#15, c_current_addr_sk#16]

(118) Exchange
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: hashpartitioning(c_current_addr_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=18]

(119) Sort
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16]
Arguments: [c_current_addr_sk#16 ASC NULLS FIRST], false, 0

(120) Scan parquet
Output [2]: [ca_address_sk#17, ca_zip#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ca_address_sk), IsNotNull(ca_zip)]
ReadSchema: struct<ca_address_sk:int,ca_zip:string>

(121) Filter
Input [2]: [ca_address_sk#17, ca_zip#18]
Condition : (isnotnull(ca_address_sk#17) AND isnotnull(ca_zip#18))

(122) Exchange
Input [2]: [ca_address_sk#17, ca_zip#18]
Arguments: hashpartitioning(ca_address_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=19]

(123) Sort
Input [2]: [ca_address_sk#17, ca_zip#18]
Arguments: [ca_address_sk#17 ASC NULLS FIRST], false, 0

(124) SortMergeJoin
Left keys [1]: [c_current_addr_sk#16]
Right keys [1]: [ca_address_sk#17]
Join type: Inner
Join condition: None

(125) Project
Output [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Input [9]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, c_current_addr_sk#16, ca_address_sk#17, ca_zip#18]

(126) Exchange
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: hashpartitioning(ss_store_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=20]

(127) Sort
Input [7]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18]
Arguments: [ss_store_sk#7 ASC NULLS FIRST], false, 0

(128) Scan parquet
Output [2]: [s_store_sk#19, s_zip#20]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(s_zip), IsNotNull(s_store_sk)]
ReadSchema: struct<s_store_sk:int,s_zip:string>

(129) Filter
Input [2]: [s_store_sk#19, s_zip#20]
Condition : (isnotnull(s_zip#20) AND isnotnull(s_store_sk#19))

(130) Exchange
Input [2]: [s_store_sk#19, s_zip#20]
Arguments: hashpartitioning(s_store_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=21]

(131) Sort
Input [2]: [s_store_sk#19, s_zip#20]
Arguments: [s_store_sk#19 ASC NULLS FIRST], false, 0

(132) SortMergeJoin
Left keys [1]: [ss_store_sk#7]
Right keys [1]: [s_store_sk#19]
Join type: Inner
Join condition: NOT (substr(ca_zip#18, 1, 5) = substr(s_zip#20, 1, 5))

(133) Project
Output [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Input [9]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18, s_store_sk#19, s_zip#20]

(134) HashAggregate
Input [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13]
Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13]
Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#8))]
Aggregate Attributes [1]: [sum#22]
Results [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum#28]

(135) Exchange
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum#28]
Arguments: hashpartitioning(i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, 100), ENSURE_REQUIREMENTS, [plan_id=22]

(136) HashAggregate
Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum#28]
Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13]
Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#8))]
Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#8))#24]
Results [5]: [i_brand_id#10 AS brand_id#25, i_brand#11 AS brand#26, i_manufact_id#12, i_manufact#13, MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#8))#24,17,2) AS ext_price#27]

(137) TakeOrderedAndProject
Input [5]: [brand_id#25, brand#26, i_manufact_id#12, i_manufact#13, ext_price#27]
Arguments: X, [ext_price#27 DESC NULLS LAST, brand#26 ASC NULLS FIRST, brand_id#25 ASC NULLS FIRST, i_manufact_id#12 ASC NULLS FIRST, i_manufact#13 ASC NULLS FIRST], [brand_id#25, brand#26, i_manufact_id#12, i_manufact#13, ext_price#27]

(138) AdaptiveSparkPlan
Output [5]: [brand_id#25, brand#26, i_manufact_id#12, i_manufact#13, ext_price#27]
Arguments: isFinalPlan=true

