== Physical Plan ==
AdaptiveSparkPlan (188)
+- == Final Plan ==
   NativeTakeOrdered (118)
   +- NativeProject (117)
      +- NativeHashAggregate (116)
         +- InputAdapter (115)
            +- AQEShuffleRead (114)
               +- ShuffleQueryStage (113), Statistics(X)
                  +- NativeShuffleExchange (112)
                     +- NativeHashAggregate (111)
                        +- NativeProject (110)
                           +- NativeSortMergeJoin Inner (109)
                              :- NativeSort (100)
                              :  +- InputAdapter (99)
                              :     +- AQEShuffleRead (98)
                              :        +- ShuffleQueryStage (97), Statistics(X)
                              :           +- NativeShuffleExchange (96)
                              :              +- NativeProject (95)
                              :                 +- NativeSortMergeJoin Inner (94)
                              :                    :- NativeSort (84)
                              :                    :  +- InputAdapter (83)
                              :                    :     +- AQEShuffleRead (82)
                              :                    :        +- ShuffleQueryStage (81), Statistics(X)
                              :                    :           +- NativeShuffleExchange (80)
                              :                    :              +- NativeProject (79)
                              :                    :                 +- NativeFilter (78)
                              :                    :                    +- NativeSortMergeJoin ExistenceJoin(exists#1) (77)
                              :                    :                       :- NativeSortMergeJoin ExistenceJoin(exists#2) (55)
                              :                    :                       :  :- NativeSortMergeJoin LeftSemi (33)
                              :                    :                       :  :  :- NativeSort (8)
                              :                    :                       :  :  :  +- InputAdapter (7)
                              :                    :                       :  :  :     +- AQEShuffleRead (6)
                              :                    :                       :  :  :        +- ShuffleQueryStage (5), Statistics(X)
                              :                    :                       :  :  :           +- NativeShuffleExchange (4)
                              :                    :                       :  :  :              +- NativeFilter (3)
                              :                    :                       :  :  :                 +- InputAdapter (2)
                              :                    :                       :  :  :                    +- NativeParquetScan  (1)
                              :                    :                       :  :  +- 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 (54)
                              :                    :                       :     +- InputAdapter (53)
                              :                    :                       :        +- AQEShuffleRead (52)
                              :                    :                       :           +- ShuffleQueryStage (51), Statistics(X)
                              :                    :                       :              +- NativeShuffleExchange (50)
                              :                    :                       :                 +- NativeProject (49)
                              :                    :                       :                    +- NativeSortMergeJoin Inner (48)
                              :                    :                       :                       :- NativeSort (41)
                              :                    :                       :                       :  +- InputAdapter (40)
                              :                    :                       :                       :     +- AQEShuffleRead (39)
                              :                    :                       :                       :        +- ShuffleQueryStage (38), Statistics(X)
                              :                    :                       :                       :           +- NativeShuffleExchange (37)
                              :                    :                       :                       :              +- NativeFilter (36)
                              :                    :                       :                       :                 +- InputAdapter (35)
                              :                    :                       :                       :                    +- NativeParquetScan  (34)
                              :                    :                       :                       +- NativeSort (47)
                              :                    :                       :                          +- InputAdapter (46)
                              :                    :                       :                             +- InputAdapter (45)
                              :                    :                       :                                +- AQEShuffleRead (44)
                              :                    :                       :                                   +- ShuffleQueryStage (43), Statistics(X)
                              :                    :                       :                                      +- ReusedExchange (42)
                              :                    :                       +- NativeSort (76)
                              :                    :                          +- InputAdapter (75)
                              :                    :                             +- AQEShuffleRead (74)
                              :                    :                                +- ShuffleQueryStage (73), Statistics(X)
                              :                    :                                   +- NativeShuffleExchange (72)
                              :                    :                                      +- NativeProject (71)
                              :                    :                                         +- NativeSortMergeJoin Inner (70)
                              :                    :                                            :- NativeSort (63)
                              :                    :                                            :  +- InputAdapter (62)
                              :                    :                                            :     +- AQEShuffleRead (61)
                              :                    :                                            :        +- ShuffleQueryStage (60), Statistics(X)
                              :                    :                                            :           +- NativeShuffleExchange (59)
                              :                    :                                            :              +- NativeFilter (58)
                              :                    :                                            :                 +- InputAdapter (57)
                              :                    :                                            :                    +- NativeParquetScan  (56)
                              :                    :                                            +- NativeSort (69)
                              :                    :                                               +- InputAdapter (68)
                              :                    :                                                  +- InputAdapter (67)
                              :                    :                                                     +- AQEShuffleRead (66)
                              :                    :                                                        +- ShuffleQueryStage (65), Statistics(X)
                              :                    :                                                           +- ReusedExchange (64)
                              :                    +- NativeSort (93)
                              :                       +- InputAdapter (92)
                              :                          +- AQEShuffleRead (91)
                              :                             +- ShuffleQueryStage (90), Statistics(X)
                              :                                +- NativeShuffleExchange (89)
                              :                                   +- NativeProject (88)
                              :                                      +- NativeFilter (87)
                              :                                         +- InputAdapter (86)
                              :                                            +- NativeParquetScan  (85)
                              +- NativeSort (108)
                                 +- InputAdapter (107)
                                    +- AQEShuffleRead (106)
                                       +- ShuffleQueryStage (105), Statistics(X)
                                          +- NativeShuffleExchange (104)
                                             +- NativeFilter (103)
                                                +- InputAdapter (102)
                                                   +- NativeParquetScan  (101)
+- == Initial Plan ==
   TakeOrderedAndProject (187)
   +- HashAggregate (186)
      +- Exchange (185)
         +- HashAggregate (184)
            +- Project (183)
               +- SortMergeJoin Inner (182)
                  :- Sort (177)
                  :  +- Exchange (176)
                  :     +- Project (175)
                  :        +- SortMergeJoin Inner (174)
                  :           :- Sort (168)
                  :           :  +- Exchange (167)
                  :           :     +- Project (166)
                  :           :        +- Filter (165)
                  :           :           +- SortMergeJoin ExistenceJoin(exists#1) (164)
                  :           :              :- SortMergeJoin ExistenceJoin(exists#2) (150)
                  :           :              :  :- SortMergeJoin LeftSemi (136)
                  :           :              :  :  :- Sort (122)
                  :           :              :  :  :  +- Exchange (121)
                  :           :              :  :  :     +- Filter (120)
                  :           :              :  :  :        +- Scan parquet (119)
                  :           :              :  :  +- Sort (135)
                  :           :              :  :     +- Exchange (134)
                  :           :              :  :        +- Project (133)
                  :           :              :  :           +- SortMergeJoin Inner (132)
                  :           :              :  :              :- Sort (126)
                  :           :              :  :              :  +- Exchange (125)
                  :           :              :  :              :     +- Filter (124)
                  :           :              :  :              :        +- Scan parquet (123)
                  :           :              :  :              +- Sort (131)
                  :           :              :  :                 +- Exchange (130)
                  :           :              :  :                    +- Project (129)
                  :           :              :  :                       +- Filter (128)
                  :           :              :  :                          +- Scan parquet (127)
                  :           :              :  +- Sort (149)
                  :           :              :     +- Exchange (148)
                  :           :              :        +- Project (147)
                  :           :              :           +- SortMergeJoin Inner (146)
                  :           :              :              :- Sort (140)
                  :           :              :              :  +- Exchange (139)
                  :           :              :              :     +- Filter (138)
                  :           :              :              :        +- Scan parquet (137)
                  :           :              :              +- Sort (145)
                  :           :              :                 +- Exchange (144)
                  :           :              :                    +- Project (143)
                  :           :              :                       +- Filter (142)
                  :           :              :                          +- Scan parquet (141)
                  :           :              +- Sort (163)
                  :           :                 +- Exchange (162)
                  :           :                    +- Project (161)
                  :           :                       +- SortMergeJoin Inner (160)
                  :           :                          :- Sort (154)
                  :           :                          :  +- Exchange (153)
                  :           :                          :     +- Filter (152)
                  :           :                          :        +- Scan parquet (151)
                  :           :                          +- Sort (159)
                  :           :                             +- Exchange (158)
                  :           :                                +- Project (157)
                  :           :                                   +- Filter (156)
                  :           :                                      +- Scan parquet (155)
                  :           +- Sort (173)
                  :              +- Exchange (172)
                  :                 +- Project (171)
                  :                    +- Filter (170)
                  :                       +- Scan parquet (169)
                  +- Sort (181)
                     +- Exchange (180)
                        +- Filter (179)
                           +- Scan parquet (178)


(119) Scan parquet
Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>

(2) InputAdapter
Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: [#3, #4, #5]

(3) NativeFilter
Input [3]: [#3#3, #4#4, #5#5]
Condition : (isnotnull(c_current_addr_sk#5) AND isnotnull(c_current_cdemo_sk#4))

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

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

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

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

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

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

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

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

(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

(127) Scan parquet
Output [3]: [d_date_sk#8, d_year#9, d_moy#10]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

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

(19) NativeFilter
Input [3]: [#8#8, #9#9, #10#10]
Condition : (((((isnotnull(d_year#9) AND isnotnull(d_moy#10)) AND (d_year#9 = 2002)) AND (d_moy#10 >= 1)) AND (d_moy#10 <= 4)) AND isnotnull(d_date_sk#8))

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

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

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

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

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

(25) NativeSort
Input [1]: [d_date_sk#8]
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 [1]: [ss_customer_sk#7]
Input [3]: [#6#6, #7#7, d_date_sk#8]

(28) NativeShuffleExchange
Input [1]: [ss_customer_sk#7]
Arguments: hashpartitioning(ss_customer_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=4]

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

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

(31) InputAdapter
Input [1]: [ss_customer_sk#7]

(32) NativeSort
Input [1]: [ss_customer_sk#7]
Arguments: [ss_customer_sk#7 ASC NULLS FIRST], false

(33) NativeSortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [ss_customer_sk#7]
Join type: LeftSemi
Join condition: None

(137) Scan parquet
Output [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ws_sold_date_sk)]
ReadSchema: struct<ws_sold_date_sk:int,ws_bill_customer_sk:int>

(35) InputAdapter
Input [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Arguments: [#11, #12]

(36) NativeFilter
Input [2]: [#11#11, #12#12]
Condition : isnotnull(ws_sold_date_sk#11)

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

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

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

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

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

(42) ReusedExchange [Reuses operator id: 21]
Output [1]: [d_date_sk#13]

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

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

(45) InputAdapter
Input [1]: [d_date_sk#13]
Arguments: [#13]

(46) InputAdapter
Input [1]: [#13#13]

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

(48) NativeSortMergeJoin
Left keys [1]: [ws_sold_date_sk#11]
Right keys [1]: [d_date_sk#13]
Join type: Inner
Join condition: None

(49) NativeProject
Output [1]: [ws_bill_customer_sk#12]
Input [3]: [#11#11, #12#12, #13#13]

(50) NativeShuffleExchange
Input [1]: [ws_bill_customer_sk#12]
Arguments: hashpartitioning(ws_bill_customer_sk#12, 100), ENSURE_REQUIREMENTS, [plan_id=6]

(51) ShuffleQueryStage
Output [1]: [ws_bill_customer_sk#12]
Arguments: X

(52) AQEShuffleRead
Input [1]: [ws_bill_customer_sk#12]
Arguments: coalesced

(53) InputAdapter
Input [1]: [ws_bill_customer_sk#12]

(54) NativeSort
Input [1]: [ws_bill_customer_sk#12]
Arguments: [ws_bill_customer_sk#12 ASC NULLS FIRST], false

(55) NativeSortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [ws_bill_customer_sk#12]
Join type: ExistenceJoin(exists#2)
Join condition: None

(151) Scan parquet
Output [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_sold_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_ship_customer_sk:int>

(57) InputAdapter
Input [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Arguments: [#14, #15]

(58) NativeFilter
Input [2]: [#14#14, #15#15]
Condition : isnotnull(cs_sold_date_sk#14)

(59) NativeShuffleExchange
Input [2]: [#14#14, #15#15]
Arguments: hashpartitioning(cs_sold_date_sk#14, 100), ENSURE_REQUIREMENTS, [plan_id=7]

(60) ShuffleQueryStage
Output [2]: [#14#14, #15#15]
Arguments: X

(61) AQEShuffleRead
Input [2]: [#14#14, #15#15]
Arguments: coalesced

(62) InputAdapter
Input [2]: [#14#14, #15#15]

(63) NativeSort
Input [2]: [#14#14, #15#15]
Arguments: [cs_sold_date_sk#14 ASC NULLS FIRST], false

(64) ReusedExchange [Reuses operator id: 21]
Output [1]: [d_date_sk#16]

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

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

(67) InputAdapter
Input [1]: [d_date_sk#16]
Arguments: [#16]

(68) InputAdapter
Input [1]: [#16#16]

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

(70) NativeSortMergeJoin
Left keys [1]: [cs_sold_date_sk#14]
Right keys [1]: [d_date_sk#16]
Join type: Inner
Join condition: None

(71) NativeProject
Output [1]: [cs_ship_customer_sk#15]
Input [3]: [#14#14, #15#15, #16#16]

(72) NativeShuffleExchange
Input [1]: [cs_ship_customer_sk#15]
Arguments: hashpartitioning(cs_ship_customer_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=8]

(73) ShuffleQueryStage
Output [1]: [cs_ship_customer_sk#15]
Arguments: X

(74) AQEShuffleRead
Input [1]: [cs_ship_customer_sk#15]
Arguments: coalesced

(75) InputAdapter
Input [1]: [cs_ship_customer_sk#15]

(76) NativeSort
Input [1]: [cs_ship_customer_sk#15]
Arguments: [cs_ship_customer_sk#15 ASC NULLS FIRST], false

(77) NativeSortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [cs_ship_customer_sk#15]
Join type: ExistenceJoin(exists#1)
Join condition: None

(78) NativeFilter
Input [5]: [#3#3, #4#4, #5#5, exists#2, exists#1]
Condition : (exists#2 OR exists#1)

(79) NativeProject
Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Input [5]: [#3#3, #4#4, #5#5, exists#2, exists#1]

(80) NativeShuffleExchange
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: hashpartitioning(c_current_addr_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=9]

(81) ShuffleQueryStage
Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: X

(82) AQEShuffleRead
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: coalesced

(83) InputAdapter
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]

(84) NativeSort
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: [c_current_addr_sk#5 ASC NULLS FIRST], false

(169) Scan parquet
Output [2]: [ca_address_sk#17, ca_county#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(ca_county, [Dona Ana County,Jefferson County,La Porte County,Rush County,Toole County]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_county:string>

(86) InputAdapter
Input [2]: [ca_address_sk#17, ca_county#18]
Arguments: [#17, #18]

(87) NativeFilter
Input [2]: [#17#17, #18#18]
Condition : (ca_county#18 IN (Rush County,Toole County,Jefferson County,Dona Ana County,La Porte County) AND isnotnull(ca_address_sk#17))

(88) NativeProject
Output [1]: [ca_address_sk#17]
Input [2]: [#17#17, #18#18]

(89) NativeShuffleExchange
Input [1]: [ca_address_sk#17]
Arguments: hashpartitioning(ca_address_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=10]

(90) ShuffleQueryStage
Output [1]: [ca_address_sk#17]
Arguments: X

(91) AQEShuffleRead
Input [1]: [ca_address_sk#17]
Arguments: coalesced

(92) InputAdapter
Input [1]: [ca_address_sk#17]

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

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

(95) NativeProject
Output [1]: [c_current_cdemo_sk#4]
Input [3]: [c_current_cdemo_sk#4, c_current_addr_sk#5, ca_address_sk#17]

(96) NativeShuffleExchange
Input [1]: [c_current_cdemo_sk#4]
Arguments: hashpartitioning(c_current_cdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=11]

(97) ShuffleQueryStage
Output [1]: [c_current_cdemo_sk#4]
Arguments: X

(98) AQEShuffleRead
Input [1]: [c_current_cdemo_sk#4]
Arguments: coalesced

(99) InputAdapter
Input [1]: [c_current_cdemo_sk#4]

(100) NativeSort
Input [1]: [c_current_cdemo_sk#4]
Arguments: [c_current_cdemo_sk#4 ASC NULLS FIRST], false

(178) Scan parquet
Output [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_purchase_estimate:int,cd_credit_rating:string,cd_dep_count:int,cd_dep_employed_count:int,cd_dep_college_count:int>

(102) InputAdapter
Input [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Arguments: [#19, #20, #21, #22, #23, #24, #25, #26, #27]

(103) NativeFilter
Input [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]
Condition : isnotnull(cd_demo_sk#19)

(104) NativeShuffleExchange
Input [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]
Arguments: hashpartitioning(cd_demo_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=12]

(105) ShuffleQueryStage
Output [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]
Arguments: X

(106) AQEShuffleRead
Input [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]
Arguments: coalesced

(107) InputAdapter
Input [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]

(108) NativeSort
Input [9]: [#19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]
Arguments: [cd_demo_sk#19 ASC NULLS FIRST], false

(109) NativeSortMergeJoin
Left keys [1]: [c_current_cdemo_sk#4]
Right keys [1]: [cd_demo_sk#19]
Join type: Inner
Join condition: None

(110) NativeProject
Output [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Input [10]: [c_current_cdemo_sk#4, #19#19, #20#20, #21#21, #22#22, #23#23, #24#24, #25#25, #26#26, #27#27]

(111) NativeHashAggregate
Input [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Keys [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#28]
Results [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]

(112) NativeShuffleExchange
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]
Arguments: hashpartitioning(cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, 100), ENSURE_REQUIREMENTS, [plan_id=13]

(113) ShuffleQueryStage
Output [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]
Arguments: X

(114) AQEShuffleRead
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]
Arguments: coalesced

(115) InputAdapter
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]

(116) NativeHashAggregate
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, #29]
Keys [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#30]
Results [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, count(1)#30]

(117) NativeProject
Output [14]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, count(1)#30 AS cnt1#31, cd_purchase_estimate#23, count(1)#30 AS cnt2#32, cd_credit_rating#24, count(1)#30 AS cnt3#33, cd_dep_count#25, count(1)#30 AS cnt4#34, cd_dep_employed_count#26, count(1)#30 AS cnt5#35, cd_dep_college_count#27, count(1)#30 AS cnt6#36]
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, count(1)#30]

(118) NativeTakeOrdered
Input [14]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cnt1#31, cd_purchase_estimate#23, cnt2#32, cd_credit_rating#24, cnt3#33, cd_dep_count#25, cnt4#34, cd_dep_employed_count#26, cnt5#35, cd_dep_college_count#27, cnt6#36]
Arguments: X, X, [cd_gender#20 ASC NULLS FIRST, cd_marital_status#21 ASC NULLS FIRST, cd_education_status#22 ASC NULLS FIRST, cd_purchase_estimate#23 ASC NULLS FIRST, cd_credit_rating#24 ASC NULLS FIRST, cd_dep_count#25 ASC NULLS FIRST, cd_dep_employed_count#26 ASC NULLS FIRST, cd_dep_college_count#27 ASC NULLS FIRST]

(119) Scan parquet
Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)]
ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>

(120) Filter
Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Condition : (isnotnull(c_current_addr_sk#5) AND isnotnull(c_current_cdemo_sk#4))

(121) Exchange
Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: hashpartitioning(c_customer_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=14]

(122) Sort
Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: [c_customer_sk#3 ASC NULLS FIRST], false, 0

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

(124) Filter
Input [2]: [ss_sold_date_sk#6, ss_customer_sk#7]
Condition : isnotnull(ss_sold_date_sk#6)

(125) Exchange
Input [2]: [ss_sold_date_sk#6, ss_customer_sk#7]
Arguments: hashpartitioning(ss_sold_date_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=15]

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

(127) Scan parquet
Output [3]: [d_date_sk#8, d_year#9, d_moy#10]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(128) Filter
Input [3]: [d_date_sk#8, d_year#9, d_moy#10]
Condition : (((((isnotnull(d_year#9) AND isnotnull(d_moy#10)) AND (d_year#9 = 2002)) AND (d_moy#10 >= 1)) AND (d_moy#10 <= 4)) AND isnotnull(d_date_sk#8))

(129) Project
Output [1]: [d_date_sk#8]
Input [3]: [d_date_sk#8, d_year#9, d_moy#10]

(130) Exchange
Input [1]: [d_date_sk#8]
Arguments: hashpartitioning(d_date_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=16]

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

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

(133) Project
Output [1]: [ss_customer_sk#7]
Input [3]: [ss_sold_date_sk#6, ss_customer_sk#7, d_date_sk#8]

(134) Exchange
Input [1]: [ss_customer_sk#7]
Arguments: hashpartitioning(ss_customer_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=17]

(135) Sort
Input [1]: [ss_customer_sk#7]
Arguments: [ss_customer_sk#7 ASC NULLS FIRST], false, 0

(136) SortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [ss_customer_sk#7]
Join type: LeftSemi
Join condition: None

(137) Scan parquet
Output [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(ws_sold_date_sk)]
ReadSchema: struct<ws_sold_date_sk:int,ws_bill_customer_sk:int>

(138) Filter
Input [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Condition : isnotnull(ws_sold_date_sk#11)

(139) Exchange
Input [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Arguments: hashpartitioning(ws_sold_date_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=18]

(140) Sort
Input [2]: [ws_sold_date_sk#11, ws_bill_customer_sk#12]
Arguments: [ws_sold_date_sk#11 ASC NULLS FIRST], false, 0

(141) Scan parquet
Output [3]: [d_date_sk#13, d_year#37, d_moy#38]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(142) Filter
Input [3]: [d_date_sk#13, d_year#37, d_moy#38]
Condition : (((((isnotnull(d_year#37) AND isnotnull(d_moy#38)) AND (d_year#37 = 2002)) AND (d_moy#38 >= 1)) AND (d_moy#38 <= 4)) AND isnotnull(d_date_sk#13))

(143) Project
Output [1]: [d_date_sk#13]
Input [3]: [d_date_sk#13, d_year#37, d_moy#38]

(144) Exchange
Input [1]: [d_date_sk#13]
Arguments: hashpartitioning(d_date_sk#13, 100), ENSURE_REQUIREMENTS, [plan_id=19]

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

(146) SortMergeJoin
Left keys [1]: [ws_sold_date_sk#11]
Right keys [1]: [d_date_sk#13]
Join type: Inner
Join condition: None

(147) Project
Output [1]: [ws_bill_customer_sk#12]
Input [3]: [ws_sold_date_sk#11, ws_bill_customer_sk#12, d_date_sk#13]

(148) Exchange
Input [1]: [ws_bill_customer_sk#12]
Arguments: hashpartitioning(ws_bill_customer_sk#12, 100), ENSURE_REQUIREMENTS, [plan_id=20]

(149) Sort
Input [1]: [ws_bill_customer_sk#12]
Arguments: [ws_bill_customer_sk#12 ASC NULLS FIRST], false, 0

(150) SortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [ws_bill_customer_sk#12]
Join type: ExistenceJoin(exists#2)
Join condition: None

(151) Scan parquet
Output [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cs_sold_date_sk)]
ReadSchema: struct<cs_sold_date_sk:int,cs_ship_customer_sk:int>

(152) Filter
Input [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Condition : isnotnull(cs_sold_date_sk#14)

(153) Exchange
Input [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Arguments: hashpartitioning(cs_sold_date_sk#14, 100), ENSURE_REQUIREMENTS, [plan_id=21]

(154) Sort
Input [2]: [cs_sold_date_sk#14, cs_ship_customer_sk#15]
Arguments: [cs_sold_date_sk#14 ASC NULLS FIRST], false, 0

(155) Scan parquet
Output [3]: [d_date_sk#16, d_year#39, d_moy#40]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>

(156) Filter
Input [3]: [d_date_sk#16, d_year#39, d_moy#40]
Condition : (((((isnotnull(d_year#39) AND isnotnull(d_moy#40)) AND (d_year#39 = 2002)) AND (d_moy#40 >= 1)) AND (d_moy#40 <= 4)) AND isnotnull(d_date_sk#16))

(157) Project
Output [1]: [d_date_sk#16]
Input [3]: [d_date_sk#16, d_year#39, d_moy#40]

(158) Exchange
Input [1]: [d_date_sk#16]
Arguments: hashpartitioning(d_date_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=22]

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

(160) SortMergeJoin
Left keys [1]: [cs_sold_date_sk#14]
Right keys [1]: [d_date_sk#16]
Join type: Inner
Join condition: None

(161) Project
Output [1]: [cs_ship_customer_sk#15]
Input [3]: [cs_sold_date_sk#14, cs_ship_customer_sk#15, d_date_sk#16]

(162) Exchange
Input [1]: [cs_ship_customer_sk#15]
Arguments: hashpartitioning(cs_ship_customer_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=23]

(163) Sort
Input [1]: [cs_ship_customer_sk#15]
Arguments: [cs_ship_customer_sk#15 ASC NULLS FIRST], false, 0

(164) SortMergeJoin
Left keys [1]: [c_customer_sk#3]
Right keys [1]: [cs_ship_customer_sk#15]
Join type: ExistenceJoin(exists#1)
Join condition: None

(165) Filter
Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
Condition : (exists#2 OR exists#1)

(166) Project
Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]

(167) Exchange
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: hashpartitioning(c_current_addr_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=24]

(168) Sort
Input [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
Arguments: [c_current_addr_sk#5 ASC NULLS FIRST], false, 0

(169) Scan parquet
Output [2]: [ca_address_sk#17, ca_county#18]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [In(ca_county, [Dona Ana County,Jefferson County,La Porte County,Rush County,Toole County]), IsNotNull(ca_address_sk)]
ReadSchema: struct<ca_address_sk:int,ca_county:string>

(170) Filter
Input [2]: [ca_address_sk#17, ca_county#18]
Condition : (ca_county#18 IN (Rush County,Toole County,Jefferson County,Dona Ana County,La Porte County) AND isnotnull(ca_address_sk#17))

(171) Project
Output [1]: [ca_address_sk#17]
Input [2]: [ca_address_sk#17, ca_county#18]

(172) Exchange
Input [1]: [ca_address_sk#17]
Arguments: hashpartitioning(ca_address_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=25]

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

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

(175) Project
Output [1]: [c_current_cdemo_sk#4]
Input [3]: [c_current_cdemo_sk#4, c_current_addr_sk#5, ca_address_sk#17]

(176) Exchange
Input [1]: [c_current_cdemo_sk#4]
Arguments: hashpartitioning(c_current_cdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=26]

(177) Sort
Input [1]: [c_current_cdemo_sk#4]
Arguments: [c_current_cdemo_sk#4 ASC NULLS FIRST], false, 0

(178) Scan parquet
Output [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Batched: true
Location: InMemoryFileIndex [file:/<warehouse_dir>]
PushedFilters: [IsNotNull(cd_demo_sk)]
ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_purchase_estimate:int,cd_credit_rating:string,cd_dep_count:int,cd_dep_employed_count:int,cd_dep_college_count:int>

(179) Filter
Input [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Condition : isnotnull(cd_demo_sk#19)

(180) Exchange
Input [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Arguments: hashpartitioning(cd_demo_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=27]

(181) Sort
Input [9]: [cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Arguments: [cd_demo_sk#19 ASC NULLS FIRST], false, 0

(182) SortMergeJoin
Left keys [1]: [c_current_cdemo_sk#4]
Right keys [1]: [cd_demo_sk#19]
Join type: Inner
Join condition: None

(183) Project
Output [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Input [10]: [c_current_cdemo_sk#4, cd_demo_sk#19, cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]

(184) HashAggregate
Input [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Keys [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#28]
Results [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, count#41]

(185) Exchange
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, count#41]
Arguments: hashpartitioning(cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, 100), ENSURE_REQUIREMENTS, [plan_id=28]

(186) HashAggregate
Input [9]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27, count#41]
Keys [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purchase_estimate#23, cd_credit_rating#24, cd_dep_count#25, cd_dep_employed_count#26, cd_dep_college_count#27]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#30]
Results [14]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, count(1)#30 AS cnt1#31, cd_purchase_estimate#23, count(1)#30 AS cnt2#32, cd_credit_rating#24, count(1)#30 AS cnt3#33, cd_dep_count#25, count(1)#30 AS cnt4#34, cd_dep_employed_count#26, count(1)#30 AS cnt5#35, cd_dep_college_count#27, count(1)#30 AS cnt6#36]

(187) TakeOrderedAndProject
Input [14]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cnt1#31, cd_purchase_estimate#23, cnt2#32, cd_credit_rating#24, cnt3#33, cd_dep_count#25, cnt4#34, cd_dep_employed_count#26, cnt5#35, cd_dep_college_count#27, cnt6#36]
Arguments: X, [cd_gender#20 ASC NULLS FIRST, cd_marital_status#21 ASC NULLS FIRST, cd_education_status#22 ASC NULLS FIRST, cd_purchase_estimate#23 ASC NULLS FIRST, cd_credit_rating#24 ASC NULLS FIRST, cd_dep_count#25 ASC NULLS FIRST, cd_dep_employed_count#26 ASC NULLS FIRST, cd_dep_college_count#27 ASC NULLS FIRST], [cd_gender#20, cd_marital_status#21, cd_education_status#22, cnt1#31, cd_purchase_estimate#23, cnt2#32, cd_credit_rating#24, cnt3#33, cd_dep_count#25, cnt4#34, cd_dep_employed_count#26, cnt5#35, cd_dep_college_count#27, cnt6#36]

(188) AdaptiveSparkPlan
Output [14]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cnt1#31, cd_purchase_estimate#23, cnt2#32, cd_credit_rating#24, cnt3#33, cd_dep_count#25, cnt4#34, cd_dep_employed_count#26, cnt5#35, cd_dep_college_count#27, cnt6#36]
Arguments: isFinalPlan=true

