diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt index de3b33da9..da2e4839d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt @@ -245,25 +245,25 @@ Input [3]: [sr_customer_sk#2, sr_store_sk#3, _c2#7] Keys [2]: [sr_customer_sk#2, sr_store_sk#3] Functions [1]: [partial_sum(_c2#7)] Aggregate Attributes [1]: [sum#8] -Results [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Results [3]: [sr_customer_sk#2, sr_store_sk#3, #9] (22) NativeShuffleExchange -Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9] Arguments: hashpartitioning(sr_customer_sk#2, sr_store_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=3] (23) ShuffleQueryStage -Output [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Output [3]: [sr_customer_sk#2, sr_store_sk#3, #9] Arguments: X (24) AQEShuffleRead -Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9] Arguments: coalesced (25) InputAdapter -Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9] (26) NativeHashAggregate -Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9#9] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, #9] Keys [2]: [sr_customer_sk#2, sr_store_sk#3] Functions [1]: [sum(UnscaledValue(sr_return_amt#4))] Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#4))#10] @@ -371,25 +371,25 @@ Input [3]: [sr_customer_sk#15, sr_store_sk#16, _c2#19] Keys [2]: [sr_customer_sk#15, sr_store_sk#16] Functions [1]: [partial_sum(_c2#19)] Aggregate Attributes [1]: [sum#20] -Results [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Results [3]: [sr_customer_sk#15, sr_store_sk#16, #9] (52) NativeShuffleExchange -Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9] Arguments: hashpartitioning(sr_customer_sk#15, sr_store_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=6] (53) ShuffleQueryStage -Output [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Output [3]: [sr_customer_sk#15, sr_store_sk#16, #9] Arguments: X (54) AQEShuffleRead -Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9] Arguments: coalesced (55) InputAdapter -Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9] (56) NativeHashAggregate -Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9#9] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, #9] Keys [2]: [sr_customer_sk#15, sr_store_sk#16] Functions [1]: [sum(UnscaledValue(sr_return_amt#17))] Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#17))#10] @@ -404,102 +404,102 @@ Input [2]: [ctr_store_sk#21, ctr_total_return#22] Keys [1]: [ctr_store_sk#21] Functions [1]: [partial_avg(ctr_total_return#22)] Aggregate Attributes [2]: [sum#23, count#24] -Results [2]: [ctr_store_sk#21, #9#9] +Results [3]: [ctr_store_sk#21, #25, #9] (59) NativeShuffleExchange -Input [2]: [ctr_store_sk#21, #9#9] +Input [3]: [ctr_store_sk#21, #25, #9] Arguments: hashpartitioning(ctr_store_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=7] (60) ShuffleQueryStage -Output [2]: [ctr_store_sk#21, #9#9] +Output [3]: [ctr_store_sk#21, #25, #9] Arguments: X (61) AQEShuffleRead -Input [2]: [ctr_store_sk#21, #9#9] +Input [3]: [ctr_store_sk#21, #25, #9] Arguments: coalesced (62) InputAdapter -Input [2]: [ctr_store_sk#21, #9#9] +Input [3]: [ctr_store_sk#21, #25, #9] (63) NativeHashAggregate -Input [2]: [ctr_store_sk#21, #9#9] +Input [3]: [ctr_store_sk#21, #25, #9] Keys [1]: [ctr_store_sk#21] Functions [1]: [avg(ctr_total_return#22)] -Aggregate Attributes [1]: [avg(ctr_total_return#22)#25] -Results [2]: [ctr_store_sk#21, avg(ctr_total_return#22)#25] +Aggregate Attributes [1]: [avg(ctr_total_return#22)#26] +Results [2]: [ctr_store_sk#21, avg(ctr_total_return#22)#26] (64) NativeProject -Output [2]: [(avg(ctr_total_return#22)#25 * 1.2) AS (avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] -Input [2]: [ctr_store_sk#21, avg(ctr_total_return#22)#25] +Output [2]: [(avg(ctr_total_return#22)#26 * 1.2) AS (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] +Input [2]: [ctr_store_sk#21, avg(ctr_total_return#22)#26] (65) NativeFilter -Input [2]: [(avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#26) +Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#27) (66) NativeSort -Input [2]: [(avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] +Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] Arguments: [ctr_store_sk#21 ASC NULLS FIRST], false (67) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_store_sk#12] Right keys [1]: [ctr_store_sk#21] Join type: Inner -Join condition: (cast(ctr_total_return#13 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#26) +Join condition: (cast(ctr_total_return#13 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#27) (68) Project [codegen id : X] Output [2]: [ctr_customer_sk#11, ctr_store_sk#12] -Input [5]: [ctr_customer_sk#11, ctr_store_sk#12, ctr_total_return#13, (avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] +Input [5]: [ctr_customer_sk#11, ctr_store_sk#12, ctr_total_return#13, (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] (69) ConvertToNative Input [2]: [ctr_customer_sk#11, ctr_store_sk#12] (135) Scan parquet -Output [2]: [s_store_sk#27, s_state#28] +Output [2]: [s_store_sk#28, s_state#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_state), EqualTo(s_state,TN), IsNotNull(s_store_sk)] ReadSchema: struct (71) InputAdapter -Input [2]: [s_store_sk#27, s_state#28] -Arguments: [#27, #28] +Input [2]: [s_store_sk#28, s_state#29] +Arguments: [#28, #29] (72) NativeFilter -Input [2]: [#27#27, #28#28] -Condition : ((isnotnull(s_state#28) AND (s_state#28 = TN)) AND isnotnull(s_store_sk#27)) +Input [2]: [#28#28, #29#29] +Condition : ((isnotnull(s_state#29) AND (s_state#29 = TN)) AND isnotnull(s_store_sk#28)) (73) NativeProject -Output [1]: [s_store_sk#27] -Input [2]: [#27#27, #28#28] +Output [1]: [s_store_sk#28] +Input [2]: [#28#28, #29#29] (74) NativeShuffleExchange -Input [1]: [s_store_sk#27] -Arguments: hashpartitioning(s_store_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=8] +Input [1]: [s_store_sk#28] +Arguments: hashpartitioning(s_store_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=8] (75) ShuffleQueryStage -Output [1]: [s_store_sk#27] +Output [1]: [s_store_sk#28] Arguments: X (76) AQEShuffleRead -Input [1]: [s_store_sk#27] +Input [1]: [s_store_sk#28] Arguments: coalesced (77) InputAdapter -Input [1]: [s_store_sk#27] +Input [1]: [s_store_sk#28] (78) NativeSort -Input [1]: [s_store_sk#27] -Arguments: [s_store_sk#27 ASC NULLS FIRST], false +Input [1]: [s_store_sk#28] +Arguments: [s_store_sk#28 ASC NULLS FIRST], false (79) NativeSortMergeJoin Left keys [1]: [ctr_store_sk#12] -Right keys [1]: [s_store_sk#27] +Right keys [1]: [s_store_sk#28] Join type: Inner Join condition: None (80) NativeProject Output [1]: [ctr_customer_sk#11] -Input [3]: [ctr_customer_sk#11, ctr_store_sk#12, s_store_sk#27] +Input [3]: [ctr_customer_sk#11, ctr_store_sk#12, s_store_sk#28] (81) NativeShuffleExchange Input [1]: [ctr_customer_sk#11] @@ -521,52 +521,52 @@ Input [1]: [ctr_customer_sk#11] Arguments: [ctr_customer_sk#11 ASC NULLS FIRST], false (144) Scan parquet -Output [2]: [c_customer_sk#29, c_customer_id#30] +Output [2]: [c_customer_sk#30, c_customer_id#31] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (87) InputAdapter -Input [2]: [c_customer_sk#29, c_customer_id#30] -Arguments: [#29, #30] +Input [2]: [c_customer_sk#30, c_customer_id#31] +Arguments: [#30, #31] (88) NativeFilter -Input [2]: [#29#29, #30#30] -Condition : isnotnull(c_customer_sk#29) +Input [2]: [#30#30, #31#31] +Condition : isnotnull(c_customer_sk#30) (89) NativeShuffleExchange -Input [2]: [#29#29, #30#30] -Arguments: hashpartitioning(c_customer_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [2]: [#30#30, #31#31] +Arguments: hashpartitioning(c_customer_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=10] (90) ShuffleQueryStage -Output [2]: [#29#29, #30#30] +Output [2]: [#30#30, #31#31] Arguments: X (91) AQEShuffleRead -Input [2]: [#29#29, #30#30] +Input [2]: [#30#30, #31#31] Arguments: coalesced (92) InputAdapter -Input [2]: [#29#29, #30#30] +Input [2]: [#30#30, #31#31] (93) NativeSort -Input [2]: [#29#29, #30#30] -Arguments: [c_customer_sk#29 ASC NULLS FIRST], false +Input [2]: [#30#30, #31#31] +Arguments: [c_customer_sk#30 ASC NULLS FIRST], false (94) NativeSortMergeJoin Left keys [1]: [ctr_customer_sk#11] -Right keys [1]: [c_customer_sk#29] +Right keys [1]: [c_customer_sk#30] Join type: Inner Join condition: None (95) NativeProject -Output [1]: [c_customer_id#30] -Input [3]: [ctr_customer_sk#11, #29#29, #30#30] +Output [1]: [c_customer_id#31] +Input [3]: [ctr_customer_sk#11, #30#30, #31#31] (96) NativeTakeOrdered -Input [1]: [c_customer_id#30] -Arguments: X, [c_customer_id#30 ASC NULLS FIRST] +Input [1]: [c_customer_id#31] +Arguments: X, [c_customer_id#31 ASC NULLS FIRST] (97) Scan parquet Output [4]: [sr_returned_date_sk#1, sr_customer_sk#2, sr_store_sk#3, sr_return_amt#4] @@ -625,14 +625,14 @@ Input [3]: [sr_customer_sk#2, sr_store_sk#3, sr_return_amt#4] Keys [2]: [sr_customer_sk#2, sr_store_sk#3] Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#4))] Aggregate Attributes [1]: [sum#8] -Results [3]: [sr_customer_sk#2, sr_store_sk#3, sum#31] +Results [3]: [sr_customer_sk#2, sr_store_sk#3, sum#32] (109) Exchange -Input [3]: [sr_customer_sk#2, sr_store_sk#3, sum#31] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, sum#32] Arguments: hashpartitioning(sr_customer_sk#2, sr_store_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=13] (110) HashAggregate -Input [3]: [sr_customer_sk#2, sr_store_sk#3, sum#31] +Input [3]: [sr_customer_sk#2, sr_store_sk#3, sum#32] Keys [2]: [sr_customer_sk#2, sr_store_sk#3] Functions [1]: [sum(UnscaledValue(sr_return_amt#4))] Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#4))#10] @@ -670,19 +670,19 @@ Input [4]: [sr_returned_date_sk#14, sr_customer_sk#15, sr_store_sk#16, sr_return Arguments: [sr_returned_date_sk#14 ASC NULLS FIRST], false, 0 (118) Scan parquet -Output [2]: [d_date_sk#18, d_year#32] +Output [2]: [d_date_sk#18, d_year#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)] ReadSchema: struct (119) Filter -Input [2]: [d_date_sk#18, d_year#32] -Condition : ((isnotnull(d_year#32) AND (d_year#32 = 2000)) AND isnotnull(d_date_sk#18)) +Input [2]: [d_date_sk#18, d_year#33] +Condition : ((isnotnull(d_year#33) AND (d_year#33 = 2000)) AND isnotnull(d_date_sk#18)) (120) Project Output [1]: [d_date_sk#18] -Input [2]: [d_date_sk#18, d_year#32] +Input [2]: [d_date_sk#18, d_year#33] (121) Exchange Input [1]: [d_date_sk#18] @@ -707,14 +707,14 @@ Input [3]: [sr_customer_sk#15, sr_store_sk#16, sr_return_amt#17] Keys [2]: [sr_customer_sk#15, sr_store_sk#16] Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#17))] Aggregate Attributes [1]: [sum#20] -Results [3]: [sr_customer_sk#15, sr_store_sk#16, sum#33] +Results [3]: [sr_customer_sk#15, sr_store_sk#16, sum#34] (126) Exchange -Input [3]: [sr_customer_sk#15, sr_store_sk#16, sum#33] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, sum#34] Arguments: hashpartitioning(sr_customer_sk#15, sr_store_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=17] (127) HashAggregate -Input [3]: [sr_customer_sk#15, sr_store_sk#16, sum#33] +Input [3]: [sr_customer_sk#15, sr_store_sk#16, sum#34] Keys [2]: [sr_customer_sk#15, sr_store_sk#16] Functions [1]: [sum(UnscaledValue(sr_return_amt#17))] Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#17))#10] @@ -725,69 +725,69 @@ Input [2]: [ctr_store_sk#21, ctr_total_return#22] Keys [1]: [ctr_store_sk#21] Functions [1]: [partial_avg(ctr_total_return#22)] Aggregate Attributes [2]: [sum#23, count#24] -Results [3]: [ctr_store_sk#21, sum#34, count#35] +Results [3]: [ctr_store_sk#21, sum#35, count#36] (129) Exchange -Input [3]: [ctr_store_sk#21, sum#34, count#35] +Input [3]: [ctr_store_sk#21, sum#35, count#36] Arguments: hashpartitioning(ctr_store_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=18] (130) HashAggregate -Input [3]: [ctr_store_sk#21, sum#34, count#35] +Input [3]: [ctr_store_sk#21, sum#35, count#36] Keys [1]: [ctr_store_sk#21] Functions [1]: [avg(ctr_total_return#22)] -Aggregate Attributes [1]: [avg(ctr_total_return#22)#25] -Results [2]: [(avg(ctr_total_return#22)#25 * 1.2) AS (avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] +Aggregate Attributes [1]: [avg(ctr_total_return#22)#26] +Results [2]: [(avg(ctr_total_return#22)#26 * 1.2) AS (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] (131) Filter -Input [2]: [(avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#26) +Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#27) (132) Sort -Input [2]: [(avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] +Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] Arguments: [ctr_store_sk#21 ASC NULLS FIRST], false, 0 (133) SortMergeJoin Left keys [1]: [ctr_store_sk#12] Right keys [1]: [ctr_store_sk#21] Join type: Inner -Join condition: (cast(ctr_total_return#13 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#26) +Join condition: (cast(ctr_total_return#13 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#27) (134) Project Output [2]: [ctr_customer_sk#11, ctr_store_sk#12] -Input [5]: [ctr_customer_sk#11, ctr_store_sk#12, ctr_total_return#13, (avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] +Input [5]: [ctr_customer_sk#11, ctr_store_sk#12, ctr_total_return#13, (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#21] (135) Scan parquet -Output [2]: [s_store_sk#27, s_state#28] +Output [2]: [s_store_sk#28, s_state#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_state), EqualTo(s_state,TN), IsNotNull(s_store_sk)] ReadSchema: struct (136) Filter -Input [2]: [s_store_sk#27, s_state#28] -Condition : ((isnotnull(s_state#28) AND (s_state#28 = TN)) AND isnotnull(s_store_sk#27)) +Input [2]: [s_store_sk#28, s_state#29] +Condition : ((isnotnull(s_state#29) AND (s_state#29 = TN)) AND isnotnull(s_store_sk#28)) (137) Project -Output [1]: [s_store_sk#27] -Input [2]: [s_store_sk#27, s_state#28] +Output [1]: [s_store_sk#28] +Input [2]: [s_store_sk#28, s_state#29] (138) Exchange -Input [1]: [s_store_sk#27] -Arguments: hashpartitioning(s_store_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=19] +Input [1]: [s_store_sk#28] +Arguments: hashpartitioning(s_store_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=19] (139) Sort -Input [1]: [s_store_sk#27] -Arguments: [s_store_sk#27 ASC NULLS FIRST], false, 0 +Input [1]: [s_store_sk#28] +Arguments: [s_store_sk#28 ASC NULLS FIRST], false, 0 (140) SortMergeJoin Left keys [1]: [ctr_store_sk#12] -Right keys [1]: [s_store_sk#27] +Right keys [1]: [s_store_sk#28] Join type: Inner Join condition: None (141) Project Output [1]: [ctr_customer_sk#11] -Input [3]: [ctr_customer_sk#11, ctr_store_sk#12, s_store_sk#27] +Input [3]: [ctr_customer_sk#11, ctr_store_sk#12, s_store_sk#28] (142) Exchange Input [1]: [ctr_customer_sk#11] @@ -798,39 +798,39 @@ Input [1]: [ctr_customer_sk#11] Arguments: [ctr_customer_sk#11 ASC NULLS FIRST], false, 0 (144) Scan parquet -Output [2]: [c_customer_sk#29, c_customer_id#30] +Output [2]: [c_customer_sk#30, c_customer_id#31] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (145) Filter -Input [2]: [c_customer_sk#29, c_customer_id#30] -Condition : isnotnull(c_customer_sk#29) +Input [2]: [c_customer_sk#30, c_customer_id#31] +Condition : isnotnull(c_customer_sk#30) (146) Exchange -Input [2]: [c_customer_sk#29, c_customer_id#30] -Arguments: hashpartitioning(c_customer_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [2]: [c_customer_sk#30, c_customer_id#31] +Arguments: hashpartitioning(c_customer_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=21] (147) Sort -Input [2]: [c_customer_sk#29, c_customer_id#30] -Arguments: [c_customer_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [c_customer_sk#30, c_customer_id#31] +Arguments: [c_customer_sk#30 ASC NULLS FIRST], false, 0 (148) SortMergeJoin Left keys [1]: [ctr_customer_sk#11] -Right keys [1]: [c_customer_sk#29] +Right keys [1]: [c_customer_sk#30] Join type: Inner Join condition: None (149) Project -Output [1]: [c_customer_id#30] -Input [3]: [ctr_customer_sk#11, c_customer_sk#29, c_customer_id#30] +Output [1]: [c_customer_id#31] +Input [3]: [ctr_customer_sk#11, c_customer_sk#30, c_customer_id#31] (150) TakeOrderedAndProject -Input [1]: [c_customer_id#30] -Arguments: X, [c_customer_id#30 ASC NULLS FIRST], [c_customer_id#30] +Input [1]: [c_customer_id#31] +Arguments: X, [c_customer_id#31 ASC NULLS FIRST], [c_customer_id#31] (151) AdaptiveSparkPlan -Output [1]: [c_customer_id#30] +Output [1]: [c_customer_id#31] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q10.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q10.txt index e48303a35..65b0b56c1 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q10.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q10.txt @@ -657,25 +657,25 @@ Input [8]: [cd_gender#20, cd_marital_status#21, cd_education_status#22, cd_purch 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#29] +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#29] +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#29] +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#29] +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#29] +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#29] +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] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt index 0011be99b..d6c6fcbc7 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt @@ -408,25 +408,25 @@ Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferr Keys [8]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8] Functions [1]: [partial_sum(_c8#15)] Aggregate Attributes [1]: [sum#16] -Results [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Results [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] (36) NativeShuffleExchange -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] Arguments: hashpartitioning(c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Output [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] Arguments: X (38) AQEShuffleRead -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] Arguments: coalesced (39) InputAdapter -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] (40) NativeHashAggregate -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17#17] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, #17] Keys [8]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#14, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8] Functions [1]: [sum(UnscaledValue((ss_ext_list_price#12 - ss_ext_discount_amt#11)))] Aggregate Attributes [1]: [sum(UnscaledValue((ss_ext_list_price#12 - ss_ext_discount_amt#11)))#18] @@ -534,25 +534,25 @@ Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_pref Keys [8]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27] Functions [1]: [partial_sum(_c8#33)] Aggregate Attributes [1]: [sum#34] -Results [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Results [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] (66) NativeShuffleExchange -Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] Arguments: hashpartitioning(c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, 100), ENSURE_REQUIREMENTS, [plan_id=8] (67) ShuffleQueryStage -Output [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Output [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] Arguments: X (68) AQEShuffleRead -Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] Arguments: coalesced (69) InputAdapter -Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] (70) NativeHashAggregate -Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17#17] +Input [9]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27, #17] Keys [8]: [c_customer_id#21, c_first_name#22, c_last_name#23, d_year#32, c_preferred_cust_flag#24, c_birth_country#25, c_login#26, c_email_address#27] Functions [1]: [sum(UnscaledValue((ss_ext_list_price#30 - ss_ext_discount_amt#29)))] Aggregate Attributes [1]: [sum(UnscaledValue((ss_ext_list_price#30 - ss_ext_discount_amt#29)))#18] @@ -717,25 +717,25 @@ Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_ Keys [8]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51] Functions [1]: [partial_sum(_c8#52)] Aggregate Attributes [1]: [sum#53] -Results [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Results [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] (110) NativeShuffleExchange -Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] Arguments: hashpartitioning(c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, 100), ENSURE_REQUIREMENTS, [plan_id=12] (111) ShuffleQueryStage -Output [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Output [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] Arguments: X (112) AQEShuffleRead -Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] Arguments: coalesced (113) InputAdapter -Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] (114) NativeHashAggregate -Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17#17] +Input [9]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51, #17] Keys [8]: [c_customer_id#39, c_first_name#40, c_last_name#41, c_preferred_cust_flag#42, c_birth_country#43, c_login#44, c_email_address#45, d_year#51] Functions [1]: [sum(UnscaledValue((ws_ext_list_price#49 - ws_ext_discount_amt#48)))] Aggregate Attributes [1]: [sum(UnscaledValue((ws_ext_list_price#49 - ws_ext_discount_amt#48)))#54] @@ -841,25 +841,25 @@ Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_ Keys [8]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68] Functions [1]: [partial_sum(_c8#69)] Aggregate Attributes [1]: [sum#70] -Results [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Results [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] (140) NativeShuffleExchange -Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] Arguments: hashpartitioning(c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, 100), ENSURE_REQUIREMENTS, [plan_id=14] (141) ShuffleQueryStage -Output [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Output [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] Arguments: X (142) AQEShuffleRead -Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] Arguments: coalesced (143) InputAdapter -Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] (144) NativeHashAggregate -Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17#17] +Input [9]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68, #17] Keys [8]: [c_customer_id#57, c_first_name#58, c_last_name#59, c_preferred_cust_flag#60, c_birth_country#61, c_login#62, c_email_address#63, d_year#68] Functions [1]: [sum(UnscaledValue((ws_ext_list_price#66 - ws_ext_discount_amt#65)))] Aggregate Attributes [1]: [sum(UnscaledValue((ws_ext_list_price#66 - ws_ext_discount_amt#65)))#54] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt index b20a8ba85..843c0d408 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt @@ -235,25 +235,25 @@ Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [partial_sum(_c5#12)] Aggregate Attributes [1]: [sum#13] -Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (37) NativeShuffleExchange -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: hashpartitioning(i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: X (39) AQEShuffleRead -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: coalesced (40) InputAdapter -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (41) NativeHashAggregate -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#3))#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14a.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14a.txt index 993561aa7..15c94b966 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14a.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14a.txt @@ -1268,33 +1268,33 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Keys [3]: [brand_id#24, class_id#25, category_id#26] Functions: [] Aggregate Attributes: [] -Results [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Results [3]: [brand_id#24, class_id#25, category_id#26] (94) NativeShuffleExchange -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: hashpartitioning(brand_id#24, class_id#25, category_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=12] (95) ShuffleQueryStage -Output [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Output [3]: [brand_id#24, class_id#25, category_id#26] Arguments: X (96) AQEShuffleRead -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: coalesced (97) InputAdapter -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] (98) NativeHashAggregate -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Keys [3]: [brand_id#24, class_id#25, category_id#26] Functions: [] Aggregate Attributes: [] -Results [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Results [3]: [brand_id#24, class_id#25, category_id#26] (99) NativeProject Output [3]: [brand_id#24, class_id#25, category_id#26] -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] (100) NativeShuffleExchange Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -1316,144 +1316,144 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false (366) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (106) InputAdapter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [#28, #29] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [#27, #28] (107) NativeFilter -Input [2]: [#28#28, #29#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [#27#27, #28#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (108) NativeShuffleExchange -Input [2]: [#28#28, #29#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [2]: [#27#27, #28#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=14] (109) ShuffleQueryStage -Output [2]: [#28#28, #29#29] +Output [2]: [#27#27, #28#28] Arguments: X (110) AQEShuffleRead -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] Arguments: coalesced (111) InputAdapter -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] (112) NativeSort -Input [2]: [#28#28, #29#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false +Input [2]: [#27#27, #28#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false (113) ReusedExchange [Reuses operator id: 44] -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (114) ShuffleQueryStage -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (115) AQEShuffleRead -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (116) InputAdapter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [#30, #31, #32, #33] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [#29, #30, #31, #32] (117) InputAdapter -Input [4]: [#30#30, #31#31, #32#32, #33#33] +Input [4]: [#29#29, #30#30, #31#31, #32#32] (118) NativeSort -Input [4]: [#30#30, #31#31, #32#32, #33#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false +Input [4]: [#29#29, #30#30, #31#31, #32#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false (119) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (120) NativeProject -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [#28#28, #29#29, #30#30, #31#31, #32#32, #33#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [#27#27, #28#28, #29#29, #30#30, #31#31, #32#32] (121) NativeShuffleExchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=15] (122) ShuffleQueryStage -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (123) AQEShuffleRead -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (124) InputAdapter -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] (125) NativeSort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false (126) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#34] +Output [1]: [d_date_sk#33] (127) ShuffleQueryStage -Output [1]: [d_date_sk#34] +Output [1]: [d_date_sk#33] Arguments: X (128) AQEShuffleRead -Input [1]: [d_date_sk#34] +Input [1]: [d_date_sk#33] Arguments: coalesced (129) InputAdapter -Input [1]: [d_date_sk#34] -Arguments: [#34] +Input [1]: [d_date_sk#33] +Arguments: [#33] (130) InputAdapter -Input [1]: [#34#34] +Input [1]: [#33#33] (131) NativeSort -Input [1]: [#34#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false +Input [1]: [#33#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false (132) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (133) NativeProject -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, #34#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, #33#33] (134) NativeShuffleExchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=16] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=16] (135) ShuffleQueryStage -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (136) AQEShuffleRead -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (137) InputAdapter -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] (138) NativeSort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false (139) NativeSortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -1483,685 +1483,685 @@ Join type: Inner Join condition: None (146) NativeProject -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [#5#5, #6#6, #7#7, #8#8, brand_id#24, class_id#25, category_id#26] (147) NativeShuffleExchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=18] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=18] (148) ShuffleQueryStage -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] Arguments: X (149) AQEShuffleRead -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] Arguments: coalesced (150) InputAdapter -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] (151) NativeSort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false (152) NativeSortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [ss_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (153) ReusedExchange [Reuses operator id: 44] -Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] (154) ShuffleQueryStage -Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: X (155) AQEShuffleRead -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: coalesced (156) InputAdapter -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: [#36, #37, #38, #39] +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: [#35, #36, #37, #38] (157) InputAdapter -Input [4]: [#36#36, #37#37, #38#38, #39#39] +Input [4]: [#35#35, #36#36, #37#37, #38#38] (158) NativeSort -Input [4]: [#36#36, #37#37, #38#38, #39#39] -Arguments: [i_item_sk#36 ASC NULLS FIRST], false +Input [4]: [#35#35, #36#36, #37#37, #38#38] +Arguments: [i_item_sk#35 ASC NULLS FIRST], false (159) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] (160) ShuffleQueryStage -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] Arguments: X (161) AQEShuffleRead -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] Arguments: coalesced (162) InputAdapter -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] (163) NativeSort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false (164) NativeSortMergeJoin -Left keys [1]: [i_item_sk#36] -Right keys [1]: [ss_item_sk#35] +Left keys [1]: [i_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (165) NativeSortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#36] +Right keys [1]: [i_item_sk#35] Join type: Inner Join condition: None (166) NativeProject -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [8]: [#1#1, #2#2, #3#3, #4#4, #36#36, #37#37, #38#38, #39#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [8]: [#1#1, #2#2, #3#3, #4#4, #35#35, #36#36, #37#37, #38#38] (167) NativeShuffleExchange -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: hashpartitioning(ss_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=19] (168) ShuffleQueryStage -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: X (169) AQEShuffleRead -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: coalesced (170) InputAdapter -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] (171) NativeSort -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false (484) Scan parquet -Output [3]: [d_date_sk#40, d_year#41, d_moy#42] +Output [3]: [d_date_sk#39, d_year#40, d_moy#41] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,11), IsNotNull(d_date_sk)] ReadSchema: struct (173) InputAdapter -Input [3]: [d_date_sk#40, d_year#41, d_moy#42] -Arguments: [#40, #41, #42] +Input [3]: [d_date_sk#39, d_year#40, d_moy#41] +Arguments: [#39, #40, #41] (174) NativeFilter -Input [3]: [#40#40, #41#41, #42#42] -Condition : ((((isnotnull(d_year#41) AND isnotnull(d_moy#42)) AND (d_year#41 = 2001)) AND (d_moy#42 = 11)) AND isnotnull(d_date_sk#40)) +Input [3]: [#39#39, #40#40, #41#41] +Condition : ((((isnotnull(d_year#40) AND isnotnull(d_moy#41)) AND (d_year#40 = 2001)) AND (d_moy#41 = 11)) AND isnotnull(d_date_sk#39)) (175) NativeProject -Output [1]: [d_date_sk#40] -Input [3]: [#40#40, #41#41, #42#42] +Output [1]: [d_date_sk#39] +Input [3]: [#39#39, #40#40, #41#41] (176) NativeShuffleExchange -Input [1]: [d_date_sk#40] -Arguments: hashpartitioning(d_date_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=20] +Input [1]: [d_date_sk#39] +Arguments: hashpartitioning(d_date_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=20] (177) ShuffleQueryStage -Output [1]: [d_date_sk#40] +Output [1]: [d_date_sk#39] Arguments: X (178) AQEShuffleRead -Input [1]: [d_date_sk#40] +Input [1]: [d_date_sk#39] Arguments: coalesced (179) InputAdapter -Input [1]: [d_date_sk#40] +Input [1]: [d_date_sk#39] (180) NativeSort -Input [1]: [d_date_sk#40] -Arguments: [d_date_sk#40 ASC NULLS FIRST], false +Input [1]: [d_date_sk#39] +Arguments: [d_date_sk#39 ASC NULLS FIRST], false (181) NativeSortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#40] +Right keys [1]: [d_date_sk#39] Join type: Inner Join condition: None (182) NativeProject -Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39, d_date_sk#40] +Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38, d_date_sk#39] (183) NativeProject -Output [4]: [i_brand_id#37 AS i_brand_id#37, i_class_id#38 AS i_class_id#38, i_category_id#39 AS i_category_id#39, (cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4) AS _c3#43] -Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_brand_id#36 AS i_brand_id#36, i_class_id#37 AS i_class_id#37, i_category_id#38 AS i_category_id#38, (cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4) AS _c3#42] +Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] (184) NativeHashAggregate -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, _c3#43] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] -Functions [2]: [partial_sum(_c3#43), partial_count(1)] -Aggregate Attributes [3]: [sum#44, isEmpty#45, count#46] -Results [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [4]: [i_brand_id#36, i_class_id#37, i_category_id#38, _c3#42] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] +Functions [2]: [partial_sum(_c3#42), partial_count(1)] +Aggregate Attributes [3]: [sum#43, isEmpty#44, count#45] +Results [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] (185) NativeShuffleExchange -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] -Arguments: hashpartitioning(i_brand_id#37, i_class_id#38, i_category_id#39, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] +Arguments: hashpartitioning(i_brand_id#36, i_class_id#37, i_category_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=21] (186) ShuffleQueryStage -Output [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Output [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] Arguments: X (187) AQEShuffleRead -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] Arguments: coalesced (188) InputAdapter -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] (189) NativeHashAggregate -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #46, #47] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47, count(1)#48] -Results [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47, count(1)#48] +Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] +Results [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] (190) NativeProject -Output [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47 AS sales#49, count(1)#48 AS number_sales#50] -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47, count(1)#48] +Output [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48 AS sales#50, count(1)#49 AS number_sales#51] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] (191) NativeFilter -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50] -Condition : (isnotnull(sales#49) AND (cast(sales#49 as decimal(32,6)) > cast(Subquery subquery#51, [id=#52] as decimal(32,6)))) +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sales#50, number_sales#51] +Condition : (isnotnull(sales#50) AND (cast(sales#50 as decimal(32,6)) > cast(Subquery subquery#52, [id=#53] as decimal(32,6)))) (192) NativeProject -Output [6]: [sales#49, number_sales#50, store AS channel#53, i_brand_id#37 AS i_brand_id#54, i_class_id#38 AS i_class_id#55, i_category_id#39 AS i_category_id#56] -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50] +Output [6]: [sales#50, number_sales#51, store AS channel#54, i_brand_id#36 AS i_brand_id#55, i_class_id#37 AS i_class_id#56, i_category_id#38 AS i_category_id#57] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sales#50, number_sales#51] (496) Scan parquet -Output [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] +Output [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (194) InputAdapter -Input [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] -Arguments: [#57, #58, #59, #60] +Input [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] +Arguments: [#58, #59, #60, #61] (195) NativeFilter -Input [4]: [#57#57, #58#58, #59#59, #60#60] -Condition : (isnotnull(cs_item_sk#58) AND isnotnull(cs_sold_date_sk#57)) +Input [4]: [#58#58, #59#59, #60#60, #61#61] +Condition : (isnotnull(cs_item_sk#59) AND isnotnull(cs_sold_date_sk#58)) (196) NativeShuffleExchange -Input [4]: [#57#57, #58#58, #59#59, #60#60] -Arguments: hashpartitioning(cs_item_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [4]: [#58#58, #59#59, #60#60, #61#61] +Arguments: hashpartitioning(cs_item_sk#59, 100), ENSURE_REQUIREMENTS, [plan_id=22] (197) ShuffleQueryStage -Output [4]: [#57#57, #58#58, #59#59, #60#60] +Output [4]: [#58#58, #59#59, #60#60, #61#61] Arguments: X (198) AQEShuffleRead -Input [4]: [#57#57, #58#58, #59#59, #60#60] +Input [4]: [#58#58, #59#59, #60#60, #61#61] Arguments: coalesced (199) InputAdapter -Input [4]: [#57#57, #58#58, #59#59, #60#60] +Input [4]: [#58#58, #59#59, #60#60, #61#61] (200) NativeSort -Input [4]: [#57#57, #58#58, #59#59, #60#60] -Arguments: [cs_item_sk#58 ASC NULLS FIRST], false +Input [4]: [#58#58, #59#59, #60#60, #61#61] +Arguments: [cs_item_sk#59 ASC NULLS FIRST], false (201) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#61] +Output [1]: [ss_item_sk#62] (202) ShuffleQueryStage -Output [1]: [ss_item_sk#61] +Output [1]: [ss_item_sk#62] Arguments: X (203) AQEShuffleRead -Input [1]: [ss_item_sk#61] +Input [1]: [ss_item_sk#62] Arguments: coalesced (204) InputAdapter -Input [1]: [ss_item_sk#61] -Arguments: [#61] +Input [1]: [ss_item_sk#62] +Arguments: [#62] (205) InputAdapter -Input [1]: [#61#61] +Input [1]: [#62#62] (206) NativeSort -Input [1]: [#61#61] -Arguments: [ss_item_sk#61 ASC NULLS FIRST], false +Input [1]: [#62#62] +Arguments: [ss_item_sk#62 ASC NULLS FIRST], false (207) NativeSortMergeJoin -Left keys [1]: [cs_item_sk#58] -Right keys [1]: [ss_item_sk#61] +Left keys [1]: [cs_item_sk#59] +Right keys [1]: [ss_item_sk#62] Join type: LeftSemi Join condition: None (208) ReusedExchange [Reuses operator id: 44] -Output [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] (209) ShuffleQueryStage -Output [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] Arguments: X (210) AQEShuffleRead -Input [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] +Input [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] Arguments: coalesced (211) InputAdapter -Input [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: [#62, #63, #64, #65] +Input [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: [#63, #64, #65, #66] (212) InputAdapter -Input [4]: [#62#62, #63#63, #64#64, #65#65] +Input [4]: [#63#63, #64#64, #65#65, #66#66] (213) NativeSort -Input [4]: [#62#62, #63#63, #64#64, #65#65] -Arguments: [i_item_sk#62 ASC NULLS FIRST], false +Input [4]: [#63#63, #64#64, #65#65, #66#66] +Arguments: [i_item_sk#63 ASC NULLS FIRST], false (214) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#61] +Output [1]: [ss_item_sk#62] (215) ShuffleQueryStage -Output [1]: [ss_item_sk#61] +Output [1]: [ss_item_sk#62] Arguments: X (216) AQEShuffleRead -Input [1]: [ss_item_sk#61] +Input [1]: [ss_item_sk#62] Arguments: coalesced (217) InputAdapter -Input [1]: [ss_item_sk#61] -Arguments: [#61] +Input [1]: [ss_item_sk#62] +Arguments: [#62] (218) InputAdapter -Input [1]: [#61#61] +Input [1]: [#62#62] (219) NativeSort -Input [1]: [#61#61] -Arguments: [ss_item_sk#61 ASC NULLS FIRST], false +Input [1]: [#62#62] +Arguments: [ss_item_sk#62 ASC NULLS FIRST], false (220) NativeSortMergeJoin -Left keys [1]: [i_item_sk#62] -Right keys [1]: [ss_item_sk#61] +Left keys [1]: [i_item_sk#63] +Right keys [1]: [ss_item_sk#62] Join type: LeftSemi Join condition: None (221) NativeSortMergeJoin -Left keys [1]: [cs_item_sk#58] -Right keys [1]: [i_item_sk#62] +Left keys [1]: [cs_item_sk#59] +Right keys [1]: [i_item_sk#63] Join type: Inner Join condition: None (222) NativeProject -Output [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [8]: [#57#57, #58#58, #59#59, #60#60, #62#62, #63#63, #64#64, #65#65] +Output [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [8]: [#58#58, #59#59, #60#60, #61#61, #63#63, #64#64, #65#65, #66#66] (223) NativeShuffleExchange -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: hashpartitioning(cs_sold_date_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: hashpartitioning(cs_sold_date_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=23] (224) ShuffleQueryStage -Output [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] Arguments: X (225) AQEShuffleRead -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] Arguments: coalesced (226) InputAdapter -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] (227) NativeSort -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: [cs_sold_date_sk#57 ASC NULLS FIRST], false +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: [cs_sold_date_sk#58 ASC NULLS FIRST], false (228) ReusedExchange [Reuses operator id: 176] -Output [1]: [d_date_sk#66] +Output [1]: [d_date_sk#67] (229) ShuffleQueryStage -Output [1]: [d_date_sk#66] +Output [1]: [d_date_sk#67] Arguments: X (230) AQEShuffleRead -Input [1]: [d_date_sk#66] +Input [1]: [d_date_sk#67] Arguments: coalesced (231) InputAdapter -Input [1]: [d_date_sk#66] -Arguments: [#66] +Input [1]: [d_date_sk#67] +Arguments: [#67] (232) InputAdapter -Input [1]: [#66#66] +Input [1]: [#67#67] (233) NativeSort -Input [1]: [#66#66] -Arguments: [d_date_sk#66 ASC NULLS FIRST], false +Input [1]: [#67#67] +Arguments: [d_date_sk#67 ASC NULLS FIRST], false (234) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#57] -Right keys [1]: [d_date_sk#66] +Left keys [1]: [cs_sold_date_sk#58] +Right keys [1]: [d_date_sk#67] Join type: Inner Join condition: None (235) NativeProject -Output [5]: [cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [7]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65, #66#66] +Output [5]: [cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [7]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66, #67#67] (236) NativeProject -Output [4]: [i_brand_id#63 AS i_brand_id#63, i_class_id#64 AS i_class_id#64, i_category_id#65 AS i_category_id#65, (cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60) AS _c3#67] -Input [5]: [cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [4]: [i_brand_id#64 AS i_brand_id#64, i_class_id#65 AS i_class_id#65, i_category_id#66 AS i_category_id#66, (cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61) AS _c3#68] +Input [5]: [cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] (237) NativeHashAggregate -Input [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, _c3#67] -Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65] -Functions [2]: [partial_sum(_c3#67), partial_count(1)] -Aggregate Attributes [3]: [sum#68, isEmpty#69, count#70] -Results [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] +Input [4]: [i_brand_id#64, i_class_id#65, i_category_id#66, _c3#68] +Keys [3]: [i_brand_id#64, i_class_id#65, i_category_id#66] +Functions [2]: [partial_sum(_c3#68), partial_count(1)] +Aggregate Attributes [3]: [sum#69, isEmpty#70, count#71] +Results [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] (238) NativeShuffleExchange -Input [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] -Arguments: hashpartitioning(i_brand_id#63, i_class_id#64, i_category_id#65, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] +Arguments: hashpartitioning(i_brand_id#64, i_class_id#65, i_category_id#66, 100), ENSURE_REQUIREMENTS, [plan_id=24] (239) ShuffleQueryStage -Output [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] +Output [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] Arguments: X (240) AQEShuffleRead -Input [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] Arguments: coalesced (241) InputAdapter -Input [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] (242) NativeHashAggregate -Input [4]: [i_brand_id#63, i_class_id#64, i_category_id#65, #27#27] -Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65] -Functions [2]: [sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60)), count(1)] -Aggregate Attributes [2]: [sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71, count(1)#72] -Results [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71, count(1)#72] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, #46, #47] +Keys [3]: [i_brand_id#64, i_class_id#65, i_category_id#66] +Functions [2]: [sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61)), count(1)] +Aggregate Attributes [2]: [sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72, count(1)#73] +Results [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72, count(1)#73] (243) NativeProject -Output [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71 AS sales#73, count(1)#72 AS number_sales#74] -Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71, count(1)#72] +Output [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72 AS sales#74, count(1)#73 AS number_sales#75] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72, count(1)#73] (244) NativeFilter -Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#73, number_sales#74] -Condition : (isnotnull(sales#73) AND (cast(sales#73 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#51, [id=#52] as decimal(32,6)))) +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sales#74, number_sales#75] +Condition : (isnotnull(sales#74) AND (cast(sales#74 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#52, [id=#53] as decimal(32,6)))) (245) NativeProject -Output [6]: [sales#73, number_sales#74, catalog AS channel#75, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#73, number_sales#74] +Output [6]: [sales#74, number_sales#75, catalog AS channel#76, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sales#74, number_sales#75] (682) Scan parquet -Output [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] +Output [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (247) InputAdapter -Input [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] -Arguments: [#76, #77, #78, #79] +Input [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] +Arguments: [#77, #78, #79, #80] (248) NativeFilter -Input [4]: [#76#76, #77#77, #78#78, #79#79] -Condition : (isnotnull(ws_item_sk#77) AND isnotnull(ws_sold_date_sk#76)) +Input [4]: [#77#77, #78#78, #79#79, #80#80] +Condition : (isnotnull(ws_item_sk#78) AND isnotnull(ws_sold_date_sk#77)) (249) NativeShuffleExchange -Input [4]: [#76#76, #77#77, #78#78, #79#79] -Arguments: hashpartitioning(ws_item_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [4]: [#77#77, #78#78, #79#79, #80#80] +Arguments: hashpartitioning(ws_item_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=25] (250) ShuffleQueryStage -Output [4]: [#76#76, #77#77, #78#78, #79#79] +Output [4]: [#77#77, #78#78, #79#79, #80#80] Arguments: X (251) AQEShuffleRead -Input [4]: [#76#76, #77#77, #78#78, #79#79] +Input [4]: [#77#77, #78#78, #79#79, #80#80] Arguments: coalesced (252) InputAdapter -Input [4]: [#76#76, #77#77, #78#78, #79#79] +Input [4]: [#77#77, #78#78, #79#79, #80#80] (253) NativeSort -Input [4]: [#76#76, #77#77, #78#78, #79#79] -Arguments: [ws_item_sk#77 ASC NULLS FIRST], false +Input [4]: [#77#77, #78#78, #79#79, #80#80] +Arguments: [ws_item_sk#78 ASC NULLS FIRST], false (254) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#80] +Output [1]: [ss_item_sk#81] (255) ShuffleQueryStage -Output [1]: [ss_item_sk#80] +Output [1]: [ss_item_sk#81] Arguments: X (256) AQEShuffleRead -Input [1]: [ss_item_sk#80] +Input [1]: [ss_item_sk#81] Arguments: coalesced (257) InputAdapter -Input [1]: [ss_item_sk#80] -Arguments: [#80] +Input [1]: [ss_item_sk#81] +Arguments: [#81] (258) InputAdapter -Input [1]: [#80#80] +Input [1]: [#81#81] (259) NativeSort -Input [1]: [#80#80] -Arguments: [ss_item_sk#80 ASC NULLS FIRST], false +Input [1]: [#81#81] +Arguments: [ss_item_sk#81 ASC NULLS FIRST], false (260) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#77] -Right keys [1]: [ss_item_sk#80] +Left keys [1]: [ws_item_sk#78] +Right keys [1]: [ss_item_sk#81] Join type: LeftSemi Join condition: None (261) ReusedExchange [Reuses operator id: 44] -Output [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] (262) ShuffleQueryStage -Output [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] Arguments: X (263) AQEShuffleRead -Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Input [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] Arguments: coalesced (264) InputAdapter -Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: [#81, #82, #83, #84] +Input [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: [#82, #83, #84, #85] (265) InputAdapter -Input [4]: [#81#81, #82#82, #83#83, #84#84] +Input [4]: [#82#82, #83#83, #84#84, #85#85] (266) NativeSort -Input [4]: [#81#81, #82#82, #83#83, #84#84] -Arguments: [i_item_sk#81 ASC NULLS FIRST], false +Input [4]: [#82#82, #83#83, #84#84, #85#85] +Arguments: [i_item_sk#82 ASC NULLS FIRST], false (267) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#80] +Output [1]: [ss_item_sk#81] (268) ShuffleQueryStage -Output [1]: [ss_item_sk#80] +Output [1]: [ss_item_sk#81] Arguments: X (269) AQEShuffleRead -Input [1]: [ss_item_sk#80] +Input [1]: [ss_item_sk#81] Arguments: coalesced (270) InputAdapter -Input [1]: [ss_item_sk#80] -Arguments: [#80] +Input [1]: [ss_item_sk#81] +Arguments: [#81] (271) InputAdapter -Input [1]: [#80#80] +Input [1]: [#81#81] (272) NativeSort -Input [1]: [#80#80] -Arguments: [ss_item_sk#80 ASC NULLS FIRST], false +Input [1]: [#81#81] +Arguments: [ss_item_sk#81 ASC NULLS FIRST], false (273) NativeSortMergeJoin -Left keys [1]: [i_item_sk#81] -Right keys [1]: [ss_item_sk#80] +Left keys [1]: [i_item_sk#82] +Right keys [1]: [ss_item_sk#81] Join type: LeftSemi Join condition: None (274) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#77] -Right keys [1]: [i_item_sk#81] +Left keys [1]: [ws_item_sk#78] +Right keys [1]: [i_item_sk#82] Join type: Inner Join condition: None (275) NativeProject -Output [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [8]: [#76#76, #77#77, #78#78, #79#79, #81#81, #82#82, #83#83, #84#84] +Output [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [8]: [#77#77, #78#78, #79#79, #80#80, #82#82, #83#83, #84#84, #85#85] (276) NativeShuffleExchange -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: hashpartitioning(ws_sold_date_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: hashpartitioning(ws_sold_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=26] (277) ShuffleQueryStage -Output [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] Arguments: X (278) AQEShuffleRead -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] Arguments: coalesced (279) InputAdapter -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] (280) NativeSort -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: [ws_sold_date_sk#76 ASC NULLS FIRST], false +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: [ws_sold_date_sk#77 ASC NULLS FIRST], false (281) ReusedExchange [Reuses operator id: 176] -Output [1]: [d_date_sk#85] +Output [1]: [d_date_sk#86] (282) ShuffleQueryStage -Output [1]: [d_date_sk#85] +Output [1]: [d_date_sk#86] Arguments: X (283) AQEShuffleRead -Input [1]: [d_date_sk#85] +Input [1]: [d_date_sk#86] Arguments: coalesced (284) InputAdapter -Input [1]: [d_date_sk#85] -Arguments: [#85] +Input [1]: [d_date_sk#86] +Arguments: [#86] (285) InputAdapter -Input [1]: [#85#85] +Input [1]: [#86#86] (286) NativeSort -Input [1]: [#85#85] -Arguments: [d_date_sk#85 ASC NULLS FIRST], false +Input [1]: [#86#86] +Arguments: [d_date_sk#86 ASC NULLS FIRST], false (287) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#76] -Right keys [1]: [d_date_sk#85] +Left keys [1]: [ws_sold_date_sk#77] +Right keys [1]: [d_date_sk#86] Join type: Inner Join condition: None (288) NativeProject -Output [5]: [ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [7]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84, #85#85] +Output [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [7]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85, #86#86] (289) NativeProject -Output [4]: [i_brand_id#82 AS i_brand_id#82, i_class_id#83 AS i_class_id#83, i_category_id#84 AS i_category_id#84, (cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79) AS _c3#86] -Input [5]: [ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [4]: [i_brand_id#83 AS i_brand_id#83, i_class_id#84 AS i_class_id#84, i_category_id#85 AS i_category_id#85, (cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80) AS _c3#87] +Input [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] (290) NativeHashAggregate -Input [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, _c3#86] -Keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] -Functions [2]: [partial_sum(_c3#86), partial_count(1)] -Aggregate Attributes [3]: [sum#87, isEmpty#88, count#89] -Results [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] +Input [4]: [i_brand_id#83, i_class_id#84, i_category_id#85, _c3#87] +Keys [3]: [i_brand_id#83, i_class_id#84, i_category_id#85] +Functions [2]: [partial_sum(_c3#87), partial_count(1)] +Aggregate Attributes [3]: [sum#88, isEmpty#89, count#90] +Results [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] (291) NativeShuffleExchange -Input [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] -Arguments: hashpartitioning(i_brand_id#82, i_class_id#83, i_category_id#84, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] +Arguments: hashpartitioning(i_brand_id#83, i_class_id#84, i_category_id#85, 100), ENSURE_REQUIREMENTS, [plan_id=27] (292) ShuffleQueryStage -Output [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] +Output [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] Arguments: X (293) AQEShuffleRead -Input [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] Arguments: coalesced (294) InputAdapter -Input [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] (295) NativeHashAggregate -Input [4]: [i_brand_id#82, i_class_id#83, i_category_id#84, #27#27] -Keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] -Functions [2]: [sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79)), count(1)] -Aggregate Attributes [2]: [sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90, count(1)#91] -Results [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90, count(1)#91] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, #46, #47] +Keys [3]: [i_brand_id#83, i_class_id#84, i_category_id#85] +Functions [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80)), count(1)] +Aggregate Attributes [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91, count(1)#92] +Results [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91, count(1)#92] (296) NativeProject -Output [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90 AS sales#92, count(1)#91 AS number_sales#93] -Input [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90, count(1)#91] +Output [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91 AS sales#93, count(1)#92 AS number_sales#94] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91, count(1)#92] (297) NativeFilter -Input [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sales#92, number_sales#93] -Condition : (isnotnull(sales#92) AND (cast(sales#92 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#51, [id=#52] as decimal(32,6)))) +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sales#93, number_sales#94] +Condition : (isnotnull(sales#93) AND (cast(sales#93 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#52, [id=#53] as decimal(32,6)))) (298) NativeProject -Output [6]: [sales#92, number_sales#93, web AS channel#94, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sales#92, number_sales#93] +Output [6]: [sales#93, number_sales#94, web AS channel#95, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sales#93, number_sales#94] (299) NativeUnion -Arguments: [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56] +Arguments: [sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, i_category_id#57] (300) InputAdapter -Input [6]: [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56] -Arguments: [#49, #95, #53, #54, #55, #56] +Input [6]: [sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, i_category_id#57] +Arguments: [#50, #96, #54, #55, #56, #57] (301) NativeExpand -Input [6]: [#49#49, #95#50, #53#53, #54#54, #55#55, #56#56] -Arguments: [[sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56, 0], [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, null, 1], [sales#49, number_sales#50, channel#53, i_brand_id#54, null, null, 3], [sales#49, number_sales#50, channel#53, null, null, null, 7], [sales#49, number_sales#50, null, null, null, null, 15]], [sales#49, number_sales#50, channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] +Input [6]: [#50#50, #96#51, #54#54, #55#55, #56#56, #57#57] +Arguments: [[sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, i_category_id#57, 0], [sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, null, 1], [sales#50, number_sales#51, channel#54, i_brand_id#55, null, null, 3], [sales#50, number_sales#51, channel#54, null, null, null, 7], [sales#50, number_sales#51, null, null, null, null, 15]], [sales#50, number_sales#51, channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] (302) NativeHashAggregate -Input [7]: [sales#49, number_sales#50, channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Keys [5]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Functions [2]: [partial_sum(sales#49), partial_sum(number_sales#50)] -Aggregate Attributes [3]: [sum#101, isEmpty#102, sum#103] -Results [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] +Input [7]: [sales#50, number_sales#51, channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Keys [5]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Functions [2]: [partial_sum(sales#50), partial_sum(number_sales#51)] +Aggregate Attributes [3]: [sum#102, isEmpty#103, sum#104] +Results [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] (303) NativeShuffleExchange -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] -Arguments: hashpartitioning(channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] +Arguments: hashpartitioning(channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, 100), ENSURE_REQUIREMENTS, [plan_id=28] (304) ShuffleQueryStage -Output [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] +Output [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] Arguments: X (305) AQEShuffleRead -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] +Input [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] Arguments: coalesced (306) InputAdapter -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] +Input [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] (307) NativeHashAggregate -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, #27#27] -Keys [5]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Functions [2]: [sum(sales#49), sum(number_sales#50)] -Aggregate Attributes [2]: [sum(sales#49)#104, sum(number_sales#50)#105] -Results [7]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, sum(sales#49)#104, sum(number_sales#50)#105] +Input [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, #46, #47] +Keys [5]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Functions [2]: [sum(sales#50), sum(number_sales#51)] +Aggregate Attributes [2]: [sum(sales#50)#105, sum(number_sales#51)#106] +Results [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, sum(sales#50)#105, sum(number_sales#51)#106] (308) NativeProject -Output [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales#49)#104 AS sum(sales)#106, sum(number_sales#50)#105 AS sum(number_sales)#107] -Input [7]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, sum(sales#49)#104, sum(number_sales#50)#105] +Output [6]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales#50)#105 AS sum(sales)#107, sum(number_sales#51)#106 AS sum(number_sales)#108] +Input [7]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, sum(sales#50)#105, sum(number_sales#51)#106] (309) NativeTakeOrdered -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales)#106, sum(number_sales)#107] -Arguments: X, [channel#96 ASC NULLS FIRST, i_brand_id#97 ASC NULLS FIRST, i_class_id#98 ASC NULLS FIRST, i_category_id#99 ASC NULLS FIRST] +Input [6]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales)#107, sum(number_sales)#108] +Arguments: X, [channel#97 ASC NULLS FIRST, i_brand_id#98 ASC NULLS FIRST, i_class_id#99 ASC NULLS FIRST, i_category_id#100 ASC NULLS FIRST] (310) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4] @@ -2369,19 +2369,19 @@ Input [4]: [ss_sold_date_sk#9, i_brand_id#12, i_class_id#13, i_category_id#14] Arguments: [ss_sold_date_sk#9 ASC NULLS FIRST], false, 0 (354) Scan parquet -Output [2]: [d_date_sk#23, d_year#108] +Output [2]: [d_date_sk#23, d_year#109] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (355) Filter -Input [2]: [d_date_sk#23, d_year#108] -Condition : (((isnotnull(d_year#108) AND (d_year#108 >= 1999)) AND (d_year#108 <= 2001)) AND isnotnull(d_date_sk#23)) +Input [2]: [d_date_sk#23, d_year#109] +Condition : (((isnotnull(d_year#109) AND (d_year#109 >= 1999)) AND (d_year#109 <= 2001)) AND isnotnull(d_date_sk#23)) (356) Project Output [1]: [d_date_sk#23] -Input [2]: [d_date_sk#23, d_year#108] +Input [2]: [d_date_sk#23, d_year#109] (357) Exchange Input [1]: [d_date_sk#23] @@ -2428,105 +2428,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (366) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (367) Filter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (368) Exchange -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=43] (369) Sort -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false, 0 (370) Scan parquet -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (371) Filter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Condition : isnotnull(i_item_sk#30) +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Condition : isnotnull(i_item_sk#29) (372) Exchange -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(i_item_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=44] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(i_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=44] (373) Sort -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false, 0 (374) SortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (375) Project -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [ws_sold_date_sk#28, ws_item_sk#29, i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [ws_sold_date_sk#27, ws_item_sk#28, i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (376) Exchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=45] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=45] (377) Sort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false, 0 (378) Scan parquet -Output [2]: [d_date_sk#34, d_year#109] +Output [2]: [d_date_sk#33, d_year#110] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (379) Filter -Input [2]: [d_date_sk#34, d_year#109] -Condition : (((isnotnull(d_year#109) AND (d_year#109 >= 1999)) AND (d_year#109 <= 2001)) AND isnotnull(d_date_sk#34)) +Input [2]: [d_date_sk#33, d_year#110] +Condition : (((isnotnull(d_year#110) AND (d_year#110 >= 1999)) AND (d_year#110 <= 2001)) AND isnotnull(d_date_sk#33)) (380) Project -Output [1]: [d_date_sk#34] -Input [2]: [d_date_sk#34, d_year#109] +Output [1]: [d_date_sk#33] +Input [2]: [d_date_sk#33, d_year#110] (381) Exchange -Input [1]: [d_date_sk#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=46] +Input [1]: [d_date_sk#33] +Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=46] (382) Sort -Input [1]: [d_date_sk#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false, 0 (383) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (384) Project -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, d_date_sk#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, d_date_sk#33] (385) Exchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=47] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=47] (386) Sort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false, 0 (387) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -2545,41 +2545,41 @@ Join type: Inner Join condition: None (391) Project -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8, brand_id#24, class_id#25, category_id#26] (392) Exchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=49] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=49] (393) Sort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false, 0 (394) SortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [ss_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (395) Scan parquet -Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (396) Filter -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Condition : isnotnull(i_item_sk#36) +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Condition : isnotnull(i_item_sk#35) (397) Exchange -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: hashpartitioning(i_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=50] +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: hashpartitioning(i_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=50] (398) Sort -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: [i_item_sk#36 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: [i_item_sk#35 ASC NULLS FIRST], false, 0 (399) Scan parquet Output [4]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8] @@ -2768,19 +2768,19 @@ Input [4]: [ss_sold_date_sk#9, i_brand_id#12, i_class_id#13, i_category_id#14] Arguments: [ss_sold_date_sk#9 ASC NULLS FIRST], false, 0 (439) Scan parquet -Output [2]: [d_date_sk#23, d_year#108] +Output [2]: [d_date_sk#23, d_year#109] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (440) Filter -Input [2]: [d_date_sk#23, d_year#108] -Condition : (((isnotnull(d_year#108) AND (d_year#108 >= 1999)) AND (d_year#108 <= 2001)) AND isnotnull(d_date_sk#23)) +Input [2]: [d_date_sk#23, d_year#109] +Condition : (((isnotnull(d_year#109) AND (d_year#109 >= 1999)) AND (d_year#109 <= 2001)) AND isnotnull(d_date_sk#23)) (441) Project Output [1]: [d_date_sk#23] -Input [2]: [d_date_sk#23, d_year#108] +Input [2]: [d_date_sk#23, d_year#109] (442) Exchange Input [1]: [d_date_sk#23] @@ -2827,105 +2827,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (451) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (452) Filter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (453) Exchange -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=64] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=64] (454) Sort -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false, 0 (455) Scan parquet -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (456) Filter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Condition : isnotnull(i_item_sk#30) +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Condition : isnotnull(i_item_sk#29) (457) Exchange -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(i_item_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=65] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(i_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=65] (458) Sort -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false, 0 (459) SortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (460) Project -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [ws_sold_date_sk#28, ws_item_sk#29, i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [ws_sold_date_sk#27, ws_item_sk#28, i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (461) Exchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=66] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=66] (462) Sort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false, 0 (463) Scan parquet -Output [2]: [d_date_sk#34, d_year#109] +Output [2]: [d_date_sk#33, d_year#110] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (464) Filter -Input [2]: [d_date_sk#34, d_year#109] -Condition : (((isnotnull(d_year#109) AND (d_year#109 >= 1999)) AND (d_year#109 <= 2001)) AND isnotnull(d_date_sk#34)) +Input [2]: [d_date_sk#33, d_year#110] +Condition : (((isnotnull(d_year#110) AND (d_year#110 >= 1999)) AND (d_year#110 <= 2001)) AND isnotnull(d_date_sk#33)) (465) Project -Output [1]: [d_date_sk#34] -Input [2]: [d_date_sk#34, d_year#109] +Output [1]: [d_date_sk#33] +Input [2]: [d_date_sk#33, d_year#110] (466) Exchange -Input [1]: [d_date_sk#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=67] +Input [1]: [d_date_sk#33] +Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=67] (467) Sort -Input [1]: [d_date_sk#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false, 0 (468) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (469) Project -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, d_date_sk#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, d_date_sk#33] (470) Exchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=68] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=68] (471) Sort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false, 0 (472) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -2944,337 +2944,337 @@ Join type: Inner Join condition: None (476) Project -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8, brand_id#24, class_id#25, category_id#26] (477) Exchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=70] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=70] (478) Sort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false, 0 (479) SortMergeJoin -Left keys [1]: [i_item_sk#36] -Right keys [1]: [ss_item_sk#35] +Left keys [1]: [i_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (480) SortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#36] +Right keys [1]: [i_item_sk#35] Join type: Inner Join condition: None (481) Project -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [8]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4, i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [8]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4, i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] (482) Exchange -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: hashpartitioning(ss_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=71] (483) Sort -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false, 0 (484) Scan parquet -Output [3]: [d_date_sk#40, d_year#41, d_moy#42] +Output [3]: [d_date_sk#39, d_year#40, d_moy#41] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,11), IsNotNull(d_date_sk)] ReadSchema: struct (485) Filter -Input [3]: [d_date_sk#40, d_year#41, d_moy#42] -Condition : ((((isnotnull(d_year#41) AND isnotnull(d_moy#42)) AND (d_year#41 = 2001)) AND (d_moy#42 = 11)) AND isnotnull(d_date_sk#40)) +Input [3]: [d_date_sk#39, d_year#40, d_moy#41] +Condition : ((((isnotnull(d_year#40) AND isnotnull(d_moy#41)) AND (d_year#40 = 2001)) AND (d_moy#41 = 11)) AND isnotnull(d_date_sk#39)) (486) Project -Output [1]: [d_date_sk#40] -Input [3]: [d_date_sk#40, d_year#41, d_moy#42] +Output [1]: [d_date_sk#39] +Input [3]: [d_date_sk#39, d_year#40, d_moy#41] (487) Exchange -Input [1]: [d_date_sk#40] -Arguments: hashpartitioning(d_date_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=72] +Input [1]: [d_date_sk#39] +Arguments: hashpartitioning(d_date_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=72] (488) Sort -Input [1]: [d_date_sk#40] -Arguments: [d_date_sk#40 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#39] +Arguments: [d_date_sk#39 ASC NULLS FIRST], false, 0 (489) SortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#40] +Right keys [1]: [d_date_sk#39] Join type: Inner Join condition: None (490) Project -Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39, d_date_sk#40] +Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38, d_date_sk#39] (491) HashAggregate -Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [partial_sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), partial_count(1)] -Aggregate Attributes [3]: [sum#44, isEmpty#45, count#46] -Results [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#110, isEmpty#111, count#112] +Aggregate Attributes [3]: [sum#43, isEmpty#44, count#45] +Results [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#111, isEmpty#112, count#113] (492) Exchange -Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#110, isEmpty#111, count#112] -Arguments: hashpartitioning(i_brand_id#37, i_class_id#38, i_category_id#39, 100), ENSURE_REQUIREMENTS, [plan_id=73] +Input [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#111, isEmpty#112, count#113] +Arguments: hashpartitioning(i_brand_id#36, i_class_id#37, i_category_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=73] (493) HashAggregate -Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#110, isEmpty#111, count#112] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#111, isEmpty#112, count#113] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47, count(1)#48] -Results [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#47 AS sales#49, count(1)#48 AS number_sales#50] +Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] +Results [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48 AS sales#50, count(1)#49 AS number_sales#51] (494) Filter -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50] -Condition : (isnotnull(sales#49) AND (cast(sales#49 as decimal(32,6)) > cast(Subquery subquery#51, [id=#52] as decimal(32,6)))) +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sales#50, number_sales#51] +Condition : (isnotnull(sales#50) AND (cast(sales#50 as decimal(32,6)) > cast(Subquery subquery#52, [id=#53] as decimal(32,6)))) (495) Project -Output [6]: [sales#49, number_sales#50, store AS channel#53, i_brand_id#37 AS i_brand_id#54, i_class_id#38 AS i_class_id#55, i_category_id#39 AS i_category_id#56] -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50] +Output [6]: [sales#50, number_sales#51, store AS channel#54, i_brand_id#36 AS i_brand_id#55, i_class_id#37 AS i_class_id#56, i_category_id#38 AS i_category_id#57] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sales#50, number_sales#51] (496) Scan parquet -Output [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] +Output [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (497) Filter -Input [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] -Condition : (isnotnull(cs_item_sk#58) AND isnotnull(cs_sold_date_sk#57)) +Input [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] +Condition : (isnotnull(cs_item_sk#59) AND isnotnull(cs_sold_date_sk#58)) (498) Exchange -Input [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] -Arguments: hashpartitioning(cs_item_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=74] +Input [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] +Arguments: hashpartitioning(cs_item_sk#59, 100), ENSURE_REQUIREMENTS, [plan_id=74] (499) Sort -Input [4]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60] -Arguments: [cs_item_sk#58 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61] +Arguments: [cs_item_sk#59 ASC NULLS FIRST], false, 0 (500) Scan parquet -Output [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] +Output [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (501) Filter -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Condition : ((isnotnull(i_brand_id#114) AND isnotnull(i_class_id#115)) AND isnotnull(i_category_id#116)) +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Condition : ((isnotnull(i_brand_id#115) AND isnotnull(i_class_id#116)) AND isnotnull(i_category_id#117)) (502) Exchange -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Arguments: hashpartitioning(i_brand_id#114, i_class_id#115, i_category_id#116, 100), ENSURE_REQUIREMENTS, [plan_id=75] +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Arguments: hashpartitioning(i_brand_id#115, i_class_id#116, i_category_id#117, 100), ENSURE_REQUIREMENTS, [plan_id=75] (503) Sort -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Arguments: [i_brand_id#114 ASC NULLS FIRST, i_class_id#115 ASC NULLS FIRST, i_category_id#116 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Arguments: [i_brand_id#115 ASC NULLS FIRST, i_class_id#116 ASC NULLS FIRST, i_category_id#117 ASC NULLS FIRST], false, 0 (504) Scan parquet -Output [2]: [ss_sold_date_sk#117, ss_item_sk#118] +Output [2]: [ss_sold_date_sk#118, ss_item_sk#119] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (505) Filter -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Condition : (isnotnull(ss_item_sk#118) AND isnotnull(ss_sold_date_sk#117)) +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Condition : (isnotnull(ss_item_sk#119) AND isnotnull(ss_sold_date_sk#118)) (506) Exchange -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Arguments: hashpartitioning(ss_item_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=76] +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Arguments: hashpartitioning(ss_item_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=76] (507) Sort -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Arguments: [ss_item_sk#118 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Arguments: [ss_item_sk#119 ASC NULLS FIRST], false, 0 (508) Scan parquet -Output [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] +Output [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (509) Filter -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Condition : (((isnotnull(i_item_sk#119) AND isnotnull(i_brand_id#120)) AND isnotnull(i_class_id#121)) AND isnotnull(i_category_id#122)) +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Condition : (((isnotnull(i_item_sk#120) AND isnotnull(i_brand_id#121)) AND isnotnull(i_class_id#122)) AND isnotnull(i_category_id#123)) (510) Exchange -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(coalesce(i_brand_id#120, 0), isnull(i_brand_id#120), coalesce(i_class_id#121, 0), isnull(i_class_id#121), coalesce(i_category_id#122, 0), isnull(i_category_id#122), 100), ENSURE_REQUIREMENTS, [plan_id=77] +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(coalesce(i_brand_id#121, 0), isnull(i_brand_id#121), coalesce(i_class_id#122, 0), isnull(i_class_id#122), coalesce(i_category_id#123, 0), isnull(i_category_id#123), 100), ENSURE_REQUIREMENTS, [plan_id=77] (511) Sort -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [coalesce(i_brand_id#120, 0) ASC NULLS FIRST, isnull(i_brand_id#120) ASC NULLS FIRST, coalesce(i_class_id#121, 0) ASC NULLS FIRST, isnull(i_class_id#121) ASC NULLS FIRST, coalesce(i_category_id#122, 0) ASC NULLS FIRST, isnull(i_category_id#122) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [coalesce(i_brand_id#121, 0) ASC NULLS FIRST, isnull(i_brand_id#121) ASC NULLS FIRST, coalesce(i_class_id#122, 0) ASC NULLS FIRST, isnull(i_class_id#122) ASC NULLS FIRST, coalesce(i_category_id#123, 0) ASC NULLS FIRST, isnull(i_category_id#123) ASC NULLS FIRST], false, 0 (512) Scan parquet -Output [2]: [cs_sold_date_sk#123, cs_item_sk#124] +Output [2]: [cs_sold_date_sk#124, cs_item_sk#125] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (513) Filter -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Condition : (isnotnull(cs_item_sk#124) AND isnotnull(cs_sold_date_sk#123)) +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Condition : (isnotnull(cs_item_sk#125) AND isnotnull(cs_sold_date_sk#124)) (514) Exchange -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Arguments: hashpartitioning(cs_item_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=78] +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Arguments: hashpartitioning(cs_item_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=78] (515) Sort -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Arguments: [cs_item_sk#124 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Arguments: [cs_item_sk#125 ASC NULLS FIRST], false, 0 (516) Scan parquet -Output [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] +Output [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (517) Filter -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Condition : isnotnull(i_item_sk#125) +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Condition : isnotnull(i_item_sk#126) (518) Exchange -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(i_item_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=79] +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(i_item_sk#126, 100), ENSURE_REQUIREMENTS, [plan_id=79] (519) Sort -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [i_item_sk#125 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [i_item_sk#126 ASC NULLS FIRST], false, 0 (520) SortMergeJoin -Left keys [1]: [cs_item_sk#124] -Right keys [1]: [i_item_sk#125] +Left keys [1]: [cs_item_sk#125] +Right keys [1]: [i_item_sk#126] Join type: Inner Join condition: None (521) Project -Output [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Input [6]: [cs_sold_date_sk#123, cs_item_sk#124, i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] +Output [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Input [6]: [cs_sold_date_sk#124, cs_item_sk#125, i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] (522) Exchange -Input [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(cs_sold_date_sk#123, 100), ENSURE_REQUIREMENTS, [plan_id=80] +Input [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(cs_sold_date_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=80] (523) Sort -Input [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [cs_sold_date_sk#123 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [cs_sold_date_sk#124 ASC NULLS FIRST], false, 0 (524) Scan parquet -Output [2]: [d_date_sk#129, d_year#130] +Output [2]: [d_date_sk#130, d_year#131] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (525) Filter -Input [2]: [d_date_sk#129, d_year#130] -Condition : (((isnotnull(d_year#130) AND (d_year#130 >= 1999)) AND (d_year#130 <= 2001)) AND isnotnull(d_date_sk#129)) +Input [2]: [d_date_sk#130, d_year#131] +Condition : (((isnotnull(d_year#131) AND (d_year#131 >= 1999)) AND (d_year#131 <= 2001)) AND isnotnull(d_date_sk#130)) (526) Project -Output [1]: [d_date_sk#129] -Input [2]: [d_date_sk#129, d_year#130] +Output [1]: [d_date_sk#130] +Input [2]: [d_date_sk#130, d_year#131] (527) Exchange -Input [1]: [d_date_sk#129] -Arguments: hashpartitioning(d_date_sk#129, 100), ENSURE_REQUIREMENTS, [plan_id=81] +Input [1]: [d_date_sk#130] +Arguments: hashpartitioning(d_date_sk#130, 100), ENSURE_REQUIREMENTS, [plan_id=81] (528) Sort -Input [1]: [d_date_sk#129] -Arguments: [d_date_sk#129 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#130] +Arguments: [d_date_sk#130 ASC NULLS FIRST], false, 0 (529) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#123] -Right keys [1]: [d_date_sk#129] +Left keys [1]: [cs_sold_date_sk#124] +Right keys [1]: [d_date_sk#130] Join type: Inner Join condition: None (530) Project -Output [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Input [5]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128, d_date_sk#129] +Output [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Input [5]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129, d_date_sk#130] (531) Exchange -Input [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(coalesce(i_brand_id#126, 0), isnull(i_brand_id#126), coalesce(i_class_id#127, 0), isnull(i_class_id#127), coalesce(i_category_id#128, 0), isnull(i_category_id#128), 100), ENSURE_REQUIREMENTS, [plan_id=82] +Input [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(coalesce(i_brand_id#127, 0), isnull(i_brand_id#127), coalesce(i_class_id#128, 0), isnull(i_class_id#128), coalesce(i_category_id#129, 0), isnull(i_category_id#129), 100), ENSURE_REQUIREMENTS, [plan_id=82] (532) Sort -Input [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [coalesce(i_brand_id#126, 0) ASC NULLS FIRST, isnull(i_brand_id#126) ASC NULLS FIRST, coalesce(i_class_id#127, 0) ASC NULLS FIRST, isnull(i_class_id#127) ASC NULLS FIRST, coalesce(i_category_id#128, 0) ASC NULLS FIRST, isnull(i_category_id#128) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [coalesce(i_brand_id#127, 0) ASC NULLS FIRST, isnull(i_brand_id#127) ASC NULLS FIRST, coalesce(i_class_id#128, 0) ASC NULLS FIRST, isnull(i_class_id#128) ASC NULLS FIRST, coalesce(i_category_id#129, 0) ASC NULLS FIRST, isnull(i_category_id#129) ASC NULLS FIRST], false, 0 (533) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#120, 0), isnull(i_brand_id#120), coalesce(i_class_id#121, 0), isnull(i_class_id#121), coalesce(i_category_id#122, 0), isnull(i_category_id#122)] -Right keys [6]: [coalesce(i_brand_id#126, 0), isnull(i_brand_id#126), coalesce(i_class_id#127, 0), isnull(i_class_id#127), coalesce(i_category_id#128, 0), isnull(i_category_id#128)] +Left keys [6]: [coalesce(i_brand_id#121, 0), isnull(i_brand_id#121), coalesce(i_class_id#122, 0), isnull(i_class_id#122), coalesce(i_category_id#123, 0), isnull(i_category_id#123)] +Right keys [6]: [coalesce(i_brand_id#127, 0), isnull(i_brand_id#127), coalesce(i_class_id#128, 0), isnull(i_class_id#128), coalesce(i_category_id#129, 0), isnull(i_category_id#129)] Join type: LeftSemi Join condition: None (534) Exchange -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(i_item_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=83] +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(i_item_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=83] (535) Sort -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [i_item_sk#119 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [i_item_sk#120 ASC NULLS FIRST], false, 0 (536) SortMergeJoin -Left keys [1]: [ss_item_sk#118] -Right keys [1]: [i_item_sk#119] +Left keys [1]: [ss_item_sk#119] +Right keys [1]: [i_item_sk#120] Join type: Inner Join condition: None (537) Project -Output [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Input [6]: [ss_sold_date_sk#117, ss_item_sk#118, i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] +Output [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Input [6]: [ss_sold_date_sk#118, ss_item_sk#119, i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] (538) Exchange -Input [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(ss_sold_date_sk#117, 100), ENSURE_REQUIREMENTS, [plan_id=84] +Input [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(ss_sold_date_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=84] (539) Sort -Input [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [ss_sold_date_sk#117 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [ss_sold_date_sk#118 ASC NULLS FIRST], false, 0 (540) Scan parquet -Output [2]: [d_date_sk#131, d_year#132] +Output [2]: [d_date_sk#132, d_year#133] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (541) Filter -Input [2]: [d_date_sk#131, d_year#132] -Condition : (((isnotnull(d_year#132) AND (d_year#132 >= 1999)) AND (d_year#132 <= 2001)) AND isnotnull(d_date_sk#131)) +Input [2]: [d_date_sk#132, d_year#133] +Condition : (((isnotnull(d_year#133) AND (d_year#133 >= 1999)) AND (d_year#133 <= 2001)) AND isnotnull(d_date_sk#132)) (542) Project -Output [1]: [d_date_sk#131] -Input [2]: [d_date_sk#131, d_year#132] +Output [1]: [d_date_sk#132] +Input [2]: [d_date_sk#132, d_year#133] (543) Exchange -Input [1]: [d_date_sk#131] -Arguments: hashpartitioning(d_date_sk#131, 100), ENSURE_REQUIREMENTS, [plan_id=85] +Input [1]: [d_date_sk#132] +Arguments: hashpartitioning(d_date_sk#132, 100), ENSURE_REQUIREMENTS, [plan_id=85] (544) Sort -Input [1]: [d_date_sk#131] -Arguments: [d_date_sk#131 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#132] +Arguments: [d_date_sk#132 ASC NULLS FIRST], false, 0 (545) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#117] -Right keys [1]: [d_date_sk#131] +Left keys [1]: [ss_sold_date_sk#118] +Right keys [1]: [d_date_sk#132] Join type: Inner Join condition: None (546) Project -Output [3]: [i_brand_id#120 AS brand_id#24, i_class_id#121 AS class_id#25, i_category_id#122 AS category_id#26] -Input [5]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122, d_date_sk#131] +Output [3]: [i_brand_id#121 AS brand_id#24, i_class_id#122 AS class_id#25, i_category_id#123 AS category_id#26] +Input [5]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123, d_date_sk#132] (547) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -3303,105 +3303,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (552) Scan parquet -Output [2]: [ws_sold_date_sk#133, ws_item_sk#134] +Output [2]: [ws_sold_date_sk#134, ws_item_sk#135] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (553) Filter -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Condition : (isnotnull(ws_item_sk#134) AND isnotnull(ws_sold_date_sk#133)) +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Condition : (isnotnull(ws_item_sk#135) AND isnotnull(ws_sold_date_sk#134)) (554) Exchange -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Arguments: hashpartitioning(ws_item_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=88] +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Arguments: hashpartitioning(ws_item_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=88] (555) Sort -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Arguments: [ws_item_sk#134 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Arguments: [ws_item_sk#135 ASC NULLS FIRST], false, 0 (556) Scan parquet -Output [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] +Output [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (557) Filter -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Condition : isnotnull(i_item_sk#135) +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Condition : isnotnull(i_item_sk#136) (558) Exchange -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(i_item_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=89] +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(i_item_sk#136, 100), ENSURE_REQUIREMENTS, [plan_id=89] (559) Sort -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [i_item_sk#135 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [i_item_sk#136 ASC NULLS FIRST], false, 0 (560) SortMergeJoin -Left keys [1]: [ws_item_sk#134] -Right keys [1]: [i_item_sk#135] +Left keys [1]: [ws_item_sk#135] +Right keys [1]: [i_item_sk#136] Join type: Inner Join condition: None (561) Project -Output [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Input [6]: [ws_sold_date_sk#133, ws_item_sk#134, i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] +Output [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Input [6]: [ws_sold_date_sk#134, ws_item_sk#135, i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] (562) Exchange -Input [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(ws_sold_date_sk#133, 100), ENSURE_REQUIREMENTS, [plan_id=90] +Input [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(ws_sold_date_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=90] (563) Sort -Input [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [ws_sold_date_sk#133 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [ws_sold_date_sk#134 ASC NULLS FIRST], false, 0 (564) Scan parquet -Output [2]: [d_date_sk#139, d_year#140] +Output [2]: [d_date_sk#140, d_year#141] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (565) Filter -Input [2]: [d_date_sk#139, d_year#140] -Condition : (((isnotnull(d_year#140) AND (d_year#140 >= 1999)) AND (d_year#140 <= 2001)) AND isnotnull(d_date_sk#139)) +Input [2]: [d_date_sk#140, d_year#141] +Condition : (((isnotnull(d_year#141) AND (d_year#141 >= 1999)) AND (d_year#141 <= 2001)) AND isnotnull(d_date_sk#140)) (566) Project -Output [1]: [d_date_sk#139] -Input [2]: [d_date_sk#139, d_year#140] +Output [1]: [d_date_sk#140] +Input [2]: [d_date_sk#140, d_year#141] (567) Exchange -Input [1]: [d_date_sk#139] -Arguments: hashpartitioning(d_date_sk#139, 100), ENSURE_REQUIREMENTS, [plan_id=91] +Input [1]: [d_date_sk#140] +Arguments: hashpartitioning(d_date_sk#140, 100), ENSURE_REQUIREMENTS, [plan_id=91] (568) Sort -Input [1]: [d_date_sk#139] -Arguments: [d_date_sk#139 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#140] +Arguments: [d_date_sk#140 ASC NULLS FIRST], false, 0 (569) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#133] -Right keys [1]: [d_date_sk#139] +Left keys [1]: [ws_sold_date_sk#134] +Right keys [1]: [d_date_sk#140] Join type: Inner Join condition: None (570) Project -Output [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Input [5]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138, d_date_sk#139] +Output [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Input [5]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139, d_date_sk#140] (571) Exchange -Input [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(coalesce(i_brand_id#136, 0), isnull(i_brand_id#136), coalesce(i_class_id#137, 0), isnull(i_class_id#137), coalesce(i_category_id#138, 0), isnull(i_category_id#138), 100), ENSURE_REQUIREMENTS, [plan_id=92] +Input [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(coalesce(i_brand_id#137, 0), isnull(i_brand_id#137), coalesce(i_class_id#138, 0), isnull(i_class_id#138), coalesce(i_category_id#139, 0), isnull(i_category_id#139), 100), ENSURE_REQUIREMENTS, [plan_id=92] (572) Sort -Input [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [coalesce(i_brand_id#136, 0) ASC NULLS FIRST, isnull(i_brand_id#136) ASC NULLS FIRST, coalesce(i_class_id#137, 0) ASC NULLS FIRST, isnull(i_class_id#137) ASC NULLS FIRST, coalesce(i_category_id#138, 0) ASC NULLS FIRST, isnull(i_category_id#138) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [coalesce(i_brand_id#137, 0) ASC NULLS FIRST, isnull(i_brand_id#137) ASC NULLS FIRST, coalesce(i_class_id#138, 0) ASC NULLS FIRST, isnull(i_class_id#138) ASC NULLS FIRST, coalesce(i_category_id#139, 0) ASC NULLS FIRST, isnull(i_category_id#139) ASC NULLS FIRST], false, 0 (573) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#136, 0), isnull(i_brand_id#136), coalesce(i_class_id#137, 0), isnull(i_class_id#137), coalesce(i_category_id#138, 0), isnull(i_category_id#138)] +Right keys [6]: [coalesce(i_brand_id#137, 0), isnull(i_brand_id#137), coalesce(i_class_id#138, 0), isnull(i_class_id#138), coalesce(i_category_id#139, 0), isnull(i_category_id#139)] Join type: LeftSemi Join condition: None @@ -3414,266 +3414,266 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (576) SortMergeJoin -Left keys [3]: [i_brand_id#114, i_class_id#115, i_category_id#116] +Left keys [3]: [i_brand_id#115, i_class_id#116, i_category_id#117] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (577) Project -Output [1]: [i_item_sk#113 AS ss_item_sk#61] -Input [7]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#114 AS ss_item_sk#62] +Input [7]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117, brand_id#24, class_id#25, category_id#26] (578) Exchange -Input [1]: [ss_item_sk#61] -Arguments: hashpartitioning(ss_item_sk#61, 100), ENSURE_REQUIREMENTS, [plan_id=94] +Input [1]: [ss_item_sk#62] +Arguments: hashpartitioning(ss_item_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=94] (579) Sort -Input [1]: [ss_item_sk#61] -Arguments: [ss_item_sk#61 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#62] +Arguments: [ss_item_sk#62 ASC NULLS FIRST], false, 0 (580) SortMergeJoin -Left keys [1]: [cs_item_sk#58] -Right keys [1]: [ss_item_sk#61] +Left keys [1]: [cs_item_sk#59] +Right keys [1]: [ss_item_sk#62] Join type: LeftSemi Join condition: None (581) Scan parquet -Output [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (582) Filter -Input [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] -Condition : isnotnull(i_item_sk#62) +Input [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] +Condition : isnotnull(i_item_sk#63) (583) Exchange -Input [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: hashpartitioning(i_item_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=95] +Input [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: hashpartitioning(i_item_sk#63, 100), ENSURE_REQUIREMENTS, [plan_id=95] (584) Sort -Input [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: [i_item_sk#62 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: [i_item_sk#63 ASC NULLS FIRST], false, 0 (585) Scan parquet -Output [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] +Output [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (586) Filter -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Condition : ((isnotnull(i_brand_id#114) AND isnotnull(i_class_id#115)) AND isnotnull(i_category_id#116)) +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Condition : ((isnotnull(i_brand_id#115) AND isnotnull(i_class_id#116)) AND isnotnull(i_category_id#117)) (587) Exchange -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Arguments: hashpartitioning(i_brand_id#114, i_class_id#115, i_category_id#116, 100), ENSURE_REQUIREMENTS, [plan_id=96] +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Arguments: hashpartitioning(i_brand_id#115, i_class_id#116, i_category_id#117, 100), ENSURE_REQUIREMENTS, [plan_id=96] (588) Sort -Input [4]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116] -Arguments: [i_brand_id#114 ASC NULLS FIRST, i_class_id#115 ASC NULLS FIRST, i_category_id#116 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117] +Arguments: [i_brand_id#115 ASC NULLS FIRST, i_class_id#116 ASC NULLS FIRST, i_category_id#117 ASC NULLS FIRST], false, 0 (589) Scan parquet -Output [2]: [ss_sold_date_sk#117, ss_item_sk#118] +Output [2]: [ss_sold_date_sk#118, ss_item_sk#119] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (590) Filter -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Condition : (isnotnull(ss_item_sk#118) AND isnotnull(ss_sold_date_sk#117)) +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Condition : (isnotnull(ss_item_sk#119) AND isnotnull(ss_sold_date_sk#118)) (591) Exchange -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Arguments: hashpartitioning(ss_item_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=97] +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Arguments: hashpartitioning(ss_item_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=97] (592) Sort -Input [2]: [ss_sold_date_sk#117, ss_item_sk#118] -Arguments: [ss_item_sk#118 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#118, ss_item_sk#119] +Arguments: [ss_item_sk#119 ASC NULLS FIRST], false, 0 (593) Scan parquet -Output [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] +Output [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (594) Filter -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Condition : (((isnotnull(i_item_sk#119) AND isnotnull(i_brand_id#120)) AND isnotnull(i_class_id#121)) AND isnotnull(i_category_id#122)) +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Condition : (((isnotnull(i_item_sk#120) AND isnotnull(i_brand_id#121)) AND isnotnull(i_class_id#122)) AND isnotnull(i_category_id#123)) (595) Exchange -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(coalesce(i_brand_id#120, 0), isnull(i_brand_id#120), coalesce(i_class_id#121, 0), isnull(i_class_id#121), coalesce(i_category_id#122, 0), isnull(i_category_id#122), 100), ENSURE_REQUIREMENTS, [plan_id=98] +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(coalesce(i_brand_id#121, 0), isnull(i_brand_id#121), coalesce(i_class_id#122, 0), isnull(i_class_id#122), coalesce(i_category_id#123, 0), isnull(i_category_id#123), 100), ENSURE_REQUIREMENTS, [plan_id=98] (596) Sort -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [coalesce(i_brand_id#120, 0) ASC NULLS FIRST, isnull(i_brand_id#120) ASC NULLS FIRST, coalesce(i_class_id#121, 0) ASC NULLS FIRST, isnull(i_class_id#121) ASC NULLS FIRST, coalesce(i_category_id#122, 0) ASC NULLS FIRST, isnull(i_category_id#122) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [coalesce(i_brand_id#121, 0) ASC NULLS FIRST, isnull(i_brand_id#121) ASC NULLS FIRST, coalesce(i_class_id#122, 0) ASC NULLS FIRST, isnull(i_class_id#122) ASC NULLS FIRST, coalesce(i_category_id#123, 0) ASC NULLS FIRST, isnull(i_category_id#123) ASC NULLS FIRST], false, 0 (597) Scan parquet -Output [2]: [cs_sold_date_sk#123, cs_item_sk#124] +Output [2]: [cs_sold_date_sk#124, cs_item_sk#125] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (598) Filter -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Condition : (isnotnull(cs_item_sk#124) AND isnotnull(cs_sold_date_sk#123)) +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Condition : (isnotnull(cs_item_sk#125) AND isnotnull(cs_sold_date_sk#124)) (599) Exchange -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Arguments: hashpartitioning(cs_item_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=99] +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Arguments: hashpartitioning(cs_item_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=99] (600) Sort -Input [2]: [cs_sold_date_sk#123, cs_item_sk#124] -Arguments: [cs_item_sk#124 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#124, cs_item_sk#125] +Arguments: [cs_item_sk#125 ASC NULLS FIRST], false, 0 (601) Scan parquet -Output [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] +Output [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (602) Filter -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Condition : isnotnull(i_item_sk#125) +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Condition : isnotnull(i_item_sk#126) (603) Exchange -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(i_item_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=100] +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(i_item_sk#126, 100), ENSURE_REQUIREMENTS, [plan_id=100] (604) Sort -Input [4]: [i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [i_item_sk#125 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [i_item_sk#126 ASC NULLS FIRST], false, 0 (605) SortMergeJoin -Left keys [1]: [cs_item_sk#124] -Right keys [1]: [i_item_sk#125] +Left keys [1]: [cs_item_sk#125] +Right keys [1]: [i_item_sk#126] Join type: Inner Join condition: None (606) Project -Output [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Input [6]: [cs_sold_date_sk#123, cs_item_sk#124, i_item_sk#125, i_brand_id#126, i_class_id#127, i_category_id#128] +Output [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Input [6]: [cs_sold_date_sk#124, cs_item_sk#125, i_item_sk#126, i_brand_id#127, i_class_id#128, i_category_id#129] (607) Exchange -Input [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(cs_sold_date_sk#123, 100), ENSURE_REQUIREMENTS, [plan_id=101] +Input [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(cs_sold_date_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=101] (608) Sort -Input [4]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [cs_sold_date_sk#123 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [cs_sold_date_sk#124 ASC NULLS FIRST], false, 0 (609) Scan parquet -Output [2]: [d_date_sk#129, d_year#130] +Output [2]: [d_date_sk#130, d_year#131] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (610) Filter -Input [2]: [d_date_sk#129, d_year#130] -Condition : (((isnotnull(d_year#130) AND (d_year#130 >= 1999)) AND (d_year#130 <= 2001)) AND isnotnull(d_date_sk#129)) +Input [2]: [d_date_sk#130, d_year#131] +Condition : (((isnotnull(d_year#131) AND (d_year#131 >= 1999)) AND (d_year#131 <= 2001)) AND isnotnull(d_date_sk#130)) (611) Project -Output [1]: [d_date_sk#129] -Input [2]: [d_date_sk#129, d_year#130] +Output [1]: [d_date_sk#130] +Input [2]: [d_date_sk#130, d_year#131] (612) Exchange -Input [1]: [d_date_sk#129] -Arguments: hashpartitioning(d_date_sk#129, 100), ENSURE_REQUIREMENTS, [plan_id=102] +Input [1]: [d_date_sk#130] +Arguments: hashpartitioning(d_date_sk#130, 100), ENSURE_REQUIREMENTS, [plan_id=102] (613) Sort -Input [1]: [d_date_sk#129] -Arguments: [d_date_sk#129 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#130] +Arguments: [d_date_sk#130 ASC NULLS FIRST], false, 0 (614) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#123] -Right keys [1]: [d_date_sk#129] +Left keys [1]: [cs_sold_date_sk#124] +Right keys [1]: [d_date_sk#130] Join type: Inner Join condition: None (615) Project -Output [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Input [5]: [cs_sold_date_sk#123, i_brand_id#126, i_class_id#127, i_category_id#128, d_date_sk#129] +Output [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Input [5]: [cs_sold_date_sk#124, i_brand_id#127, i_class_id#128, i_category_id#129, d_date_sk#130] (616) Exchange -Input [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: hashpartitioning(coalesce(i_brand_id#126, 0), isnull(i_brand_id#126), coalesce(i_class_id#127, 0), isnull(i_class_id#127), coalesce(i_category_id#128, 0), isnull(i_category_id#128), 100), ENSURE_REQUIREMENTS, [plan_id=103] +Input [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: hashpartitioning(coalesce(i_brand_id#127, 0), isnull(i_brand_id#127), coalesce(i_class_id#128, 0), isnull(i_class_id#128), coalesce(i_category_id#129, 0), isnull(i_category_id#129), 100), ENSURE_REQUIREMENTS, [plan_id=103] (617) Sort -Input [3]: [i_brand_id#126, i_class_id#127, i_category_id#128] -Arguments: [coalesce(i_brand_id#126, 0) ASC NULLS FIRST, isnull(i_brand_id#126) ASC NULLS FIRST, coalesce(i_class_id#127, 0) ASC NULLS FIRST, isnull(i_class_id#127) ASC NULLS FIRST, coalesce(i_category_id#128, 0) ASC NULLS FIRST, isnull(i_category_id#128) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#127, i_class_id#128, i_category_id#129] +Arguments: [coalesce(i_brand_id#127, 0) ASC NULLS FIRST, isnull(i_brand_id#127) ASC NULLS FIRST, coalesce(i_class_id#128, 0) ASC NULLS FIRST, isnull(i_class_id#128) ASC NULLS FIRST, coalesce(i_category_id#129, 0) ASC NULLS FIRST, isnull(i_category_id#129) ASC NULLS FIRST], false, 0 (618) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#120, 0), isnull(i_brand_id#120), coalesce(i_class_id#121, 0), isnull(i_class_id#121), coalesce(i_category_id#122, 0), isnull(i_category_id#122)] -Right keys [6]: [coalesce(i_brand_id#126, 0), isnull(i_brand_id#126), coalesce(i_class_id#127, 0), isnull(i_class_id#127), coalesce(i_category_id#128, 0), isnull(i_category_id#128)] +Left keys [6]: [coalesce(i_brand_id#121, 0), isnull(i_brand_id#121), coalesce(i_class_id#122, 0), isnull(i_class_id#122), coalesce(i_category_id#123, 0), isnull(i_category_id#123)] +Right keys [6]: [coalesce(i_brand_id#127, 0), isnull(i_brand_id#127), coalesce(i_class_id#128, 0), isnull(i_class_id#128), coalesce(i_category_id#129, 0), isnull(i_category_id#129)] Join type: LeftSemi Join condition: None (619) Exchange -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(i_item_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=104] +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(i_item_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=104] (620) Sort -Input [4]: [i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [i_item_sk#119 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [i_item_sk#120 ASC NULLS FIRST], false, 0 (621) SortMergeJoin -Left keys [1]: [ss_item_sk#118] -Right keys [1]: [i_item_sk#119] +Left keys [1]: [ss_item_sk#119] +Right keys [1]: [i_item_sk#120] Join type: Inner Join condition: None (622) Project -Output [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Input [6]: [ss_sold_date_sk#117, ss_item_sk#118, i_item_sk#119, i_brand_id#120, i_class_id#121, i_category_id#122] +Output [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Input [6]: [ss_sold_date_sk#118, ss_item_sk#119, i_item_sk#120, i_brand_id#121, i_class_id#122, i_category_id#123] (623) Exchange -Input [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: hashpartitioning(ss_sold_date_sk#117, 100), ENSURE_REQUIREMENTS, [plan_id=105] +Input [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: hashpartitioning(ss_sold_date_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=105] (624) Sort -Input [4]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122] -Arguments: [ss_sold_date_sk#117 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123] +Arguments: [ss_sold_date_sk#118 ASC NULLS FIRST], false, 0 (625) Scan parquet -Output [2]: [d_date_sk#131, d_year#132] +Output [2]: [d_date_sk#132, d_year#133] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (626) Filter -Input [2]: [d_date_sk#131, d_year#132] -Condition : (((isnotnull(d_year#132) AND (d_year#132 >= 1999)) AND (d_year#132 <= 2001)) AND isnotnull(d_date_sk#131)) +Input [2]: [d_date_sk#132, d_year#133] +Condition : (((isnotnull(d_year#133) AND (d_year#133 >= 1999)) AND (d_year#133 <= 2001)) AND isnotnull(d_date_sk#132)) (627) Project -Output [1]: [d_date_sk#131] -Input [2]: [d_date_sk#131, d_year#132] +Output [1]: [d_date_sk#132] +Input [2]: [d_date_sk#132, d_year#133] (628) Exchange -Input [1]: [d_date_sk#131] -Arguments: hashpartitioning(d_date_sk#131, 100), ENSURE_REQUIREMENTS, [plan_id=106] +Input [1]: [d_date_sk#132] +Arguments: hashpartitioning(d_date_sk#132, 100), ENSURE_REQUIREMENTS, [plan_id=106] (629) Sort -Input [1]: [d_date_sk#131] -Arguments: [d_date_sk#131 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#132] +Arguments: [d_date_sk#132 ASC NULLS FIRST], false, 0 (630) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#117] -Right keys [1]: [d_date_sk#131] +Left keys [1]: [ss_sold_date_sk#118] +Right keys [1]: [d_date_sk#132] Join type: Inner Join condition: None (631) Project -Output [3]: [i_brand_id#120 AS brand_id#24, i_class_id#121 AS class_id#25, i_category_id#122 AS category_id#26] -Input [5]: [ss_sold_date_sk#117, i_brand_id#120, i_class_id#121, i_category_id#122, d_date_sk#131] +Output [3]: [i_brand_id#121 AS brand_id#24, i_class_id#122 AS class_id#25, i_category_id#123 AS category_id#26] +Input [5]: [ss_sold_date_sk#118, i_brand_id#121, i_class_id#122, i_category_id#123, d_date_sk#132] (632) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -3702,105 +3702,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (637) Scan parquet -Output [2]: [ws_sold_date_sk#133, ws_item_sk#134] +Output [2]: [ws_sold_date_sk#134, ws_item_sk#135] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (638) Filter -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Condition : (isnotnull(ws_item_sk#134) AND isnotnull(ws_sold_date_sk#133)) +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Condition : (isnotnull(ws_item_sk#135) AND isnotnull(ws_sold_date_sk#134)) (639) Exchange -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Arguments: hashpartitioning(ws_item_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=109] +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Arguments: hashpartitioning(ws_item_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=109] (640) Sort -Input [2]: [ws_sold_date_sk#133, ws_item_sk#134] -Arguments: [ws_item_sk#134 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#134, ws_item_sk#135] +Arguments: [ws_item_sk#135 ASC NULLS FIRST], false, 0 (641) Scan parquet -Output [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] +Output [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (642) Filter -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Condition : isnotnull(i_item_sk#135) +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Condition : isnotnull(i_item_sk#136) (643) Exchange -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(i_item_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=110] +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(i_item_sk#136, 100), ENSURE_REQUIREMENTS, [plan_id=110] (644) Sort -Input [4]: [i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [i_item_sk#135 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [i_item_sk#136 ASC NULLS FIRST], false, 0 (645) SortMergeJoin -Left keys [1]: [ws_item_sk#134] -Right keys [1]: [i_item_sk#135] +Left keys [1]: [ws_item_sk#135] +Right keys [1]: [i_item_sk#136] Join type: Inner Join condition: None (646) Project -Output [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Input [6]: [ws_sold_date_sk#133, ws_item_sk#134, i_item_sk#135, i_brand_id#136, i_class_id#137, i_category_id#138] +Output [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Input [6]: [ws_sold_date_sk#134, ws_item_sk#135, i_item_sk#136, i_brand_id#137, i_class_id#138, i_category_id#139] (647) Exchange -Input [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(ws_sold_date_sk#133, 100), ENSURE_REQUIREMENTS, [plan_id=111] +Input [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(ws_sold_date_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=111] (648) Sort -Input [4]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [ws_sold_date_sk#133 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [ws_sold_date_sk#134 ASC NULLS FIRST], false, 0 (649) Scan parquet -Output [2]: [d_date_sk#139, d_year#140] +Output [2]: [d_date_sk#140, d_year#141] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (650) Filter -Input [2]: [d_date_sk#139, d_year#140] -Condition : (((isnotnull(d_year#140) AND (d_year#140 >= 1999)) AND (d_year#140 <= 2001)) AND isnotnull(d_date_sk#139)) +Input [2]: [d_date_sk#140, d_year#141] +Condition : (((isnotnull(d_year#141) AND (d_year#141 >= 1999)) AND (d_year#141 <= 2001)) AND isnotnull(d_date_sk#140)) (651) Project -Output [1]: [d_date_sk#139] -Input [2]: [d_date_sk#139, d_year#140] +Output [1]: [d_date_sk#140] +Input [2]: [d_date_sk#140, d_year#141] (652) Exchange -Input [1]: [d_date_sk#139] -Arguments: hashpartitioning(d_date_sk#139, 100), ENSURE_REQUIREMENTS, [plan_id=112] +Input [1]: [d_date_sk#140] +Arguments: hashpartitioning(d_date_sk#140, 100), ENSURE_REQUIREMENTS, [plan_id=112] (653) Sort -Input [1]: [d_date_sk#139] -Arguments: [d_date_sk#139 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#140] +Arguments: [d_date_sk#140 ASC NULLS FIRST], false, 0 (654) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#133] -Right keys [1]: [d_date_sk#139] +Left keys [1]: [ws_sold_date_sk#134] +Right keys [1]: [d_date_sk#140] Join type: Inner Join condition: None (655) Project -Output [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Input [5]: [ws_sold_date_sk#133, i_brand_id#136, i_class_id#137, i_category_id#138, d_date_sk#139] +Output [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Input [5]: [ws_sold_date_sk#134, i_brand_id#137, i_class_id#138, i_category_id#139, d_date_sk#140] (656) Exchange -Input [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: hashpartitioning(coalesce(i_brand_id#136, 0), isnull(i_brand_id#136), coalesce(i_class_id#137, 0), isnull(i_class_id#137), coalesce(i_category_id#138, 0), isnull(i_category_id#138), 100), ENSURE_REQUIREMENTS, [plan_id=113] +Input [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: hashpartitioning(coalesce(i_brand_id#137, 0), isnull(i_brand_id#137), coalesce(i_class_id#138, 0), isnull(i_class_id#138), coalesce(i_category_id#139, 0), isnull(i_category_id#139), 100), ENSURE_REQUIREMENTS, [plan_id=113] (657) Sort -Input [3]: [i_brand_id#136, i_class_id#137, i_category_id#138] -Arguments: [coalesce(i_brand_id#136, 0) ASC NULLS FIRST, isnull(i_brand_id#136) ASC NULLS FIRST, coalesce(i_class_id#137, 0) ASC NULLS FIRST, isnull(i_class_id#137) ASC NULLS FIRST, coalesce(i_category_id#138, 0) ASC NULLS FIRST, isnull(i_category_id#138) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#137, i_class_id#138, i_category_id#139] +Arguments: [coalesce(i_brand_id#137, 0) ASC NULLS FIRST, isnull(i_brand_id#137) ASC NULLS FIRST, coalesce(i_class_id#138, 0) ASC NULLS FIRST, isnull(i_class_id#138) ASC NULLS FIRST, coalesce(i_category_id#139, 0) ASC NULLS FIRST, isnull(i_category_id#139) ASC NULLS FIRST], false, 0 (658) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#136, 0), isnull(i_brand_id#136), coalesce(i_class_id#137, 0), isnull(i_class_id#137), coalesce(i_category_id#138, 0), isnull(i_category_id#138)] +Right keys [6]: [coalesce(i_brand_id#137, 0), isnull(i_brand_id#137), coalesce(i_class_id#138, 0), isnull(i_class_id#138), coalesce(i_category_id#139, 0), isnull(i_category_id#139)] Join type: LeftSemi Join condition: None @@ -3813,343 +3813,343 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (661) SortMergeJoin -Left keys [3]: [i_brand_id#114, i_class_id#115, i_category_id#116] +Left keys [3]: [i_brand_id#115, i_class_id#116, i_category_id#117] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (662) Project -Output [1]: [i_item_sk#113 AS ss_item_sk#61] -Input [7]: [i_item_sk#113, i_brand_id#114, i_class_id#115, i_category_id#116, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#114 AS ss_item_sk#62] +Input [7]: [i_item_sk#114, i_brand_id#115, i_class_id#116, i_category_id#117, brand_id#24, class_id#25, category_id#26] (663) Exchange -Input [1]: [ss_item_sk#61] -Arguments: hashpartitioning(ss_item_sk#61, 100), ENSURE_REQUIREMENTS, [plan_id=115] +Input [1]: [ss_item_sk#62] +Arguments: hashpartitioning(ss_item_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=115] (664) Sort -Input [1]: [ss_item_sk#61] -Arguments: [ss_item_sk#61 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#62] +Arguments: [ss_item_sk#62 ASC NULLS FIRST], false, 0 (665) SortMergeJoin -Left keys [1]: [i_item_sk#62] -Right keys [1]: [ss_item_sk#61] +Left keys [1]: [i_item_sk#63] +Right keys [1]: [ss_item_sk#62] Join type: LeftSemi Join condition: None (666) SortMergeJoin -Left keys [1]: [cs_item_sk#58] -Right keys [1]: [i_item_sk#62] +Left keys [1]: [cs_item_sk#59] +Right keys [1]: [i_item_sk#63] Join type: Inner Join condition: None (667) Project -Output [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [8]: [cs_sold_date_sk#57, cs_item_sk#58, cs_quantity#59, cs_list_price#60, i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65] +Output [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [8]: [cs_sold_date_sk#58, cs_item_sk#59, cs_quantity#60, cs_list_price#61, i_item_sk#63, i_brand_id#64, i_class_id#65, i_category_id#66] (668) Exchange -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: hashpartitioning(cs_sold_date_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=116] +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: hashpartitioning(cs_sold_date_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=116] (669) Sort -Input [6]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Arguments: [cs_sold_date_sk#57 ASC NULLS FIRST], false, 0 +Input [6]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Arguments: [cs_sold_date_sk#58 ASC NULLS FIRST], false, 0 (670) Scan parquet -Output [3]: [d_date_sk#66, d_year#141, d_moy#142] +Output [3]: [d_date_sk#67, d_year#142, d_moy#143] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,11), IsNotNull(d_date_sk)] ReadSchema: struct (671) Filter -Input [3]: [d_date_sk#66, d_year#141, d_moy#142] -Condition : ((((isnotnull(d_year#141) AND isnotnull(d_moy#142)) AND (d_year#141 = 2001)) AND (d_moy#142 = 11)) AND isnotnull(d_date_sk#66)) +Input [3]: [d_date_sk#67, d_year#142, d_moy#143] +Condition : ((((isnotnull(d_year#142) AND isnotnull(d_moy#143)) AND (d_year#142 = 2001)) AND (d_moy#143 = 11)) AND isnotnull(d_date_sk#67)) (672) Project -Output [1]: [d_date_sk#66] -Input [3]: [d_date_sk#66, d_year#141, d_moy#142] +Output [1]: [d_date_sk#67] +Input [3]: [d_date_sk#67, d_year#142, d_moy#143] (673) Exchange -Input [1]: [d_date_sk#66] -Arguments: hashpartitioning(d_date_sk#66, 100), ENSURE_REQUIREMENTS, [plan_id=117] +Input [1]: [d_date_sk#67] +Arguments: hashpartitioning(d_date_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=117] (674) Sort -Input [1]: [d_date_sk#66] -Arguments: [d_date_sk#66 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#67] +Arguments: [d_date_sk#67 ASC NULLS FIRST], false, 0 (675) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#57] -Right keys [1]: [d_date_sk#66] +Left keys [1]: [cs_sold_date_sk#58] +Right keys [1]: [d_date_sk#67] Join type: Inner Join condition: None (676) Project -Output [5]: [cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [7]: [cs_sold_date_sk#57, cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65, d_date_sk#66] +Output [5]: [cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [7]: [cs_sold_date_sk#58, cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66, d_date_sk#67] (677) HashAggregate -Input [5]: [cs_quantity#59, cs_list_price#60, i_brand_id#63, i_class_id#64, i_category_id#65] -Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65] -Functions [2]: [partial_sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60)), partial_count(1)] -Aggregate Attributes [3]: [sum#68, isEmpty#69, count#70] -Results [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#143, isEmpty#144, count#145] +Input [5]: [cs_quantity#60, cs_list_price#61, i_brand_id#64, i_class_id#65, i_category_id#66] +Keys [3]: [i_brand_id#64, i_class_id#65, i_category_id#66] +Functions [2]: [partial_sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61)), partial_count(1)] +Aggregate Attributes [3]: [sum#69, isEmpty#70, count#71] +Results [6]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum#144, isEmpty#145, count#146] (678) Exchange -Input [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#143, isEmpty#144, count#145] -Arguments: hashpartitioning(i_brand_id#63, i_class_id#64, i_category_id#65, 100), ENSURE_REQUIREMENTS, [plan_id=118] +Input [6]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum#144, isEmpty#145, count#146] +Arguments: hashpartitioning(i_brand_id#64, i_class_id#65, i_category_id#66, 100), ENSURE_REQUIREMENTS, [plan_id=118] (679) HashAggregate -Input [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#143, isEmpty#144, count#145] -Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65] -Functions [2]: [sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60)), count(1)] -Aggregate Attributes [2]: [sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71, count(1)#72] -Results [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum((cast(cs_quantity#59 as decimal(10,0)) * cs_list_price#60))#71 AS sales#73, count(1)#72 AS number_sales#74] +Input [6]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum#144, isEmpty#145, count#146] +Keys [3]: [i_brand_id#64, i_class_id#65, i_category_id#66] +Functions [2]: [sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61)), count(1)] +Aggregate Attributes [2]: [sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72, count(1)#73] +Results [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sum((cast(cs_quantity#60 as decimal(10,0)) * cs_list_price#61))#72 AS sales#74, count(1)#73 AS number_sales#75] (680) Filter -Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#73, number_sales#74] -Condition : (isnotnull(sales#73) AND (cast(sales#73 as decimal(32,6)) > cast(Subquery subquery#146, [id=#147] as decimal(32,6)))) +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sales#74, number_sales#75] +Condition : (isnotnull(sales#74) AND (cast(sales#74 as decimal(32,6)) > cast(Subquery subquery#147, [id=#148] as decimal(32,6)))) (681) Project -Output [6]: [sales#73, number_sales#74, catalog AS channel#75, i_brand_id#63, i_class_id#64, i_category_id#65] -Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#73, number_sales#74] +Output [6]: [sales#74, number_sales#75, catalog AS channel#76, i_brand_id#64, i_class_id#65, i_category_id#66] +Input [5]: [i_brand_id#64, i_class_id#65, i_category_id#66, sales#74, number_sales#75] (682) Scan parquet -Output [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] +Output [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (683) Filter -Input [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] -Condition : (isnotnull(ws_item_sk#77) AND isnotnull(ws_sold_date_sk#76)) +Input [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] +Condition : (isnotnull(ws_item_sk#78) AND isnotnull(ws_sold_date_sk#77)) (684) Exchange -Input [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] -Arguments: hashpartitioning(ws_item_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=119] +Input [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] +Arguments: hashpartitioning(ws_item_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=119] (685) Sort -Input [4]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79] -Arguments: [ws_item_sk#77 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80] +Arguments: [ws_item_sk#78 ASC NULLS FIRST], false, 0 (686) Scan parquet -Output [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] +Output [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (687) Filter -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Condition : ((isnotnull(i_brand_id#149) AND isnotnull(i_class_id#150)) AND isnotnull(i_category_id#151)) +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Condition : ((isnotnull(i_brand_id#150) AND isnotnull(i_class_id#151)) AND isnotnull(i_category_id#152)) (688) Exchange -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Arguments: hashpartitioning(i_brand_id#149, i_class_id#150, i_category_id#151, 100), ENSURE_REQUIREMENTS, [plan_id=120] +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Arguments: hashpartitioning(i_brand_id#150, i_class_id#151, i_category_id#152, 100), ENSURE_REQUIREMENTS, [plan_id=120] (689) Sort -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Arguments: [i_brand_id#149 ASC NULLS FIRST, i_class_id#150 ASC NULLS FIRST, i_category_id#151 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Arguments: [i_brand_id#150 ASC NULLS FIRST, i_class_id#151 ASC NULLS FIRST, i_category_id#152 ASC NULLS FIRST], false, 0 (690) Scan parquet -Output [2]: [ss_sold_date_sk#152, ss_item_sk#153] +Output [2]: [ss_sold_date_sk#153, ss_item_sk#154] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (691) Filter -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Condition : (isnotnull(ss_item_sk#153) AND isnotnull(ss_sold_date_sk#152)) +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Condition : (isnotnull(ss_item_sk#154) AND isnotnull(ss_sold_date_sk#153)) (692) Exchange -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Arguments: hashpartitioning(ss_item_sk#153, 100), ENSURE_REQUIREMENTS, [plan_id=121] +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Arguments: hashpartitioning(ss_item_sk#154, 100), ENSURE_REQUIREMENTS, [plan_id=121] (693) Sort -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Arguments: [ss_item_sk#153 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Arguments: [ss_item_sk#154 ASC NULLS FIRST], false, 0 (694) Scan parquet -Output [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] +Output [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (695) Filter -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Condition : (((isnotnull(i_item_sk#154) AND isnotnull(i_brand_id#155)) AND isnotnull(i_class_id#156)) AND isnotnull(i_category_id#157)) +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Condition : (((isnotnull(i_item_sk#155) AND isnotnull(i_brand_id#156)) AND isnotnull(i_class_id#157)) AND isnotnull(i_category_id#158)) (696) Exchange -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(coalesce(i_brand_id#155, 0), isnull(i_brand_id#155), coalesce(i_class_id#156, 0), isnull(i_class_id#156), coalesce(i_category_id#157, 0), isnull(i_category_id#157), 100), ENSURE_REQUIREMENTS, [plan_id=122] +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(coalesce(i_brand_id#156, 0), isnull(i_brand_id#156), coalesce(i_class_id#157, 0), isnull(i_class_id#157), coalesce(i_category_id#158, 0), isnull(i_category_id#158), 100), ENSURE_REQUIREMENTS, [plan_id=122] (697) Sort -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [coalesce(i_brand_id#155, 0) ASC NULLS FIRST, isnull(i_brand_id#155) ASC NULLS FIRST, coalesce(i_class_id#156, 0) ASC NULLS FIRST, isnull(i_class_id#156) ASC NULLS FIRST, coalesce(i_category_id#157, 0) ASC NULLS FIRST, isnull(i_category_id#157) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [coalesce(i_brand_id#156, 0) ASC NULLS FIRST, isnull(i_brand_id#156) ASC NULLS FIRST, coalesce(i_class_id#157, 0) ASC NULLS FIRST, isnull(i_class_id#157) ASC NULLS FIRST, coalesce(i_category_id#158, 0) ASC NULLS FIRST, isnull(i_category_id#158) ASC NULLS FIRST], false, 0 (698) Scan parquet -Output [2]: [cs_sold_date_sk#158, cs_item_sk#159] +Output [2]: [cs_sold_date_sk#159, cs_item_sk#160] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (699) Filter -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Condition : (isnotnull(cs_item_sk#159) AND isnotnull(cs_sold_date_sk#158)) +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Condition : (isnotnull(cs_item_sk#160) AND isnotnull(cs_sold_date_sk#159)) (700) Exchange -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Arguments: hashpartitioning(cs_item_sk#159, 100), ENSURE_REQUIREMENTS, [plan_id=123] +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Arguments: hashpartitioning(cs_item_sk#160, 100), ENSURE_REQUIREMENTS, [plan_id=123] (701) Sort -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Arguments: [cs_item_sk#159 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Arguments: [cs_item_sk#160 ASC NULLS FIRST], false, 0 (702) Scan parquet -Output [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] +Output [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (703) Filter -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Condition : isnotnull(i_item_sk#160) +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Condition : isnotnull(i_item_sk#161) (704) Exchange -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(i_item_sk#160, 100), ENSURE_REQUIREMENTS, [plan_id=124] +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(i_item_sk#161, 100), ENSURE_REQUIREMENTS, [plan_id=124] (705) Sort -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [i_item_sk#160 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [i_item_sk#161 ASC NULLS FIRST], false, 0 (706) SortMergeJoin -Left keys [1]: [cs_item_sk#159] -Right keys [1]: [i_item_sk#160] +Left keys [1]: [cs_item_sk#160] +Right keys [1]: [i_item_sk#161] Join type: Inner Join condition: None (707) Project -Output [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Input [6]: [cs_sold_date_sk#158, cs_item_sk#159, i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] +Output [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Input [6]: [cs_sold_date_sk#159, cs_item_sk#160, i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] (708) Exchange -Input [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(cs_sold_date_sk#158, 100), ENSURE_REQUIREMENTS, [plan_id=125] +Input [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(cs_sold_date_sk#159, 100), ENSURE_REQUIREMENTS, [plan_id=125] (709) Sort -Input [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [cs_sold_date_sk#158 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [cs_sold_date_sk#159 ASC NULLS FIRST], false, 0 (710) Scan parquet -Output [2]: [d_date_sk#164, d_year#165] +Output [2]: [d_date_sk#165, d_year#166] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (711) Filter -Input [2]: [d_date_sk#164, d_year#165] -Condition : (((isnotnull(d_year#165) AND (d_year#165 >= 1999)) AND (d_year#165 <= 2001)) AND isnotnull(d_date_sk#164)) +Input [2]: [d_date_sk#165, d_year#166] +Condition : (((isnotnull(d_year#166) AND (d_year#166 >= 1999)) AND (d_year#166 <= 2001)) AND isnotnull(d_date_sk#165)) (712) Project -Output [1]: [d_date_sk#164] -Input [2]: [d_date_sk#164, d_year#165] +Output [1]: [d_date_sk#165] +Input [2]: [d_date_sk#165, d_year#166] (713) Exchange -Input [1]: [d_date_sk#164] -Arguments: hashpartitioning(d_date_sk#164, 100), ENSURE_REQUIREMENTS, [plan_id=126] +Input [1]: [d_date_sk#165] +Arguments: hashpartitioning(d_date_sk#165, 100), ENSURE_REQUIREMENTS, [plan_id=126] (714) Sort -Input [1]: [d_date_sk#164] -Arguments: [d_date_sk#164 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#165] +Arguments: [d_date_sk#165 ASC NULLS FIRST], false, 0 (715) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#158] -Right keys [1]: [d_date_sk#164] +Left keys [1]: [cs_sold_date_sk#159] +Right keys [1]: [d_date_sk#165] Join type: Inner Join condition: None (716) Project -Output [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Input [5]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163, d_date_sk#164] +Output [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Input [5]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164, d_date_sk#165] (717) Exchange -Input [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(coalesce(i_brand_id#161, 0), isnull(i_brand_id#161), coalesce(i_class_id#162, 0), isnull(i_class_id#162), coalesce(i_category_id#163, 0), isnull(i_category_id#163), 100), ENSURE_REQUIREMENTS, [plan_id=127] +Input [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(coalesce(i_brand_id#162, 0), isnull(i_brand_id#162), coalesce(i_class_id#163, 0), isnull(i_class_id#163), coalesce(i_category_id#164, 0), isnull(i_category_id#164), 100), ENSURE_REQUIREMENTS, [plan_id=127] (718) Sort -Input [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [coalesce(i_brand_id#161, 0) ASC NULLS FIRST, isnull(i_brand_id#161) ASC NULLS FIRST, coalesce(i_class_id#162, 0) ASC NULLS FIRST, isnull(i_class_id#162) ASC NULLS FIRST, coalesce(i_category_id#163, 0) ASC NULLS FIRST, isnull(i_category_id#163) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [coalesce(i_brand_id#162, 0) ASC NULLS FIRST, isnull(i_brand_id#162) ASC NULLS FIRST, coalesce(i_class_id#163, 0) ASC NULLS FIRST, isnull(i_class_id#163) ASC NULLS FIRST, coalesce(i_category_id#164, 0) ASC NULLS FIRST, isnull(i_category_id#164) ASC NULLS FIRST], false, 0 (719) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#155, 0), isnull(i_brand_id#155), coalesce(i_class_id#156, 0), isnull(i_class_id#156), coalesce(i_category_id#157, 0), isnull(i_category_id#157)] -Right keys [6]: [coalesce(i_brand_id#161, 0), isnull(i_brand_id#161), coalesce(i_class_id#162, 0), isnull(i_class_id#162), coalesce(i_category_id#163, 0), isnull(i_category_id#163)] +Left keys [6]: [coalesce(i_brand_id#156, 0), isnull(i_brand_id#156), coalesce(i_class_id#157, 0), isnull(i_class_id#157), coalesce(i_category_id#158, 0), isnull(i_category_id#158)] +Right keys [6]: [coalesce(i_brand_id#162, 0), isnull(i_brand_id#162), coalesce(i_class_id#163, 0), isnull(i_class_id#163), coalesce(i_category_id#164, 0), isnull(i_category_id#164)] Join type: LeftSemi Join condition: None (720) Exchange -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(i_item_sk#154, 100), ENSURE_REQUIREMENTS, [plan_id=128] +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(i_item_sk#155, 100), ENSURE_REQUIREMENTS, [plan_id=128] (721) Sort -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [i_item_sk#154 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [i_item_sk#155 ASC NULLS FIRST], false, 0 (722) SortMergeJoin -Left keys [1]: [ss_item_sk#153] -Right keys [1]: [i_item_sk#154] +Left keys [1]: [ss_item_sk#154] +Right keys [1]: [i_item_sk#155] Join type: Inner Join condition: None (723) Project -Output [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Input [6]: [ss_sold_date_sk#152, ss_item_sk#153, i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] +Output [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Input [6]: [ss_sold_date_sk#153, ss_item_sk#154, i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] (724) Exchange -Input [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(ss_sold_date_sk#152, 100), ENSURE_REQUIREMENTS, [plan_id=129] +Input [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(ss_sold_date_sk#153, 100), ENSURE_REQUIREMENTS, [plan_id=129] (725) Sort -Input [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [ss_sold_date_sk#152 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [ss_sold_date_sk#153 ASC NULLS FIRST], false, 0 (726) Scan parquet -Output [2]: [d_date_sk#166, d_year#167] +Output [2]: [d_date_sk#167, d_year#168] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (727) Filter -Input [2]: [d_date_sk#166, d_year#167] -Condition : (((isnotnull(d_year#167) AND (d_year#167 >= 1999)) AND (d_year#167 <= 2001)) AND isnotnull(d_date_sk#166)) +Input [2]: [d_date_sk#167, d_year#168] +Condition : (((isnotnull(d_year#168) AND (d_year#168 >= 1999)) AND (d_year#168 <= 2001)) AND isnotnull(d_date_sk#167)) (728) Project -Output [1]: [d_date_sk#166] -Input [2]: [d_date_sk#166, d_year#167] +Output [1]: [d_date_sk#167] +Input [2]: [d_date_sk#167, d_year#168] (729) Exchange -Input [1]: [d_date_sk#166] -Arguments: hashpartitioning(d_date_sk#166, 100), ENSURE_REQUIREMENTS, [plan_id=130] +Input [1]: [d_date_sk#167] +Arguments: hashpartitioning(d_date_sk#167, 100), ENSURE_REQUIREMENTS, [plan_id=130] (730) Sort -Input [1]: [d_date_sk#166] -Arguments: [d_date_sk#166 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#167] +Arguments: [d_date_sk#167 ASC NULLS FIRST], false, 0 (731) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#152] -Right keys [1]: [d_date_sk#166] +Left keys [1]: [ss_sold_date_sk#153] +Right keys [1]: [d_date_sk#167] Join type: Inner Join condition: None (732) Project -Output [3]: [i_brand_id#155 AS brand_id#24, i_class_id#156 AS class_id#25, i_category_id#157 AS category_id#26] -Input [5]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157, d_date_sk#166] +Output [3]: [i_brand_id#156 AS brand_id#24, i_class_id#157 AS class_id#25, i_category_id#158 AS category_id#26] +Input [5]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158, d_date_sk#167] (733) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -4178,105 +4178,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (738) Scan parquet -Output [2]: [ws_sold_date_sk#168, ws_item_sk#169] +Output [2]: [ws_sold_date_sk#169, ws_item_sk#170] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (739) Filter -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Condition : (isnotnull(ws_item_sk#169) AND isnotnull(ws_sold_date_sk#168)) +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Condition : (isnotnull(ws_item_sk#170) AND isnotnull(ws_sold_date_sk#169)) (740) Exchange -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Arguments: hashpartitioning(ws_item_sk#169, 100), ENSURE_REQUIREMENTS, [plan_id=133] +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Arguments: hashpartitioning(ws_item_sk#170, 100), ENSURE_REQUIREMENTS, [plan_id=133] (741) Sort -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Arguments: [ws_item_sk#169 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Arguments: [ws_item_sk#170 ASC NULLS FIRST], false, 0 (742) Scan parquet -Output [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] +Output [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (743) Filter -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Condition : isnotnull(i_item_sk#170) +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Condition : isnotnull(i_item_sk#171) (744) Exchange -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(i_item_sk#170, 100), ENSURE_REQUIREMENTS, [plan_id=134] +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(i_item_sk#171, 100), ENSURE_REQUIREMENTS, [plan_id=134] (745) Sort -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [i_item_sk#170 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [i_item_sk#171 ASC NULLS FIRST], false, 0 (746) SortMergeJoin -Left keys [1]: [ws_item_sk#169] -Right keys [1]: [i_item_sk#170] +Left keys [1]: [ws_item_sk#170] +Right keys [1]: [i_item_sk#171] Join type: Inner Join condition: None (747) Project -Output [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Input [6]: [ws_sold_date_sk#168, ws_item_sk#169, i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] +Output [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Input [6]: [ws_sold_date_sk#169, ws_item_sk#170, i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] (748) Exchange -Input [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(ws_sold_date_sk#168, 100), ENSURE_REQUIREMENTS, [plan_id=135] +Input [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(ws_sold_date_sk#169, 100), ENSURE_REQUIREMENTS, [plan_id=135] (749) Sort -Input [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [ws_sold_date_sk#168 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [ws_sold_date_sk#169 ASC NULLS FIRST], false, 0 (750) Scan parquet -Output [2]: [d_date_sk#174, d_year#175] +Output [2]: [d_date_sk#175, d_year#176] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (751) Filter -Input [2]: [d_date_sk#174, d_year#175] -Condition : (((isnotnull(d_year#175) AND (d_year#175 >= 1999)) AND (d_year#175 <= 2001)) AND isnotnull(d_date_sk#174)) +Input [2]: [d_date_sk#175, d_year#176] +Condition : (((isnotnull(d_year#176) AND (d_year#176 >= 1999)) AND (d_year#176 <= 2001)) AND isnotnull(d_date_sk#175)) (752) Project -Output [1]: [d_date_sk#174] -Input [2]: [d_date_sk#174, d_year#175] +Output [1]: [d_date_sk#175] +Input [2]: [d_date_sk#175, d_year#176] (753) Exchange -Input [1]: [d_date_sk#174] -Arguments: hashpartitioning(d_date_sk#174, 100), ENSURE_REQUIREMENTS, [plan_id=136] +Input [1]: [d_date_sk#175] +Arguments: hashpartitioning(d_date_sk#175, 100), ENSURE_REQUIREMENTS, [plan_id=136] (754) Sort -Input [1]: [d_date_sk#174] -Arguments: [d_date_sk#174 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#175] +Arguments: [d_date_sk#175 ASC NULLS FIRST], false, 0 (755) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#168] -Right keys [1]: [d_date_sk#174] +Left keys [1]: [ws_sold_date_sk#169] +Right keys [1]: [d_date_sk#175] Join type: Inner Join condition: None (756) Project -Output [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Input [5]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173, d_date_sk#174] +Output [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Input [5]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174, d_date_sk#175] (757) Exchange -Input [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(coalesce(i_brand_id#171, 0), isnull(i_brand_id#171), coalesce(i_class_id#172, 0), isnull(i_class_id#172), coalesce(i_category_id#173, 0), isnull(i_category_id#173), 100), ENSURE_REQUIREMENTS, [plan_id=137] +Input [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(coalesce(i_brand_id#172, 0), isnull(i_brand_id#172), coalesce(i_class_id#173, 0), isnull(i_class_id#173), coalesce(i_category_id#174, 0), isnull(i_category_id#174), 100), ENSURE_REQUIREMENTS, [plan_id=137] (758) Sort -Input [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [coalesce(i_brand_id#171, 0) ASC NULLS FIRST, isnull(i_brand_id#171) ASC NULLS FIRST, coalesce(i_class_id#172, 0) ASC NULLS FIRST, isnull(i_class_id#172) ASC NULLS FIRST, coalesce(i_category_id#173, 0) ASC NULLS FIRST, isnull(i_category_id#173) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [coalesce(i_brand_id#172, 0) ASC NULLS FIRST, isnull(i_brand_id#172) ASC NULLS FIRST, coalesce(i_class_id#173, 0) ASC NULLS FIRST, isnull(i_class_id#173) ASC NULLS FIRST, coalesce(i_category_id#174, 0) ASC NULLS FIRST, isnull(i_category_id#174) ASC NULLS FIRST], false, 0 (759) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#171, 0), isnull(i_brand_id#171), coalesce(i_class_id#172, 0), isnull(i_class_id#172), coalesce(i_category_id#173, 0), isnull(i_category_id#173)] +Right keys [6]: [coalesce(i_brand_id#172, 0), isnull(i_brand_id#172), coalesce(i_class_id#173, 0), isnull(i_class_id#173), coalesce(i_category_id#174, 0), isnull(i_category_id#174)] Join type: LeftSemi Join condition: None @@ -4289,266 +4289,266 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (762) SortMergeJoin -Left keys [3]: [i_brand_id#149, i_class_id#150, i_category_id#151] +Left keys [3]: [i_brand_id#150, i_class_id#151, i_category_id#152] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (763) Project -Output [1]: [i_item_sk#148 AS ss_item_sk#80] -Input [7]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#149 AS ss_item_sk#81] +Input [7]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152, brand_id#24, class_id#25, category_id#26] (764) Exchange -Input [1]: [ss_item_sk#80] -Arguments: hashpartitioning(ss_item_sk#80, 100), ENSURE_REQUIREMENTS, [plan_id=139] +Input [1]: [ss_item_sk#81] +Arguments: hashpartitioning(ss_item_sk#81, 100), ENSURE_REQUIREMENTS, [plan_id=139] (765) Sort -Input [1]: [ss_item_sk#80] -Arguments: [ss_item_sk#80 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#81] +Arguments: [ss_item_sk#81 ASC NULLS FIRST], false, 0 (766) SortMergeJoin -Left keys [1]: [ws_item_sk#77] -Right keys [1]: [ss_item_sk#80] +Left keys [1]: [ws_item_sk#78] +Right keys [1]: [ss_item_sk#81] Join type: LeftSemi Join condition: None (767) Scan parquet -Output [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (768) Filter -Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] -Condition : isnotnull(i_item_sk#81) +Input [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] +Condition : isnotnull(i_item_sk#82) (769) Exchange -Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: hashpartitioning(i_item_sk#81, 100), ENSURE_REQUIREMENTS, [plan_id=140] +Input [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: hashpartitioning(i_item_sk#82, 100), ENSURE_REQUIREMENTS, [plan_id=140] (770) Sort -Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: [i_item_sk#81 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: [i_item_sk#82 ASC NULLS FIRST], false, 0 (771) Scan parquet -Output [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] +Output [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (772) Filter -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Condition : ((isnotnull(i_brand_id#149) AND isnotnull(i_class_id#150)) AND isnotnull(i_category_id#151)) +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Condition : ((isnotnull(i_brand_id#150) AND isnotnull(i_class_id#151)) AND isnotnull(i_category_id#152)) (773) Exchange -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Arguments: hashpartitioning(i_brand_id#149, i_class_id#150, i_category_id#151, 100), ENSURE_REQUIREMENTS, [plan_id=141] +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Arguments: hashpartitioning(i_brand_id#150, i_class_id#151, i_category_id#152, 100), ENSURE_REQUIREMENTS, [plan_id=141] (774) Sort -Input [4]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151] -Arguments: [i_brand_id#149 ASC NULLS FIRST, i_class_id#150 ASC NULLS FIRST, i_category_id#151 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152] +Arguments: [i_brand_id#150 ASC NULLS FIRST, i_class_id#151 ASC NULLS FIRST, i_category_id#152 ASC NULLS FIRST], false, 0 (775) Scan parquet -Output [2]: [ss_sold_date_sk#152, ss_item_sk#153] +Output [2]: [ss_sold_date_sk#153, ss_item_sk#154] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (776) Filter -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Condition : (isnotnull(ss_item_sk#153) AND isnotnull(ss_sold_date_sk#152)) +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Condition : (isnotnull(ss_item_sk#154) AND isnotnull(ss_sold_date_sk#153)) (777) Exchange -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Arguments: hashpartitioning(ss_item_sk#153, 100), ENSURE_REQUIREMENTS, [plan_id=142] +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Arguments: hashpartitioning(ss_item_sk#154, 100), ENSURE_REQUIREMENTS, [plan_id=142] (778) Sort -Input [2]: [ss_sold_date_sk#152, ss_item_sk#153] -Arguments: [ss_item_sk#153 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#153, ss_item_sk#154] +Arguments: [ss_item_sk#154 ASC NULLS FIRST], false, 0 (779) Scan parquet -Output [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] +Output [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (780) Filter -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Condition : (((isnotnull(i_item_sk#154) AND isnotnull(i_brand_id#155)) AND isnotnull(i_class_id#156)) AND isnotnull(i_category_id#157)) +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Condition : (((isnotnull(i_item_sk#155) AND isnotnull(i_brand_id#156)) AND isnotnull(i_class_id#157)) AND isnotnull(i_category_id#158)) (781) Exchange -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(coalesce(i_brand_id#155, 0), isnull(i_brand_id#155), coalesce(i_class_id#156, 0), isnull(i_class_id#156), coalesce(i_category_id#157, 0), isnull(i_category_id#157), 100), ENSURE_REQUIREMENTS, [plan_id=143] +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(coalesce(i_brand_id#156, 0), isnull(i_brand_id#156), coalesce(i_class_id#157, 0), isnull(i_class_id#157), coalesce(i_category_id#158, 0), isnull(i_category_id#158), 100), ENSURE_REQUIREMENTS, [plan_id=143] (782) Sort -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [coalesce(i_brand_id#155, 0) ASC NULLS FIRST, isnull(i_brand_id#155) ASC NULLS FIRST, coalesce(i_class_id#156, 0) ASC NULLS FIRST, isnull(i_class_id#156) ASC NULLS FIRST, coalesce(i_category_id#157, 0) ASC NULLS FIRST, isnull(i_category_id#157) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [coalesce(i_brand_id#156, 0) ASC NULLS FIRST, isnull(i_brand_id#156) ASC NULLS FIRST, coalesce(i_class_id#157, 0) ASC NULLS FIRST, isnull(i_class_id#157) ASC NULLS FIRST, coalesce(i_category_id#158, 0) ASC NULLS FIRST, isnull(i_category_id#158) ASC NULLS FIRST], false, 0 (783) Scan parquet -Output [2]: [cs_sold_date_sk#158, cs_item_sk#159] +Output [2]: [cs_sold_date_sk#159, cs_item_sk#160] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (784) Filter -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Condition : (isnotnull(cs_item_sk#159) AND isnotnull(cs_sold_date_sk#158)) +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Condition : (isnotnull(cs_item_sk#160) AND isnotnull(cs_sold_date_sk#159)) (785) Exchange -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Arguments: hashpartitioning(cs_item_sk#159, 100), ENSURE_REQUIREMENTS, [plan_id=144] +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Arguments: hashpartitioning(cs_item_sk#160, 100), ENSURE_REQUIREMENTS, [plan_id=144] (786) Sort -Input [2]: [cs_sold_date_sk#158, cs_item_sk#159] -Arguments: [cs_item_sk#159 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#159, cs_item_sk#160] +Arguments: [cs_item_sk#160 ASC NULLS FIRST], false, 0 (787) Scan parquet -Output [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] +Output [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (788) Filter -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Condition : isnotnull(i_item_sk#160) +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Condition : isnotnull(i_item_sk#161) (789) Exchange -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(i_item_sk#160, 100), ENSURE_REQUIREMENTS, [plan_id=145] +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(i_item_sk#161, 100), ENSURE_REQUIREMENTS, [plan_id=145] (790) Sort -Input [4]: [i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [i_item_sk#160 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [i_item_sk#161 ASC NULLS FIRST], false, 0 (791) SortMergeJoin -Left keys [1]: [cs_item_sk#159] -Right keys [1]: [i_item_sk#160] +Left keys [1]: [cs_item_sk#160] +Right keys [1]: [i_item_sk#161] Join type: Inner Join condition: None (792) Project -Output [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Input [6]: [cs_sold_date_sk#158, cs_item_sk#159, i_item_sk#160, i_brand_id#161, i_class_id#162, i_category_id#163] +Output [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Input [6]: [cs_sold_date_sk#159, cs_item_sk#160, i_item_sk#161, i_brand_id#162, i_class_id#163, i_category_id#164] (793) Exchange -Input [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(cs_sold_date_sk#158, 100), ENSURE_REQUIREMENTS, [plan_id=146] +Input [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(cs_sold_date_sk#159, 100), ENSURE_REQUIREMENTS, [plan_id=146] (794) Sort -Input [4]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [cs_sold_date_sk#158 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [cs_sold_date_sk#159 ASC NULLS FIRST], false, 0 (795) Scan parquet -Output [2]: [d_date_sk#164, d_year#165] +Output [2]: [d_date_sk#165, d_year#166] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (796) Filter -Input [2]: [d_date_sk#164, d_year#165] -Condition : (((isnotnull(d_year#165) AND (d_year#165 >= 1999)) AND (d_year#165 <= 2001)) AND isnotnull(d_date_sk#164)) +Input [2]: [d_date_sk#165, d_year#166] +Condition : (((isnotnull(d_year#166) AND (d_year#166 >= 1999)) AND (d_year#166 <= 2001)) AND isnotnull(d_date_sk#165)) (797) Project -Output [1]: [d_date_sk#164] -Input [2]: [d_date_sk#164, d_year#165] +Output [1]: [d_date_sk#165] +Input [2]: [d_date_sk#165, d_year#166] (798) Exchange -Input [1]: [d_date_sk#164] -Arguments: hashpartitioning(d_date_sk#164, 100), ENSURE_REQUIREMENTS, [plan_id=147] +Input [1]: [d_date_sk#165] +Arguments: hashpartitioning(d_date_sk#165, 100), ENSURE_REQUIREMENTS, [plan_id=147] (799) Sort -Input [1]: [d_date_sk#164] -Arguments: [d_date_sk#164 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#165] +Arguments: [d_date_sk#165 ASC NULLS FIRST], false, 0 (800) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#158] -Right keys [1]: [d_date_sk#164] +Left keys [1]: [cs_sold_date_sk#159] +Right keys [1]: [d_date_sk#165] Join type: Inner Join condition: None (801) Project -Output [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Input [5]: [cs_sold_date_sk#158, i_brand_id#161, i_class_id#162, i_category_id#163, d_date_sk#164] +Output [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Input [5]: [cs_sold_date_sk#159, i_brand_id#162, i_class_id#163, i_category_id#164, d_date_sk#165] (802) Exchange -Input [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: hashpartitioning(coalesce(i_brand_id#161, 0), isnull(i_brand_id#161), coalesce(i_class_id#162, 0), isnull(i_class_id#162), coalesce(i_category_id#163, 0), isnull(i_category_id#163), 100), ENSURE_REQUIREMENTS, [plan_id=148] +Input [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: hashpartitioning(coalesce(i_brand_id#162, 0), isnull(i_brand_id#162), coalesce(i_class_id#163, 0), isnull(i_class_id#163), coalesce(i_category_id#164, 0), isnull(i_category_id#164), 100), ENSURE_REQUIREMENTS, [plan_id=148] (803) Sort -Input [3]: [i_brand_id#161, i_class_id#162, i_category_id#163] -Arguments: [coalesce(i_brand_id#161, 0) ASC NULLS FIRST, isnull(i_brand_id#161) ASC NULLS FIRST, coalesce(i_class_id#162, 0) ASC NULLS FIRST, isnull(i_class_id#162) ASC NULLS FIRST, coalesce(i_category_id#163, 0) ASC NULLS FIRST, isnull(i_category_id#163) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#162, i_class_id#163, i_category_id#164] +Arguments: [coalesce(i_brand_id#162, 0) ASC NULLS FIRST, isnull(i_brand_id#162) ASC NULLS FIRST, coalesce(i_class_id#163, 0) ASC NULLS FIRST, isnull(i_class_id#163) ASC NULLS FIRST, coalesce(i_category_id#164, 0) ASC NULLS FIRST, isnull(i_category_id#164) ASC NULLS FIRST], false, 0 (804) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#155, 0), isnull(i_brand_id#155), coalesce(i_class_id#156, 0), isnull(i_class_id#156), coalesce(i_category_id#157, 0), isnull(i_category_id#157)] -Right keys [6]: [coalesce(i_brand_id#161, 0), isnull(i_brand_id#161), coalesce(i_class_id#162, 0), isnull(i_class_id#162), coalesce(i_category_id#163, 0), isnull(i_category_id#163)] +Left keys [6]: [coalesce(i_brand_id#156, 0), isnull(i_brand_id#156), coalesce(i_class_id#157, 0), isnull(i_class_id#157), coalesce(i_category_id#158, 0), isnull(i_category_id#158)] +Right keys [6]: [coalesce(i_brand_id#162, 0), isnull(i_brand_id#162), coalesce(i_class_id#163, 0), isnull(i_class_id#163), coalesce(i_category_id#164, 0), isnull(i_category_id#164)] Join type: LeftSemi Join condition: None (805) Exchange -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(i_item_sk#154, 100), ENSURE_REQUIREMENTS, [plan_id=149] +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(i_item_sk#155, 100), ENSURE_REQUIREMENTS, [plan_id=149] (806) Sort -Input [4]: [i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [i_item_sk#154 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [i_item_sk#155 ASC NULLS FIRST], false, 0 (807) SortMergeJoin -Left keys [1]: [ss_item_sk#153] -Right keys [1]: [i_item_sk#154] +Left keys [1]: [ss_item_sk#154] +Right keys [1]: [i_item_sk#155] Join type: Inner Join condition: None (808) Project -Output [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Input [6]: [ss_sold_date_sk#152, ss_item_sk#153, i_item_sk#154, i_brand_id#155, i_class_id#156, i_category_id#157] +Output [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Input [6]: [ss_sold_date_sk#153, ss_item_sk#154, i_item_sk#155, i_brand_id#156, i_class_id#157, i_category_id#158] (809) Exchange -Input [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: hashpartitioning(ss_sold_date_sk#152, 100), ENSURE_REQUIREMENTS, [plan_id=150] +Input [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: hashpartitioning(ss_sold_date_sk#153, 100), ENSURE_REQUIREMENTS, [plan_id=150] (810) Sort -Input [4]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157] -Arguments: [ss_sold_date_sk#152 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158] +Arguments: [ss_sold_date_sk#153 ASC NULLS FIRST], false, 0 (811) Scan parquet -Output [2]: [d_date_sk#166, d_year#167] +Output [2]: [d_date_sk#167, d_year#168] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (812) Filter -Input [2]: [d_date_sk#166, d_year#167] -Condition : (((isnotnull(d_year#167) AND (d_year#167 >= 1999)) AND (d_year#167 <= 2001)) AND isnotnull(d_date_sk#166)) +Input [2]: [d_date_sk#167, d_year#168] +Condition : (((isnotnull(d_year#168) AND (d_year#168 >= 1999)) AND (d_year#168 <= 2001)) AND isnotnull(d_date_sk#167)) (813) Project -Output [1]: [d_date_sk#166] -Input [2]: [d_date_sk#166, d_year#167] +Output [1]: [d_date_sk#167] +Input [2]: [d_date_sk#167, d_year#168] (814) Exchange -Input [1]: [d_date_sk#166] -Arguments: hashpartitioning(d_date_sk#166, 100), ENSURE_REQUIREMENTS, [plan_id=151] +Input [1]: [d_date_sk#167] +Arguments: hashpartitioning(d_date_sk#167, 100), ENSURE_REQUIREMENTS, [plan_id=151] (815) Sort -Input [1]: [d_date_sk#166] -Arguments: [d_date_sk#166 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#167] +Arguments: [d_date_sk#167 ASC NULLS FIRST], false, 0 (816) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#152] -Right keys [1]: [d_date_sk#166] +Left keys [1]: [ss_sold_date_sk#153] +Right keys [1]: [d_date_sk#167] Join type: Inner Join condition: None (817) Project -Output [3]: [i_brand_id#155 AS brand_id#24, i_class_id#156 AS class_id#25, i_category_id#157 AS category_id#26] -Input [5]: [ss_sold_date_sk#152, i_brand_id#155, i_class_id#156, i_category_id#157, d_date_sk#166] +Output [3]: [i_brand_id#156 AS brand_id#24, i_class_id#157 AS class_id#25, i_category_id#158 AS category_id#26] +Input [5]: [ss_sold_date_sk#153, i_brand_id#156, i_class_id#157, i_category_id#158, d_date_sk#167] (818) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -4577,105 +4577,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (823) Scan parquet -Output [2]: [ws_sold_date_sk#168, ws_item_sk#169] +Output [2]: [ws_sold_date_sk#169, ws_item_sk#170] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (824) Filter -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Condition : (isnotnull(ws_item_sk#169) AND isnotnull(ws_sold_date_sk#168)) +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Condition : (isnotnull(ws_item_sk#170) AND isnotnull(ws_sold_date_sk#169)) (825) Exchange -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Arguments: hashpartitioning(ws_item_sk#169, 100), ENSURE_REQUIREMENTS, [plan_id=154] +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Arguments: hashpartitioning(ws_item_sk#170, 100), ENSURE_REQUIREMENTS, [plan_id=154] (826) Sort -Input [2]: [ws_sold_date_sk#168, ws_item_sk#169] -Arguments: [ws_item_sk#169 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#169, ws_item_sk#170] +Arguments: [ws_item_sk#170 ASC NULLS FIRST], false, 0 (827) Scan parquet -Output [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] +Output [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (828) Filter -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Condition : isnotnull(i_item_sk#170) +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Condition : isnotnull(i_item_sk#171) (829) Exchange -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(i_item_sk#170, 100), ENSURE_REQUIREMENTS, [plan_id=155] +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(i_item_sk#171, 100), ENSURE_REQUIREMENTS, [plan_id=155] (830) Sort -Input [4]: [i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [i_item_sk#170 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [i_item_sk#171 ASC NULLS FIRST], false, 0 (831) SortMergeJoin -Left keys [1]: [ws_item_sk#169] -Right keys [1]: [i_item_sk#170] +Left keys [1]: [ws_item_sk#170] +Right keys [1]: [i_item_sk#171] Join type: Inner Join condition: None (832) Project -Output [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Input [6]: [ws_sold_date_sk#168, ws_item_sk#169, i_item_sk#170, i_brand_id#171, i_class_id#172, i_category_id#173] +Output [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Input [6]: [ws_sold_date_sk#169, ws_item_sk#170, i_item_sk#171, i_brand_id#172, i_class_id#173, i_category_id#174] (833) Exchange -Input [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(ws_sold_date_sk#168, 100), ENSURE_REQUIREMENTS, [plan_id=156] +Input [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(ws_sold_date_sk#169, 100), ENSURE_REQUIREMENTS, [plan_id=156] (834) Sort -Input [4]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [ws_sold_date_sk#168 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [ws_sold_date_sk#169 ASC NULLS FIRST], false, 0 (835) Scan parquet -Output [2]: [d_date_sk#174, d_year#175] +Output [2]: [d_date_sk#175, d_year#176] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (836) Filter -Input [2]: [d_date_sk#174, d_year#175] -Condition : (((isnotnull(d_year#175) AND (d_year#175 >= 1999)) AND (d_year#175 <= 2001)) AND isnotnull(d_date_sk#174)) +Input [2]: [d_date_sk#175, d_year#176] +Condition : (((isnotnull(d_year#176) AND (d_year#176 >= 1999)) AND (d_year#176 <= 2001)) AND isnotnull(d_date_sk#175)) (837) Project -Output [1]: [d_date_sk#174] -Input [2]: [d_date_sk#174, d_year#175] +Output [1]: [d_date_sk#175] +Input [2]: [d_date_sk#175, d_year#176] (838) Exchange -Input [1]: [d_date_sk#174] -Arguments: hashpartitioning(d_date_sk#174, 100), ENSURE_REQUIREMENTS, [plan_id=157] +Input [1]: [d_date_sk#175] +Arguments: hashpartitioning(d_date_sk#175, 100), ENSURE_REQUIREMENTS, [plan_id=157] (839) Sort -Input [1]: [d_date_sk#174] -Arguments: [d_date_sk#174 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#175] +Arguments: [d_date_sk#175 ASC NULLS FIRST], false, 0 (840) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#168] -Right keys [1]: [d_date_sk#174] +Left keys [1]: [ws_sold_date_sk#169] +Right keys [1]: [d_date_sk#175] Join type: Inner Join condition: None (841) Project -Output [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Input [5]: [ws_sold_date_sk#168, i_brand_id#171, i_class_id#172, i_category_id#173, d_date_sk#174] +Output [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Input [5]: [ws_sold_date_sk#169, i_brand_id#172, i_class_id#173, i_category_id#174, d_date_sk#175] (842) Exchange -Input [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: hashpartitioning(coalesce(i_brand_id#171, 0), isnull(i_brand_id#171), coalesce(i_class_id#172, 0), isnull(i_class_id#172), coalesce(i_category_id#173, 0), isnull(i_category_id#173), 100), ENSURE_REQUIREMENTS, [plan_id=158] +Input [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: hashpartitioning(coalesce(i_brand_id#172, 0), isnull(i_brand_id#172), coalesce(i_class_id#173, 0), isnull(i_class_id#173), coalesce(i_category_id#174, 0), isnull(i_category_id#174), 100), ENSURE_REQUIREMENTS, [plan_id=158] (843) Sort -Input [3]: [i_brand_id#171, i_class_id#172, i_category_id#173] -Arguments: [coalesce(i_brand_id#171, 0) ASC NULLS FIRST, isnull(i_brand_id#171) ASC NULLS FIRST, coalesce(i_class_id#172, 0) ASC NULLS FIRST, isnull(i_class_id#172) ASC NULLS FIRST, coalesce(i_category_id#173, 0) ASC NULLS FIRST, isnull(i_category_id#173) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#172, i_class_id#173, i_category_id#174] +Arguments: [coalesce(i_brand_id#172, 0) ASC NULLS FIRST, isnull(i_brand_id#172) ASC NULLS FIRST, coalesce(i_class_id#173, 0) ASC NULLS FIRST, isnull(i_class_id#173) ASC NULLS FIRST, coalesce(i_category_id#174, 0) ASC NULLS FIRST, isnull(i_category_id#174) ASC NULLS FIRST], false, 0 (844) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#171, 0), isnull(i_brand_id#171), coalesce(i_class_id#172, 0), isnull(i_class_id#172), coalesce(i_category_id#173, 0), isnull(i_category_id#173)] +Right keys [6]: [coalesce(i_brand_id#172, 0), isnull(i_brand_id#172), coalesce(i_class_id#173, 0), isnull(i_class_id#173), coalesce(i_category_id#174, 0), isnull(i_category_id#174)] Join type: LeftSemi Join condition: None @@ -4688,141 +4688,141 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (847) SortMergeJoin -Left keys [3]: [i_brand_id#149, i_class_id#150, i_category_id#151] +Left keys [3]: [i_brand_id#150, i_class_id#151, i_category_id#152] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (848) Project -Output [1]: [i_item_sk#148 AS ss_item_sk#80] -Input [7]: [i_item_sk#148, i_brand_id#149, i_class_id#150, i_category_id#151, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#149 AS ss_item_sk#81] +Input [7]: [i_item_sk#149, i_brand_id#150, i_class_id#151, i_category_id#152, brand_id#24, class_id#25, category_id#26] (849) Exchange -Input [1]: [ss_item_sk#80] -Arguments: hashpartitioning(ss_item_sk#80, 100), ENSURE_REQUIREMENTS, [plan_id=160] +Input [1]: [ss_item_sk#81] +Arguments: hashpartitioning(ss_item_sk#81, 100), ENSURE_REQUIREMENTS, [plan_id=160] (850) Sort -Input [1]: [ss_item_sk#80] -Arguments: [ss_item_sk#80 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#81] +Arguments: [ss_item_sk#81 ASC NULLS FIRST], false, 0 (851) SortMergeJoin -Left keys [1]: [i_item_sk#81] -Right keys [1]: [ss_item_sk#80] +Left keys [1]: [i_item_sk#82] +Right keys [1]: [ss_item_sk#81] Join type: LeftSemi Join condition: None (852) SortMergeJoin -Left keys [1]: [ws_item_sk#77] -Right keys [1]: [i_item_sk#81] +Left keys [1]: [ws_item_sk#78] +Right keys [1]: [i_item_sk#82] Join type: Inner Join condition: None (853) Project -Output [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [8]: [ws_sold_date_sk#76, ws_item_sk#77, ws_quantity#78, ws_list_price#79, i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Output [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [8]: [ws_sold_date_sk#77, ws_item_sk#78, ws_quantity#79, ws_list_price#80, i_item_sk#82, i_brand_id#83, i_class_id#84, i_category_id#85] (854) Exchange -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: hashpartitioning(ws_sold_date_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=161] +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: hashpartitioning(ws_sold_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=161] (855) Sort -Input [6]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Arguments: [ws_sold_date_sk#76 ASC NULLS FIRST], false, 0 +Input [6]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Arguments: [ws_sold_date_sk#77 ASC NULLS FIRST], false, 0 (856) Scan parquet -Output [3]: [d_date_sk#85, d_year#176, d_moy#177] +Output [3]: [d_date_sk#86, d_year#177, d_moy#178] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,11), IsNotNull(d_date_sk)] ReadSchema: struct (857) Filter -Input [3]: [d_date_sk#85, d_year#176, d_moy#177] -Condition : ((((isnotnull(d_year#176) AND isnotnull(d_moy#177)) AND (d_year#176 = 2001)) AND (d_moy#177 = 11)) AND isnotnull(d_date_sk#85)) +Input [3]: [d_date_sk#86, d_year#177, d_moy#178] +Condition : ((((isnotnull(d_year#177) AND isnotnull(d_moy#178)) AND (d_year#177 = 2001)) AND (d_moy#178 = 11)) AND isnotnull(d_date_sk#86)) (858) Project -Output [1]: [d_date_sk#85] -Input [3]: [d_date_sk#85, d_year#176, d_moy#177] +Output [1]: [d_date_sk#86] +Input [3]: [d_date_sk#86, d_year#177, d_moy#178] (859) Exchange -Input [1]: [d_date_sk#85] -Arguments: hashpartitioning(d_date_sk#85, 100), ENSURE_REQUIREMENTS, [plan_id=162] +Input [1]: [d_date_sk#86] +Arguments: hashpartitioning(d_date_sk#86, 100), ENSURE_REQUIREMENTS, [plan_id=162] (860) Sort -Input [1]: [d_date_sk#85] -Arguments: [d_date_sk#85 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#86] +Arguments: [d_date_sk#86 ASC NULLS FIRST], false, 0 (861) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#76] -Right keys [1]: [d_date_sk#85] +Left keys [1]: [ws_sold_date_sk#77] +Right keys [1]: [d_date_sk#86] Join type: Inner Join condition: None (862) Project -Output [5]: [ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [7]: [ws_sold_date_sk#76, ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84, d_date_sk#85] +Output [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [7]: [ws_sold_date_sk#77, ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85, d_date_sk#86] (863) HashAggregate -Input [5]: [ws_quantity#78, ws_list_price#79, i_brand_id#82, i_class_id#83, i_category_id#84] -Keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] -Functions [2]: [partial_sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79)), partial_count(1)] -Aggregate Attributes [3]: [sum#87, isEmpty#88, count#89] -Results [6]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum#178, isEmpty#179, count#180] +Input [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#83, i_class_id#84, i_category_id#85] +Keys [3]: [i_brand_id#83, i_class_id#84, i_category_id#85] +Functions [2]: [partial_sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80)), partial_count(1)] +Aggregate Attributes [3]: [sum#88, isEmpty#89, count#90] +Results [6]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum#179, isEmpty#180, count#181] (864) Exchange -Input [6]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum#178, isEmpty#179, count#180] -Arguments: hashpartitioning(i_brand_id#82, i_class_id#83, i_category_id#84, 100), ENSURE_REQUIREMENTS, [plan_id=163] +Input [6]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum#179, isEmpty#180, count#181] +Arguments: hashpartitioning(i_brand_id#83, i_class_id#84, i_category_id#85, 100), ENSURE_REQUIREMENTS, [plan_id=163] (865) HashAggregate -Input [6]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum#178, isEmpty#179, count#180] -Keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] -Functions [2]: [sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79)), count(1)] -Aggregate Attributes [2]: [sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90, count(1)#91] -Results [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sum((cast(ws_quantity#78 as decimal(10,0)) * ws_list_price#79))#90 AS sales#92, count(1)#91 AS number_sales#93] +Input [6]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum#179, isEmpty#180, count#181] +Keys [3]: [i_brand_id#83, i_class_id#84, i_category_id#85] +Functions [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80)), count(1)] +Aggregate Attributes [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91, count(1)#92] +Results [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#91 AS sales#93, count(1)#92 AS number_sales#94] (866) Filter -Input [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sales#92, number_sales#93] -Condition : (isnotnull(sales#92) AND (cast(sales#92 as decimal(32,6)) > cast(Subquery subquery#181, [id=#182] as decimal(32,6)))) +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sales#93, number_sales#94] +Condition : (isnotnull(sales#93) AND (cast(sales#93 as decimal(32,6)) > cast(Subquery subquery#182, [id=#183] as decimal(32,6)))) (867) Project -Output [6]: [sales#92, number_sales#93, web AS channel#94, i_brand_id#82, i_class_id#83, i_category_id#84] -Input [5]: [i_brand_id#82, i_class_id#83, i_category_id#84, sales#92, number_sales#93] +Output [6]: [sales#93, number_sales#94, web AS channel#95, i_brand_id#83, i_class_id#84, i_category_id#85] +Input [5]: [i_brand_id#83, i_class_id#84, i_category_id#85, sales#93, number_sales#94] (868) Union (869) Expand -Input [6]: [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56] -Arguments: [[sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56, 0], [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, null, 1], [sales#49, number_sales#50, channel#53, i_brand_id#54, null, null, 3], [sales#49, number_sales#50, channel#53, null, null, null, 7], [sales#49, number_sales#50, null, null, null, null, 15]], [sales#49, number_sales#50, channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] +Input [6]: [sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, i_category_id#57] +Arguments: [[sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, i_category_id#57, 0], [sales#50, number_sales#51, channel#54, i_brand_id#55, i_class_id#56, null, 1], [sales#50, number_sales#51, channel#54, i_brand_id#55, null, null, 3], [sales#50, number_sales#51, channel#54, null, null, null, 7], [sales#50, number_sales#51, null, null, null, null, 15]], [sales#50, number_sales#51, channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] (870) HashAggregate -Input [7]: [sales#49, number_sales#50, channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Keys [5]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Functions [2]: [partial_sum(sales#49), partial_sum(number_sales#50)] -Aggregate Attributes [3]: [sum#101, isEmpty#102, sum#103] -Results [8]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, sum#183, isEmpty#184, sum#185] +Input [7]: [sales#50, number_sales#51, channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Keys [5]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Functions [2]: [partial_sum(sales#50), partial_sum(number_sales#51)] +Aggregate Attributes [3]: [sum#102, isEmpty#103, sum#104] +Results [8]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, sum#184, isEmpty#185, sum#186] (871) Exchange -Input [8]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, sum#183, isEmpty#184, sum#185] -Arguments: hashpartitioning(channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, 100), ENSURE_REQUIREMENTS, [plan_id=164] +Input [8]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, sum#184, isEmpty#185, sum#186] +Arguments: hashpartitioning(channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, 100), ENSURE_REQUIREMENTS, [plan_id=164] (872) HashAggregate -Input [8]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100, sum#183, isEmpty#184, sum#185] -Keys [5]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, spark_grouping_id#100] -Functions [2]: [sum(sales#49), sum(number_sales#50)] -Aggregate Attributes [2]: [sum(sales#49)#104, sum(number_sales#50)#105] -Results [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales#49)#104 AS sum(sales)#106, sum(number_sales#50)#105 AS sum(number_sales)#107] +Input [8]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101, sum#184, isEmpty#185, sum#186] +Keys [5]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, spark_grouping_id#101] +Functions [2]: [sum(sales#50), sum(number_sales#51)] +Aggregate Attributes [2]: [sum(sales#50)#105, sum(number_sales#51)#106] +Results [6]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales#50)#105 AS sum(sales)#107, sum(number_sales#51)#106 AS sum(number_sales)#108] (873) TakeOrderedAndProject -Input [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales)#106, sum(number_sales)#107] -Arguments: X, [channel#96 ASC NULLS FIRST, i_brand_id#97 ASC NULLS FIRST, i_class_id#98 ASC NULLS FIRST, i_category_id#99 ASC NULLS FIRST], [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales)#106, sum(number_sales)#107] +Input [6]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales)#107, sum(number_sales)#108] +Arguments: X, [channel#97 ASC NULLS FIRST, i_brand_id#98 ASC NULLS FIRST, i_class_id#99 ASC NULLS FIRST, i_category_id#100 ASC NULLS FIRST], [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales)#107, sum(number_sales)#108] (874) AdaptiveSparkPlan -Output [6]: [channel#96, i_brand_id#97, i_class_id#98, i_category_id#99, sum(sales)#106, sum(number_sales)#107] +Output [6]: [channel#97, i_brand_id#98, i_class_id#99, i_category_id#100, sum(sales)#107, sum(number_sales)#108] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 191 Hosting Expression = Subquery subquery#51, [id=#52] +Subquery:1 Hosting operator id = 191 Hosting Expression = Subquery subquery#52, [id=#53] AdaptiveSparkPlan (968) +- == Final Plan == NativeProject (930) @@ -4922,422 +4922,422 @@ AdaptiveSparkPlan (968) (931) Scan parquet -Output [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] +Output [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk)] ReadSchema: struct (876) InputAdapter -Input [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] -Arguments: [#186, #187, #188] +Input [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] +Arguments: [#187, #188, #189] (877) NativeFilter -Input [3]: [#186#186, #187#187, #188#188] -Condition : isnotnull(ss_sold_date_sk#186) +Input [3]: [#187#187, #188#188, #189#189] +Condition : isnotnull(ss_sold_date_sk#187) (878) NativeShuffleExchange -Input [3]: [#186#186, #187#187, #188#188] -Arguments: hashpartitioning(ss_sold_date_sk#186, 100), ENSURE_REQUIREMENTS, [plan_id=165] +Input [3]: [#187#187, #188#188, #189#189] +Arguments: hashpartitioning(ss_sold_date_sk#187, 100), ENSURE_REQUIREMENTS, [plan_id=165] (879) ShuffleQueryStage -Output [3]: [#186#186, #187#187, #188#188] +Output [3]: [#187#187, #188#188, #189#189] Arguments: X (880) AQEShuffleRead -Input [3]: [#186#186, #187#187, #188#188] +Input [3]: [#187#187, #188#188, #189#189] Arguments: coalesced (881) InputAdapter -Input [3]: [#186#186, #187#187, #188#188] +Input [3]: [#187#187, #188#188, #189#189] (882) NativeSort -Input [3]: [#186#186, #187#187, #188#188] -Arguments: [ss_sold_date_sk#186 ASC NULLS FIRST], false +Input [3]: [#187#187, #188#188, #189#189] +Arguments: [ss_sold_date_sk#187 ASC NULLS FIRST], false (883) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#189] +Output [1]: [d_date_sk#190] (884) ShuffleQueryStage -Output [1]: [d_date_sk#189] +Output [1]: [d_date_sk#190] Arguments: X (885) AQEShuffleRead -Input [1]: [d_date_sk#189] +Input [1]: [d_date_sk#190] Arguments: coalesced (886) InputAdapter -Input [1]: [d_date_sk#189] -Arguments: [#189] +Input [1]: [d_date_sk#190] +Arguments: [#190] (887) InputAdapter -Input [1]: [#189#189] +Input [1]: [#190#190] (888) NativeSort -Input [1]: [#189#189] -Arguments: [d_date_sk#189 ASC NULLS FIRST], false +Input [1]: [#190#190] +Arguments: [d_date_sk#190 ASC NULLS FIRST], false (889) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#186] -Right keys [1]: [d_date_sk#189] +Left keys [1]: [ss_sold_date_sk#187] +Right keys [1]: [d_date_sk#190] Join type: Inner Join condition: None (890) NativeProject -Output [2]: [ss_quantity#187 AS quantity#190, ss_list_price#188 AS list_price#191] -Input [4]: [#186#186, #187#187, #188#188, #189#189] +Output [2]: [ss_quantity#188 AS quantity#191, ss_list_price#189 AS list_price#192] +Input [4]: [#187#187, #188#188, #189#189, #190#190] (942) Scan parquet -Output [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] +Output [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (892) InputAdapter -Input [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] -Arguments: [#192, #193, #194] +Input [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] +Arguments: [#193, #194, #195] (893) NativeFilter -Input [3]: [#192#192, #193#193, #194#194] -Condition : isnotnull(cs_sold_date_sk#192) +Input [3]: [#193#193, #194#194, #195#195] +Condition : isnotnull(cs_sold_date_sk#193) (894) NativeShuffleExchange -Input [3]: [#192#192, #193#193, #194#194] -Arguments: hashpartitioning(cs_sold_date_sk#192, 100), ENSURE_REQUIREMENTS, [plan_id=166] +Input [3]: [#193#193, #194#194, #195#195] +Arguments: hashpartitioning(cs_sold_date_sk#193, 100), ENSURE_REQUIREMENTS, [plan_id=166] (895) ShuffleQueryStage -Output [3]: [#192#192, #193#193, #194#194] +Output [3]: [#193#193, #194#194, #195#195] Arguments: X (896) AQEShuffleRead -Input [3]: [#192#192, #193#193, #194#194] +Input [3]: [#193#193, #194#194, #195#195] Arguments: coalesced (897) InputAdapter -Input [3]: [#192#192, #193#193, #194#194] +Input [3]: [#193#193, #194#194, #195#195] (898) NativeSort -Input [3]: [#192#192, #193#193, #194#194] -Arguments: [cs_sold_date_sk#192 ASC NULLS FIRST], false +Input [3]: [#193#193, #194#194, #195#195] +Arguments: [cs_sold_date_sk#193 ASC NULLS FIRST], false (899) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#195] +Output [1]: [d_date_sk#196] (900) ShuffleQueryStage -Output [1]: [d_date_sk#195] +Output [1]: [d_date_sk#196] Arguments: X (901) AQEShuffleRead -Input [1]: [d_date_sk#195] +Input [1]: [d_date_sk#196] Arguments: coalesced (902) InputAdapter -Input [1]: [d_date_sk#195] -Arguments: [#195] +Input [1]: [d_date_sk#196] +Arguments: [#196] (903) InputAdapter -Input [1]: [#195#195] +Input [1]: [#196#196] (904) NativeSort -Input [1]: [#195#195] -Arguments: [d_date_sk#195 ASC NULLS FIRST], false +Input [1]: [#196#196] +Arguments: [d_date_sk#196 ASC NULLS FIRST], false (905) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#192] -Right keys [1]: [d_date_sk#195] +Left keys [1]: [cs_sold_date_sk#193] +Right keys [1]: [d_date_sk#196] Join type: Inner Join condition: None (906) NativeProject -Output [2]: [cs_quantity#193 AS quantity#196, cs_list_price#194 AS list_price#197] -Input [4]: [#192#192, #193#193, #194#194, #195#195] +Output [2]: [cs_quantity#194 AS quantity#197, cs_list_price#195 AS list_price#198] +Input [4]: [#193#193, #194#194, #195#195, #196#196] (953) Scan parquet -Output [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] +Output [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (908) InputAdapter -Input [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] -Arguments: [#198, #199, #200] +Input [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] +Arguments: [#199, #200, #201] (909) NativeFilter -Input [3]: [#198#198, #199#199, #200#200] -Condition : isnotnull(ws_sold_date_sk#198) +Input [3]: [#199#199, #200#200, #201#201] +Condition : isnotnull(ws_sold_date_sk#199) (910) NativeShuffleExchange -Input [3]: [#198#198, #199#199, #200#200] -Arguments: hashpartitioning(ws_sold_date_sk#198, 100), ENSURE_REQUIREMENTS, [plan_id=167] +Input [3]: [#199#199, #200#200, #201#201] +Arguments: hashpartitioning(ws_sold_date_sk#199, 100), ENSURE_REQUIREMENTS, [plan_id=167] (911) ShuffleQueryStage -Output [3]: [#198#198, #199#199, #200#200] +Output [3]: [#199#199, #200#200, #201#201] Arguments: X (912) AQEShuffleRead -Input [3]: [#198#198, #199#199, #200#200] +Input [3]: [#199#199, #200#200, #201#201] Arguments: coalesced (913) InputAdapter -Input [3]: [#198#198, #199#199, #200#200] +Input [3]: [#199#199, #200#200, #201#201] (914) NativeSort -Input [3]: [#198#198, #199#199, #200#200] -Arguments: [ws_sold_date_sk#198 ASC NULLS FIRST], false +Input [3]: [#199#199, #200#200, #201#201] +Arguments: [ws_sold_date_sk#199 ASC NULLS FIRST], false (915) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#201] +Output [1]: [d_date_sk#202] (916) ShuffleQueryStage -Output [1]: [d_date_sk#201] +Output [1]: [d_date_sk#202] Arguments: X (917) AQEShuffleRead -Input [1]: [d_date_sk#201] +Input [1]: [d_date_sk#202] Arguments: coalesced (918) InputAdapter -Input [1]: [d_date_sk#201] -Arguments: [#201] +Input [1]: [d_date_sk#202] +Arguments: [#202] (919) InputAdapter -Input [1]: [#201#201] +Input [1]: [#202#202] (920) NativeSort -Input [1]: [#201#201] -Arguments: [d_date_sk#201 ASC NULLS FIRST], false +Input [1]: [#202#202] +Arguments: [d_date_sk#202 ASC NULLS FIRST], false (921) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#198] -Right keys [1]: [d_date_sk#201] +Left keys [1]: [ws_sold_date_sk#199] +Right keys [1]: [d_date_sk#202] Join type: Inner Join condition: None (922) NativeProject -Output [2]: [ws_quantity#199 AS quantity#202, ws_list_price#200 AS list_price#203] -Input [4]: [#198#198, #199#199, #200#200, #201#201] +Output [2]: [ws_quantity#200 AS quantity#203, ws_list_price#201 AS list_price#204] +Input [4]: [#199#199, #200#200, #201#201, #202#202] (923) NativeUnion -Arguments: [quantity#190, list_price#191] +Arguments: [quantity#191, list_price#192] (924) InputAdapter -Input [2]: [quantity#190, list_price#191] -Arguments: [#190, #191] +Input [2]: [quantity#191, list_price#192] +Arguments: [#191, #192] (925) NativeProject -Output [1]: [(cast(quantity#190 as decimal(10,0)) * list_price#191) AS _c0#204] -Input [2]: [#190#190, #191#191] +Output [1]: [(cast(quantity#191 as decimal(10,0)) * list_price#192) AS _c0#205] +Input [2]: [#191#191, #192#192] (926) NativeHashAggregate -Input [1]: [_c0#204] +Input [1]: [_c0#205] Keys: [] -Functions [1]: [partial_avg(_c0#204)] -Aggregate Attributes [2]: [sum#205, count#206] -Results [1]: [#27#27] +Functions [1]: [partial_avg(_c0#205)] +Aggregate Attributes [2]: [sum#206, count#207] +Results [2]: [#46, #47] (927) NativeShuffleExchange -Input [1]: [#27#27] +Input [2]: [#46, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=168] (928) ShuffleQueryStage -Output [1]: [#27#27] +Output [2]: [#46, #47] Arguments: X (929) NativeHashAggregate -Input [1]: [#27#27] +Input [2]: [#46, #47] Keys: [] -Functions [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))] -Aggregate Attributes [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207] -Results [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207] +Functions [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))] +Aggregate Attributes [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208] +Results [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208] (930) NativeProject -Output [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207 AS average_sales#208] -Input [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207] +Output [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208 AS average_sales#209] +Input [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208] (931) Scan parquet -Output [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] +Output [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk)] ReadSchema: struct (932) Filter -Input [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] -Condition : isnotnull(ss_sold_date_sk#186) +Input [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] +Condition : isnotnull(ss_sold_date_sk#187) (933) Exchange -Input [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] -Arguments: hashpartitioning(ss_sold_date_sk#186, 100), ENSURE_REQUIREMENTS, [plan_id=169] +Input [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] +Arguments: hashpartitioning(ss_sold_date_sk#187, 100), ENSURE_REQUIREMENTS, [plan_id=169] (934) Sort -Input [3]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188] -Arguments: [ss_sold_date_sk#186 ASC NULLS FIRST], false, 0 +Input [3]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189] +Arguments: [ss_sold_date_sk#187 ASC NULLS FIRST], false, 0 (935) Scan parquet -Output [2]: [d_date_sk#189, d_year#209] +Output [2]: [d_date_sk#190, d_year#210] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (936) Filter -Input [2]: [d_date_sk#189, d_year#209] -Condition : (((isnotnull(d_year#209) AND (d_year#209 >= 1999)) AND (d_year#209 <= 2001)) AND isnotnull(d_date_sk#189)) +Input [2]: [d_date_sk#190, d_year#210] +Condition : (((isnotnull(d_year#210) AND (d_year#210 >= 1999)) AND (d_year#210 <= 2001)) AND isnotnull(d_date_sk#190)) (937) Project -Output [1]: [d_date_sk#189] -Input [2]: [d_date_sk#189, d_year#209] +Output [1]: [d_date_sk#190] +Input [2]: [d_date_sk#190, d_year#210] (938) Exchange -Input [1]: [d_date_sk#189] -Arguments: hashpartitioning(d_date_sk#189, 100), ENSURE_REQUIREMENTS, [plan_id=170] +Input [1]: [d_date_sk#190] +Arguments: hashpartitioning(d_date_sk#190, 100), ENSURE_REQUIREMENTS, [plan_id=170] (939) Sort -Input [1]: [d_date_sk#189] -Arguments: [d_date_sk#189 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#190] +Arguments: [d_date_sk#190 ASC NULLS FIRST], false, 0 (940) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#186] -Right keys [1]: [d_date_sk#189] +Left keys [1]: [ss_sold_date_sk#187] +Right keys [1]: [d_date_sk#190] Join type: Inner Join condition: None (941) Project -Output [2]: [ss_quantity#187 AS quantity#190, ss_list_price#188 AS list_price#191] -Input [4]: [ss_sold_date_sk#186, ss_quantity#187, ss_list_price#188, d_date_sk#189] +Output [2]: [ss_quantity#188 AS quantity#191, ss_list_price#189 AS list_price#192] +Input [4]: [ss_sold_date_sk#187, ss_quantity#188, ss_list_price#189, d_date_sk#190] (942) Scan parquet -Output [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] +Output [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (943) Filter -Input [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] -Condition : isnotnull(cs_sold_date_sk#192) +Input [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] +Condition : isnotnull(cs_sold_date_sk#193) (944) Exchange -Input [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] -Arguments: hashpartitioning(cs_sold_date_sk#192, 100), ENSURE_REQUIREMENTS, [plan_id=171] +Input [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] +Arguments: hashpartitioning(cs_sold_date_sk#193, 100), ENSURE_REQUIREMENTS, [plan_id=171] (945) Sort -Input [3]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194] -Arguments: [cs_sold_date_sk#192 ASC NULLS FIRST], false, 0 +Input [3]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195] +Arguments: [cs_sold_date_sk#193 ASC NULLS FIRST], false, 0 (946) Scan parquet -Output [2]: [d_date_sk#195, d_year#210] +Output [2]: [d_date_sk#196, d_year#211] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (947) Filter -Input [2]: [d_date_sk#195, d_year#210] -Condition : (((isnotnull(d_year#210) AND (d_year#210 >= 1999)) AND (d_year#210 <= 2001)) AND isnotnull(d_date_sk#195)) +Input [2]: [d_date_sk#196, d_year#211] +Condition : (((isnotnull(d_year#211) AND (d_year#211 >= 1999)) AND (d_year#211 <= 2001)) AND isnotnull(d_date_sk#196)) (948) Project -Output [1]: [d_date_sk#195] -Input [2]: [d_date_sk#195, d_year#210] +Output [1]: [d_date_sk#196] +Input [2]: [d_date_sk#196, d_year#211] (949) Exchange -Input [1]: [d_date_sk#195] -Arguments: hashpartitioning(d_date_sk#195, 100), ENSURE_REQUIREMENTS, [plan_id=172] +Input [1]: [d_date_sk#196] +Arguments: hashpartitioning(d_date_sk#196, 100), ENSURE_REQUIREMENTS, [plan_id=172] (950) Sort -Input [1]: [d_date_sk#195] -Arguments: [d_date_sk#195 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#196] +Arguments: [d_date_sk#196 ASC NULLS FIRST], false, 0 (951) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#192] -Right keys [1]: [d_date_sk#195] +Left keys [1]: [cs_sold_date_sk#193] +Right keys [1]: [d_date_sk#196] Join type: Inner Join condition: None (952) Project -Output [2]: [cs_quantity#193 AS quantity#196, cs_list_price#194 AS list_price#197] -Input [4]: [cs_sold_date_sk#192, cs_quantity#193, cs_list_price#194, d_date_sk#195] +Output [2]: [cs_quantity#194 AS quantity#197, cs_list_price#195 AS list_price#198] +Input [4]: [cs_sold_date_sk#193, cs_quantity#194, cs_list_price#195, d_date_sk#196] (953) Scan parquet -Output [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] +Output [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (954) Filter -Input [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] -Condition : isnotnull(ws_sold_date_sk#198) +Input [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] +Condition : isnotnull(ws_sold_date_sk#199) (955) Exchange -Input [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] -Arguments: hashpartitioning(ws_sold_date_sk#198, 100), ENSURE_REQUIREMENTS, [plan_id=173] +Input [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] +Arguments: hashpartitioning(ws_sold_date_sk#199, 100), ENSURE_REQUIREMENTS, [plan_id=173] (956) Sort -Input [3]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200] -Arguments: [ws_sold_date_sk#198 ASC NULLS FIRST], false, 0 +Input [3]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201] +Arguments: [ws_sold_date_sk#199 ASC NULLS FIRST], false, 0 (957) Scan parquet -Output [2]: [d_date_sk#201, d_year#211] +Output [2]: [d_date_sk#202, d_year#212] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (958) Filter -Input [2]: [d_date_sk#201, d_year#211] -Condition : (((isnotnull(d_year#211) AND (d_year#211 >= 1999)) AND (d_year#211 <= 2001)) AND isnotnull(d_date_sk#201)) +Input [2]: [d_date_sk#202, d_year#212] +Condition : (((isnotnull(d_year#212) AND (d_year#212 >= 1999)) AND (d_year#212 <= 2001)) AND isnotnull(d_date_sk#202)) (959) Project -Output [1]: [d_date_sk#201] -Input [2]: [d_date_sk#201, d_year#211] +Output [1]: [d_date_sk#202] +Input [2]: [d_date_sk#202, d_year#212] (960) Exchange -Input [1]: [d_date_sk#201] -Arguments: hashpartitioning(d_date_sk#201, 100), ENSURE_REQUIREMENTS, [plan_id=174] +Input [1]: [d_date_sk#202] +Arguments: hashpartitioning(d_date_sk#202, 100), ENSURE_REQUIREMENTS, [plan_id=174] (961) Sort -Input [1]: [d_date_sk#201] -Arguments: [d_date_sk#201 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#202] +Arguments: [d_date_sk#202 ASC NULLS FIRST], false, 0 (962) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#198] -Right keys [1]: [d_date_sk#201] +Left keys [1]: [ws_sold_date_sk#199] +Right keys [1]: [d_date_sk#202] Join type: Inner Join condition: None (963) Project -Output [2]: [ws_quantity#199 AS quantity#202, ws_list_price#200 AS list_price#203] -Input [4]: [ws_sold_date_sk#198, ws_quantity#199, ws_list_price#200, d_date_sk#201] +Output [2]: [ws_quantity#200 AS quantity#203, ws_list_price#201 AS list_price#204] +Input [4]: [ws_sold_date_sk#199, ws_quantity#200, ws_list_price#201, d_date_sk#202] (964) Union (965) HashAggregate -Input [2]: [quantity#190, list_price#191] +Input [2]: [quantity#191, list_price#192] Keys: [] -Functions [1]: [partial_avg((cast(quantity#190 as decimal(10,0)) * list_price#191))] -Aggregate Attributes [2]: [sum#205, count#206] -Results [2]: [sum#212, count#213] +Functions [1]: [partial_avg((cast(quantity#191 as decimal(10,0)) * list_price#192))] +Aggregate Attributes [2]: [sum#206, count#207] +Results [2]: [sum#213, count#214] (966) Exchange -Input [2]: [sum#212, count#213] +Input [2]: [sum#213, count#214] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=175] (967) HashAggregate -Input [2]: [sum#212, count#213] +Input [2]: [sum#213, count#214] Keys: [] -Functions [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))] -Aggregate Attributes [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207] -Results [1]: [avg((cast(quantity#190 as decimal(10,0)) * list_price#191))#207 AS average_sales#208] +Functions [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))] +Aggregate Attributes [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208] +Results [1]: [avg((cast(quantity#191 as decimal(10,0)) * list_price#192))#208 AS average_sales#209] (968) AdaptiveSparkPlan -Output [1]: [average_sales#208] +Output [1]: [average_sales#209] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 244 Hosting Expression = ReusedSubquery Subquery subquery#51, [id=#52] +Subquery:2 Hosting operator id = 244 Hosting Expression = ReusedSubquery Subquery subquery#52, [id=#53] -Subquery:3 Hosting operator id = 297 Hosting Expression = ReusedSubquery Subquery subquery#51, [id=#52] +Subquery:3 Hosting operator id = 297 Hosting Expression = ReusedSubquery Subquery subquery#52, [id=#53] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14b.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14b.txt index 4bd6eb61b..6b8911185 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14b.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q14b.txt @@ -993,33 +993,33 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Keys [3]: [brand_id#24, class_id#25, category_id#26] Functions: [] Aggregate Attributes: [] -Results [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Results [3]: [brand_id#24, class_id#25, category_id#26] (94) NativeShuffleExchange -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: hashpartitioning(brand_id#24, class_id#25, category_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=12] (95) ShuffleQueryStage -Output [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Output [3]: [brand_id#24, class_id#25, category_id#26] Arguments: X (96) AQEShuffleRead -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: coalesced (97) InputAdapter -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] (98) NativeHashAggregate -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] Keys [3]: [brand_id#24, class_id#25, category_id#26] Functions: [] Aggregate Attributes: [] -Results [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Results [3]: [brand_id#24, class_id#25, category_id#26] (99) NativeProject Output [3]: [brand_id#24, class_id#25, category_id#26] -Input [4]: [brand_id#24, class_id#25, category_id#26, #27#27] +Input [3]: [brand_id#24, class_id#25, category_id#26] (100) NativeShuffleExchange Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -1041,144 +1041,144 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false (281) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (106) InputAdapter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [#28, #29] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [#27, #28] (107) NativeFilter -Input [2]: [#28#28, #29#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [#27#27, #28#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (108) NativeShuffleExchange -Input [2]: [#28#28, #29#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [2]: [#27#27, #28#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=14] (109) ShuffleQueryStage -Output [2]: [#28#28, #29#29] +Output [2]: [#27#27, #28#28] Arguments: X (110) AQEShuffleRead -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] Arguments: coalesced (111) InputAdapter -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] (112) NativeSort -Input [2]: [#28#28, #29#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false +Input [2]: [#27#27, #28#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false (113) ReusedExchange [Reuses operator id: 44] -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (114) ShuffleQueryStage -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (115) AQEShuffleRead -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (116) InputAdapter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [#30, #31, #32, #33] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [#29, #30, #31, #32] (117) InputAdapter -Input [4]: [#30#30, #31#31, #32#32, #33#33] +Input [4]: [#29#29, #30#30, #31#31, #32#32] (118) NativeSort -Input [4]: [#30#30, #31#31, #32#32, #33#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false +Input [4]: [#29#29, #30#30, #31#31, #32#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false (119) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (120) NativeProject -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [#28#28, #29#29, #30#30, #31#31, #32#32, #33#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [#27#27, #28#28, #29#29, #30#30, #31#31, #32#32] (121) NativeShuffleExchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=15] (122) ShuffleQueryStage -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (123) AQEShuffleRead -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (124) InputAdapter -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] (125) NativeSort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false (126) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#34] +Output [1]: [d_date_sk#33] (127) ShuffleQueryStage -Output [1]: [d_date_sk#34] +Output [1]: [d_date_sk#33] Arguments: X (128) AQEShuffleRead -Input [1]: [d_date_sk#34] +Input [1]: [d_date_sk#33] Arguments: coalesced (129) InputAdapter -Input [1]: [d_date_sk#34] -Arguments: [#34] +Input [1]: [d_date_sk#33] +Arguments: [#33] (130) InputAdapter -Input [1]: [#34#34] +Input [1]: [#33#33] (131) NativeSort -Input [1]: [#34#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false +Input [1]: [#33#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false (132) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (133) NativeProject -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, #34#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, #33#33] (134) NativeShuffleExchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=16] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=16] (135) ShuffleQueryStage -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: X (136) AQEShuffleRead -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] Arguments: coalesced (137) InputAdapter -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] (138) NativeSort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false (139) NativeSortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -1208,342 +1208,342 @@ Join type: Inner Join condition: None (146) NativeProject -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [#5#5, #6#6, #7#7, #8#8, brand_id#24, class_id#25, category_id#26] (147) NativeShuffleExchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=18] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=18] (148) ShuffleQueryStage -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] Arguments: X (149) AQEShuffleRead -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] Arguments: coalesced (150) InputAdapter -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] (151) NativeSort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false (152) NativeSortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [ss_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (310) Scan parquet -Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (154) InputAdapter -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: [#36, #37, #38, #39] +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: [#35, #36, #37, #38] (155) NativeFilter -Input [4]: [#36#36, #37#37, #38#38, #39#39] -Condition : (((isnotnull(i_item_sk#36) AND isnotnull(i_brand_id#37)) AND isnotnull(i_class_id#38)) AND isnotnull(i_category_id#39)) +Input [4]: [#35#35, #36#36, #37#37, #38#38] +Condition : (((isnotnull(i_item_sk#35) AND isnotnull(i_brand_id#36)) AND isnotnull(i_class_id#37)) AND isnotnull(i_category_id#38)) (156) NativeShuffleExchange -Input [4]: [#36#36, #37#37, #38#38, #39#39] -Arguments: hashpartitioning(i_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=19] +Input [4]: [#35#35, #36#36, #37#37, #38#38] +Arguments: hashpartitioning(i_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=19] (157) ShuffleQueryStage -Output [4]: [#36#36, #37#37, #38#38, #39#39] +Output [4]: [#35#35, #36#36, #37#37, #38#38] Arguments: X (158) AQEShuffleRead -Input [4]: [#36#36, #37#37, #38#38, #39#39] +Input [4]: [#35#35, #36#36, #37#37, #38#38] Arguments: coalesced (159) InputAdapter -Input [4]: [#36#36, #37#37, #38#38, #39#39] +Input [4]: [#35#35, #36#36, #37#37, #38#38] (160) NativeSort -Input [4]: [#36#36, #37#37, #38#38, #39#39] -Arguments: [i_item_sk#36 ASC NULLS FIRST], false +Input [4]: [#35#35, #36#36, #37#37, #38#38] +Arguments: [i_item_sk#35 ASC NULLS FIRST], false (161) ReusedExchange [Reuses operator id: 147] -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] (162) ShuffleQueryStage -Output [1]: [ss_item_sk#35] +Output [1]: [ss_item_sk#34] Arguments: X (163) AQEShuffleRead -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] Arguments: coalesced (164) InputAdapter -Input [1]: [ss_item_sk#35] +Input [1]: [ss_item_sk#34] (165) NativeSort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false (166) NativeSortMergeJoin -Left keys [1]: [i_item_sk#36] -Right keys [1]: [ss_item_sk#35] +Left keys [1]: [i_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (167) NativeSortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#36] +Right keys [1]: [i_item_sk#35] Join type: Inner Join condition: None (168) NativeProject -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [8]: [#1#1, #2#2, #3#3, #4#4, #36#36, #37#37, #38#38, #39#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [8]: [#1#1, #2#2, #3#3, #4#4, #35#35, #36#36, #37#37, #38#38] (169) NativeShuffleExchange -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: hashpartitioning(ss_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=20] (170) ShuffleQueryStage -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: X (171) AQEShuffleRead -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: coalesced (172) InputAdapter -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] (173) NativeSort -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false (399) Scan parquet -Output [2]: [d_date_sk#40, d_week_seq#41] +Output [2]: [d_date_sk#39, d_week_seq#40] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)] ReadSchema: struct (175) InputAdapter -Input [2]: [d_date_sk#40, d_week_seq#41] -Arguments: [#40, #41] +Input [2]: [d_date_sk#39, d_week_seq#40] +Arguments: [#39, #40] (176) NativeFilter -Input [2]: [#40#40, #41#41] -Condition : ((isnotnull(d_week_seq#41) AND (d_week_seq#41 = Subquery subquery#42, [id=#43])) AND isnotnull(d_date_sk#40)) +Input [2]: [#39#39, #40#40] +Condition : ((isnotnull(d_week_seq#40) AND (d_week_seq#40 = Subquery subquery#41, [id=#42])) AND isnotnull(d_date_sk#39)) (177) NativeProject -Output [1]: [d_date_sk#40] -Input [2]: [#40#40, #41#41] +Output [1]: [d_date_sk#39] +Input [2]: [#39#39, #40#40] (178) NativeShuffleExchange -Input [1]: [d_date_sk#40] -Arguments: hashpartitioning(d_date_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [1]: [d_date_sk#39] +Arguments: hashpartitioning(d_date_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=21] (179) ShuffleQueryStage -Output [1]: [d_date_sk#40] +Output [1]: [d_date_sk#39] Arguments: X (180) AQEShuffleRead -Input [1]: [d_date_sk#40] +Input [1]: [d_date_sk#39] Arguments: coalesced (181) InputAdapter -Input [1]: [d_date_sk#40] +Input [1]: [d_date_sk#39] (182) NativeSort -Input [1]: [d_date_sk#40] -Arguments: [d_date_sk#40 ASC NULLS FIRST], false +Input [1]: [d_date_sk#39] +Arguments: [d_date_sk#39 ASC NULLS FIRST], false (183) NativeSortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#40] +Right keys [1]: [d_date_sk#39] Join type: Inner Join condition: None (184) NativeProject -Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39, d_date_sk#40] +Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38, d_date_sk#39] (185) NativeProject -Output [4]: [i_brand_id#37 AS i_brand_id#37, i_class_id#38 AS i_class_id#38, i_category_id#39 AS i_category_id#39, (cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4) AS _c3#44] -Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_brand_id#36 AS i_brand_id#36, i_class_id#37 AS i_class_id#37, i_category_id#38 AS i_category_id#38, (cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4) AS _c3#43] +Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] (186) NativeHashAggregate -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, _c3#44] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] -Functions [2]: [partial_sum(_c3#44), partial_count(1)] -Aggregate Attributes [3]: [sum#45, isEmpty#46, count#47] -Results [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [4]: [i_brand_id#36, i_class_id#37, i_category_id#38, _c3#43] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] +Functions [2]: [partial_sum(_c3#43), partial_count(1)] +Aggregate Attributes [3]: [sum#44, isEmpty#45, count#46] +Results [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] (187) NativeShuffleExchange -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] -Arguments: hashpartitioning(i_brand_id#37, i_class_id#38, i_category_id#39, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] +Arguments: hashpartitioning(i_brand_id#36, i_class_id#37, i_category_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=22] (188) ShuffleQueryStage -Output [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Output [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] Arguments: X (189) AQEShuffleRead -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] Arguments: coalesced (190) InputAdapter -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] (191) NativeHashAggregate -Input [4]: [i_brand_id#37, i_class_id#38, i_category_id#39, #27#27] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, #47, #48] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] -Results [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] +Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49, count(1)#50] +Results [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49, count(1)#50] (192) NativeProject -Output [6]: [store AS channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48 AS sales#51, count(1)#49 AS number_sales#52] -Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] +Output [6]: [store AS channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49 AS sales#52, count(1)#50 AS number_sales#53] +Input [5]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49, count(1)#50] (193) NativeFilter -Input [6]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52] -Condition : (isnotnull(sales#51) AND (cast(sales#51 as decimal(32,6)) > cast(Subquery subquery#53, [id=#54] as decimal(32,6)))) +Input [6]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53] +Condition : (isnotnull(sales#52) AND (cast(sales#52 as decimal(32,6)) > cast(Subquery subquery#54, [id=#55] as decimal(32,6)))) (194) NativeSort -Input [6]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52] -Arguments: [i_brand_id#37 ASC NULLS FIRST, i_class_id#38 ASC NULLS FIRST, i_category_id#39 ASC NULLS FIRST], false +Input [6]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53] +Arguments: [i_brand_id#36 ASC NULLS FIRST, i_class_id#37 ASC NULLS FIRST, i_category_id#38 ASC NULLS FIRST], false (195) ReusedExchange [Reuses operator id: 169] -Output [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] +Output [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] (196) ShuffleQueryStage -Output [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] +Output [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] Arguments: X (197) AQEShuffleRead -Input [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] +Input [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] Arguments: coalesced (198) InputAdapter -Input [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Arguments: [#55, #56, #57, #58, #59, #60] +Input [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Arguments: [#56, #57, #58, #59, #60, #61] (199) InputAdapter -Input [6]: [#55#55, #56#56, #57#57, #58#58, #59#59, #60#60] +Input [6]: [#56#56, #57#57, #58#58, #59#59, #60#60, #61#61] (200) NativeSort -Input [6]: [#55#55, #56#56, #57#57, #58#58, #59#59, #60#60] -Arguments: [ss_sold_date_sk#55 ASC NULLS FIRST], false +Input [6]: [#56#56, #57#57, #58#58, #59#59, #60#60, #61#61] +Arguments: [ss_sold_date_sk#56 ASC NULLS FIRST], false (585) Scan parquet -Output [2]: [d_date_sk#61, d_week_seq#62] +Output [2]: [d_date_sk#62, d_week_seq#63] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)] ReadSchema: struct (202) InputAdapter -Input [2]: [d_date_sk#61, d_week_seq#62] -Arguments: [#61, #62] +Input [2]: [d_date_sk#62, d_week_seq#63] +Arguments: [#62, #63] (203) NativeFilter -Input [2]: [#61#61, #62#62] -Condition : ((isnotnull(d_week_seq#62) AND (d_week_seq#62 = Subquery subquery#63, [id=#64])) AND isnotnull(d_date_sk#61)) +Input [2]: [#62#62, #63#63] +Condition : ((isnotnull(d_week_seq#63) AND (d_week_seq#63 = Subquery subquery#64, [id=#65])) AND isnotnull(d_date_sk#62)) (204) NativeProject -Output [1]: [d_date_sk#61] -Input [2]: [#61#61, #62#62] +Output [1]: [d_date_sk#62] +Input [2]: [#62#62, #63#63] (205) NativeShuffleExchange -Input [1]: [d_date_sk#61] -Arguments: hashpartitioning(d_date_sk#61, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [1]: [d_date_sk#62] +Arguments: hashpartitioning(d_date_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=23] (206) ShuffleQueryStage -Output [1]: [d_date_sk#61] +Output [1]: [d_date_sk#62] Arguments: X (207) AQEShuffleRead -Input [1]: [d_date_sk#61] +Input [1]: [d_date_sk#62] Arguments: coalesced (208) InputAdapter -Input [1]: [d_date_sk#61] +Input [1]: [d_date_sk#62] (209) NativeSort -Input [1]: [d_date_sk#61] -Arguments: [d_date_sk#61 ASC NULLS FIRST], false +Input [1]: [d_date_sk#62] +Arguments: [d_date_sk#62 ASC NULLS FIRST], false (210) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#55] -Right keys [1]: [d_date_sk#61] +Left keys [1]: [ss_sold_date_sk#56] +Right keys [1]: [d_date_sk#62] Join type: Inner Join condition: None (211) NativeProject -Output [5]: [ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Input [7]: [#55#55, #56#56, #57#57, #58#58, #59#59, #60#60, d_date_sk#61] +Output [5]: [ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Input [7]: [#56#56, #57#57, #58#58, #59#59, #60#60, #61#61, d_date_sk#62] (212) NativeProject -Output [4]: [i_brand_id#58 AS i_brand_id#58, i_class_id#59 AS i_class_id#59, i_category_id#60 AS i_category_id#60, (cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57) AS _c3#65] -Input [5]: [ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] +Output [4]: [i_brand_id#59 AS i_brand_id#59, i_class_id#60 AS i_class_id#60, i_category_id#61 AS i_category_id#61, (cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58) AS _c3#66] +Input [5]: [ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] (213) NativeHashAggregate -Input [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, _c3#65] -Keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] -Functions [2]: [partial_sum(_c3#65), partial_count(1)] -Aggregate Attributes [3]: [sum#66, isEmpty#67, count#68] -Results [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] +Input [4]: [i_brand_id#59, i_class_id#60, i_category_id#61, _c3#66] +Keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] +Functions [2]: [partial_sum(_c3#66), partial_count(1)] +Aggregate Attributes [3]: [sum#67, isEmpty#68, count#69] +Results [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] (214) NativeShuffleExchange -Input [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] -Arguments: hashpartitioning(i_brand_id#58, i_class_id#59, i_category_id#60, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] +Arguments: hashpartitioning(i_brand_id#59, i_class_id#60, i_category_id#61, 100), ENSURE_REQUIREMENTS, [plan_id=24] (215) ShuffleQueryStage -Output [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] +Output [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] Arguments: X (216) AQEShuffleRead -Input [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] +Input [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] Arguments: coalesced (217) InputAdapter -Input [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] +Input [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] (218) NativeHashAggregate -Input [4]: [i_brand_id#58, i_class_id#59, i_category_id#60, #27#27] -Keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] -Functions [2]: [sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69, count(1)#70] -Results [5]: [i_brand_id#58, i_class_id#59, i_category_id#60, sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69, count(1)#70] +Input [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, #47, #48] +Keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] +Functions [2]: [sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58)), count(1)] +Aggregate Attributes [2]: [sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70, count(1)#71] +Results [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70, count(1)#71] (219) NativeProject -Output [6]: [store AS channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69 AS sales#72, count(1)#70 AS number_sales#73] -Input [5]: [i_brand_id#58, i_class_id#59, i_category_id#60, sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69, count(1)#70] +Output [6]: [store AS channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70 AS sales#73, count(1)#71 AS number_sales#74] +Input [5]: [i_brand_id#59, i_class_id#60, i_category_id#61, sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70, count(1)#71] (220) NativeFilter -Input [6]: [channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Condition : (isnotnull(sales#72) AND (cast(sales#72 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#53, [id=#54] as decimal(32,6)))) +Input [6]: [channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Condition : (isnotnull(sales#73) AND (cast(sales#73 as decimal(32,6)) > cast(ReusedSubquery Subquery subquery#54, [id=#55] as decimal(32,6)))) (221) NativeSort -Input [6]: [channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Arguments: [i_brand_id#58 ASC NULLS FIRST, i_class_id#59 ASC NULLS FIRST, i_category_id#60 ASC NULLS FIRST], false +Input [6]: [channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Arguments: [i_brand_id#59 ASC NULLS FIRST, i_class_id#60 ASC NULLS FIRST, i_category_id#61 ASC NULLS FIRST], false (222) NativeSortMergeJoin -Left keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] -Right keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] +Left keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] +Right keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] Join type: Inner Join condition: None (223) NativeTakeOrdered -Input [12]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Arguments: X, [i_brand_id#37 ASC NULLS FIRST, i_class_id#38 ASC NULLS FIRST, i_category_id#39 ASC NULLS FIRST] +Input [12]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Arguments: X, [i_brand_id#36 ASC NULLS FIRST, i_class_id#37 ASC NULLS FIRST, i_category_id#38 ASC NULLS FIRST] (224) NativeProject -Output [12]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Input [12]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] +Output [12]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Input [12]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] (225) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4] @@ -1751,19 +1751,19 @@ Input [4]: [ss_sold_date_sk#9, i_brand_id#12, i_class_id#13, i_category_id#14] Arguments: [ss_sold_date_sk#9 ASC NULLS FIRST], false, 0 (269) Scan parquet -Output [2]: [d_date_sk#23, d_year#74] +Output [2]: [d_date_sk#23, d_year#75] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (270) Filter -Input [2]: [d_date_sk#23, d_year#74] -Condition : (((isnotnull(d_year#74) AND (d_year#74 >= 1999)) AND (d_year#74 <= 2001)) AND isnotnull(d_date_sk#23)) +Input [2]: [d_date_sk#23, d_year#75] +Condition : (((isnotnull(d_year#75) AND (d_year#75 >= 1999)) AND (d_year#75 <= 2001)) AND isnotnull(d_date_sk#23)) (271) Project Output [1]: [d_date_sk#23] -Input [2]: [d_date_sk#23, d_year#74] +Input [2]: [d_date_sk#23, d_year#75] (272) Exchange Input [1]: [d_date_sk#23] @@ -1810,105 +1810,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (281) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (282) Filter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (283) Exchange -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=39] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=39] (284) Sort -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false, 0 (285) Scan parquet -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (286) Filter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Condition : isnotnull(i_item_sk#30) +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Condition : isnotnull(i_item_sk#29) (287) Exchange -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(i_item_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=40] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(i_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=40] (288) Sort -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false, 0 (289) SortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (290) Project -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [ws_sold_date_sk#28, ws_item_sk#29, i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [ws_sold_date_sk#27, ws_item_sk#28, i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (291) Exchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=41] (292) Sort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false, 0 (293) Scan parquet -Output [2]: [d_date_sk#34, d_year#75] +Output [2]: [d_date_sk#33, d_year#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (294) Filter -Input [2]: [d_date_sk#34, d_year#75] -Condition : (((isnotnull(d_year#75) AND (d_year#75 >= 1999)) AND (d_year#75 <= 2001)) AND isnotnull(d_date_sk#34)) +Input [2]: [d_date_sk#33, d_year#76] +Condition : (((isnotnull(d_year#76) AND (d_year#76 >= 1999)) AND (d_year#76 <= 2001)) AND isnotnull(d_date_sk#33)) (295) Project -Output [1]: [d_date_sk#34] -Input [2]: [d_date_sk#34, d_year#75] +Output [1]: [d_date_sk#33] +Input [2]: [d_date_sk#33, d_year#76] (296) Exchange -Input [1]: [d_date_sk#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=42] +Input [1]: [d_date_sk#33] +Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=42] (297) Sort -Input [1]: [d_date_sk#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false, 0 (298) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (299) Project -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, d_date_sk#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, d_date_sk#33] (300) Exchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=43] (301) Sort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false, 0 (302) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -1927,41 +1927,41 @@ Join type: Inner Join condition: None (306) Project -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8, brand_id#24, class_id#25, category_id#26] (307) Exchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=45] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=45] (308) Sort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false, 0 (309) SortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [ss_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (310) Scan parquet -Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (311) Filter -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Condition : (((isnotnull(i_item_sk#36) AND isnotnull(i_brand_id#37)) AND isnotnull(i_class_id#38)) AND isnotnull(i_category_id#39)) +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Condition : (((isnotnull(i_item_sk#35) AND isnotnull(i_brand_id#36)) AND isnotnull(i_class_id#37)) AND isnotnull(i_category_id#38)) (312) Exchange -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: hashpartitioning(i_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=46] +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: hashpartitioning(i_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=46] (313) Sort -Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] -Arguments: [i_item_sk#36 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] +Arguments: [i_item_sk#35 ASC NULLS FIRST], false, 0 (314) Scan parquet Output [4]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8] @@ -2150,19 +2150,19 @@ Input [4]: [ss_sold_date_sk#9, i_brand_id#12, i_class_id#13, i_category_id#14] Arguments: [ss_sold_date_sk#9 ASC NULLS FIRST], false, 0 (354) Scan parquet -Output [2]: [d_date_sk#23, d_year#74] +Output [2]: [d_date_sk#23, d_year#75] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (355) Filter -Input [2]: [d_date_sk#23, d_year#74] -Condition : (((isnotnull(d_year#74) AND (d_year#74 >= 1999)) AND (d_year#74 <= 2001)) AND isnotnull(d_date_sk#23)) +Input [2]: [d_date_sk#23, d_year#75] +Condition : (((isnotnull(d_year#75) AND (d_year#75 >= 1999)) AND (d_year#75 <= 2001)) AND isnotnull(d_date_sk#23)) (356) Project Output [1]: [d_date_sk#23] -Input [2]: [d_date_sk#23, d_year#74] +Input [2]: [d_date_sk#23, d_year#75] (357) Exchange Input [1]: [d_date_sk#23] @@ -2209,105 +2209,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (366) Scan parquet -Output [2]: [ws_sold_date_sk#28, ws_item_sk#29] +Output [2]: [ws_sold_date_sk#27, ws_item_sk#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (367) Filter -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Condition : (isnotnull(ws_item_sk#29) AND isnotnull(ws_sold_date_sk#28)) +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Condition : (isnotnull(ws_item_sk#28) AND isnotnull(ws_sold_date_sk#27)) (368) Exchange -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: hashpartitioning(ws_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=60] +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: hashpartitioning(ws_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=60] (369) Sort -Input [2]: [ws_sold_date_sk#28, ws_item_sk#29] -Arguments: [ws_item_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#27, ws_item_sk#28] +Arguments: [ws_item_sk#28 ASC NULLS FIRST], false, 0 (370) Scan parquet -Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (371) Filter -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Condition : isnotnull(i_item_sk#30) +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Condition : isnotnull(i_item_sk#29) (372) Exchange -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(i_item_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=61] +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(i_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=61] (373) Sort -Input [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [i_item_sk#30 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [i_item_sk#29 ASC NULLS FIRST], false, 0 (374) SortMergeJoin -Left keys [1]: [ws_item_sk#29] -Right keys [1]: [i_item_sk#30] +Left keys [1]: [ws_item_sk#28] +Right keys [1]: [i_item_sk#29] Join type: Inner Join condition: None (375) Project -Output [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Input [6]: [ws_sold_date_sk#28, ws_item_sk#29, i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33] +Output [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Input [6]: [ws_sold_date_sk#27, ws_item_sk#28, i_item_sk#29, i_brand_id#30, i_class_id#31, i_category_id#32] (376) Exchange -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(ws_sold_date_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=62] +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(ws_sold_date_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=62] (377) Sort -Input [4]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [ws_sold_date_sk#28 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [ws_sold_date_sk#27 ASC NULLS FIRST], false, 0 (378) Scan parquet -Output [2]: [d_date_sk#34, d_year#75] +Output [2]: [d_date_sk#33, d_year#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (379) Filter -Input [2]: [d_date_sk#34, d_year#75] -Condition : (((isnotnull(d_year#75) AND (d_year#75 >= 1999)) AND (d_year#75 <= 2001)) AND isnotnull(d_date_sk#34)) +Input [2]: [d_date_sk#33, d_year#76] +Condition : (((isnotnull(d_year#76) AND (d_year#76 >= 1999)) AND (d_year#76 <= 2001)) AND isnotnull(d_date_sk#33)) (380) Project -Output [1]: [d_date_sk#34] -Input [2]: [d_date_sk#34, d_year#75] +Output [1]: [d_date_sk#33] +Input [2]: [d_date_sk#33, d_year#76] (381) Exchange -Input [1]: [d_date_sk#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=63] +Input [1]: [d_date_sk#33] +Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=63] (382) Sort -Input [1]: [d_date_sk#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#33] +Arguments: [d_date_sk#33 ASC NULLS FIRST], false, 0 (383) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#28] -Right keys [1]: [d_date_sk#34] +Left keys [1]: [ws_sold_date_sk#27] +Right keys [1]: [d_date_sk#33] Join type: Inner Join condition: None (384) Project -Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Input [5]: [ws_sold_date_sk#28, i_brand_id#31, i_class_id#32, i_category_id#33, d_date_sk#34] +Output [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Input [5]: [ws_sold_date_sk#27, i_brand_id#30, i_class_id#31, i_category_id#32, d_date_sk#33] (385) Exchange -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: hashpartitioning(coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33), 100), ENSURE_REQUIREMENTS, [plan_id=64] +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: hashpartitioning(coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32), 100), ENSURE_REQUIREMENTS, [plan_id=64] (386) Sort -Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33] -Arguments: [coalesce(i_brand_id#31, 0) ASC NULLS FIRST, isnull(i_brand_id#31) ASC NULLS FIRST, coalesce(i_class_id#32, 0) ASC NULLS FIRST, isnull(i_class_id#32) ASC NULLS FIRST, coalesce(i_category_id#33, 0) ASC NULLS FIRST, isnull(i_category_id#33) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#30, i_class_id#31, i_category_id#32] +Arguments: [coalesce(i_brand_id#30, 0) ASC NULLS FIRST, isnull(i_brand_id#30) ASC NULLS FIRST, coalesce(i_class_id#31, 0) ASC NULLS FIRST, isnull(i_class_id#31) ASC NULLS FIRST, coalesce(i_category_id#32, 0) ASC NULLS FIRST, isnull(i_category_id#32) ASC NULLS FIRST], false, 0 (387) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)] +Right keys [6]: [coalesce(i_brand_id#30, 0), isnull(i_brand_id#30), coalesce(i_class_id#31, 0), isnull(i_class_id#31), coalesce(i_category_id#32, 0), isnull(i_category_id#32)] Join type: LeftSemi Join condition: None @@ -2326,337 +2326,337 @@ Join type: Inner Join condition: None (391) Project -Output [1]: [i_item_sk#5 AS ss_item_sk#35] +Output [1]: [i_item_sk#5 AS ss_item_sk#34] Input [7]: [i_item_sk#5, i_brand_id#6, i_class_id#7, i_category_id#8, brand_id#24, class_id#25, category_id#26] (392) Exchange -Input [1]: [ss_item_sk#35] -Arguments: hashpartitioning(ss_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=66] +Input [1]: [ss_item_sk#34] +Arguments: hashpartitioning(ss_item_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=66] (393) Sort -Input [1]: [ss_item_sk#35] -Arguments: [ss_item_sk#35 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#34] +Arguments: [ss_item_sk#34 ASC NULLS FIRST], false, 0 (394) SortMergeJoin -Left keys [1]: [i_item_sk#36] -Right keys [1]: [ss_item_sk#35] +Left keys [1]: [i_item_sk#35] +Right keys [1]: [ss_item_sk#34] Join type: LeftSemi Join condition: None (395) SortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#36] +Right keys [1]: [i_item_sk#35] Join type: Inner Join condition: None (396) Project -Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [8]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4, i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39] +Output [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [8]: [ss_sold_date_sk#1, ss_item_sk#2, ss_quantity#3, ss_list_price#4, i_item_sk#35, i_brand_id#36, i_class_id#37, i_category_id#38] (397) Exchange -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: hashpartitioning(ss_sold_date_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=67] (398) Sort -Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false, 0 (399) Scan parquet -Output [2]: [d_date_sk#40, d_week_seq#41] +Output [2]: [d_date_sk#39, d_week_seq#40] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)] ReadSchema: struct (400) Filter -Input [2]: [d_date_sk#40, d_week_seq#41] -Condition : ((isnotnull(d_week_seq#41) AND (d_week_seq#41 = Subquery subquery#42, [id=#43])) AND isnotnull(d_date_sk#40)) +Input [2]: [d_date_sk#39, d_week_seq#40] +Condition : ((isnotnull(d_week_seq#40) AND (d_week_seq#40 = Subquery subquery#41, [id=#42])) AND isnotnull(d_date_sk#39)) (401) Project -Output [1]: [d_date_sk#40] -Input [2]: [d_date_sk#40, d_week_seq#41] +Output [1]: [d_date_sk#39] +Input [2]: [d_date_sk#39, d_week_seq#40] (402) Exchange -Input [1]: [d_date_sk#40] -Arguments: hashpartitioning(d_date_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=68] +Input [1]: [d_date_sk#39] +Arguments: hashpartitioning(d_date_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=68] (403) Sort -Input [1]: [d_date_sk#40] -Arguments: [d_date_sk#40 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#39] +Arguments: [d_date_sk#39 ASC NULLS FIRST], false, 0 (404) SortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#40] +Right keys [1]: [d_date_sk#39] Join type: Inner Join condition: None (405) Project -Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39, d_date_sk#40] +Output [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Input [7]: [ss_sold_date_sk#1, ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38, d_date_sk#39] (406) HashAggregate -Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#37, i_class_id#38, i_category_id#39] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [5]: [ss_quantity#3, ss_list_price#4, i_brand_id#36, i_class_id#37, i_category_id#38] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [partial_sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), partial_count(1)] -Aggregate Attributes [3]: [sum#45, isEmpty#46, count#47] -Results [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#76, isEmpty#77, count#78] +Aggregate Attributes [3]: [sum#44, isEmpty#45, count#46] +Results [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#77, isEmpty#78, count#79] (407) Exchange -Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#76, isEmpty#77, count#78] -Arguments: hashpartitioning(i_brand_id#37, i_class_id#38, i_category_id#39, 100), ENSURE_REQUIREMENTS, [plan_id=69] +Input [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#77, isEmpty#78, count#79] +Arguments: hashpartitioning(i_brand_id#36, i_class_id#37, i_category_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=69] (408) HashAggregate -Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#76, isEmpty#77, count#78] -Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] +Input [6]: [i_brand_id#36, i_class_id#37, i_category_id#38, sum#77, isEmpty#78, count#79] +Keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] Functions [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48, count(1)#49] -Results [6]: [store AS channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#48 AS sales#51, count(1)#49 AS number_sales#52] +Aggregate Attributes [2]: [sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49, count(1)#50] +Results [6]: [store AS channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sum((cast(ss_quantity#3 as decimal(10,0)) * ss_list_price#4))#49 AS sales#52, count(1)#50 AS number_sales#53] (409) Filter -Input [6]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52] -Condition : (isnotnull(sales#51) AND (cast(sales#51 as decimal(32,6)) > cast(Subquery subquery#53, [id=#54] as decimal(32,6)))) +Input [6]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53] +Condition : (isnotnull(sales#52) AND (cast(sales#52 as decimal(32,6)) > cast(Subquery subquery#54, [id=#55] as decimal(32,6)))) (410) Sort -Input [6]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52] -Arguments: [i_brand_id#37 ASC NULLS FIRST, i_class_id#38 ASC NULLS FIRST, i_category_id#39 ASC NULLS FIRST], false, 0 +Input [6]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53] +Arguments: [i_brand_id#36 ASC NULLS FIRST, i_class_id#37 ASC NULLS FIRST, i_category_id#38 ASC NULLS FIRST], false, 0 (411) Scan parquet -Output [4]: [ss_sold_date_sk#55, ss_item_sk#79, ss_quantity#56, ss_list_price#57] +Output [4]: [ss_sold_date_sk#56, ss_item_sk#80, ss_quantity#57, ss_list_price#58] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (412) Filter -Input [4]: [ss_sold_date_sk#55, ss_item_sk#79, ss_quantity#56, ss_list_price#57] -Condition : (isnotnull(ss_item_sk#79) AND isnotnull(ss_sold_date_sk#55)) +Input [4]: [ss_sold_date_sk#56, ss_item_sk#80, ss_quantity#57, ss_list_price#58] +Condition : (isnotnull(ss_item_sk#80) AND isnotnull(ss_sold_date_sk#56)) (413) Exchange -Input [4]: [ss_sold_date_sk#55, ss_item_sk#79, ss_quantity#56, ss_list_price#57] -Arguments: hashpartitioning(ss_item_sk#79, 100), ENSURE_REQUIREMENTS, [plan_id=70] +Input [4]: [ss_sold_date_sk#56, ss_item_sk#80, ss_quantity#57, ss_list_price#58] +Arguments: hashpartitioning(ss_item_sk#80, 100), ENSURE_REQUIREMENTS, [plan_id=70] (414) Sort -Input [4]: [ss_sold_date_sk#55, ss_item_sk#79, ss_quantity#56, ss_list_price#57] -Arguments: [ss_item_sk#79 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#56, ss_item_sk#80, ss_quantity#57, ss_list_price#58] +Arguments: [ss_item_sk#80 ASC NULLS FIRST], false, 0 (415) Scan parquet -Output [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] +Output [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (416) Filter -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Condition : ((isnotnull(i_brand_id#81) AND isnotnull(i_class_id#82)) AND isnotnull(i_category_id#83)) +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Condition : ((isnotnull(i_brand_id#82) AND isnotnull(i_class_id#83)) AND isnotnull(i_category_id#84)) (417) Exchange -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Arguments: hashpartitioning(i_brand_id#81, i_class_id#82, i_category_id#83, 100), ENSURE_REQUIREMENTS, [plan_id=71] +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Arguments: hashpartitioning(i_brand_id#82, i_class_id#83, i_category_id#84, 100), ENSURE_REQUIREMENTS, [plan_id=71] (418) Sort -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Arguments: [i_brand_id#81 ASC NULLS FIRST, i_class_id#82 ASC NULLS FIRST, i_category_id#83 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Arguments: [i_brand_id#82 ASC NULLS FIRST, i_class_id#83 ASC NULLS FIRST, i_category_id#84 ASC NULLS FIRST], false, 0 (419) Scan parquet -Output [2]: [ss_sold_date_sk#84, ss_item_sk#85] +Output [2]: [ss_sold_date_sk#85, ss_item_sk#86] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (420) Filter -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Condition : (isnotnull(ss_item_sk#85) AND isnotnull(ss_sold_date_sk#84)) +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Condition : (isnotnull(ss_item_sk#86) AND isnotnull(ss_sold_date_sk#85)) (421) Exchange -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Arguments: hashpartitioning(ss_item_sk#85, 100), ENSURE_REQUIREMENTS, [plan_id=72] +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Arguments: hashpartitioning(ss_item_sk#86, 100), ENSURE_REQUIREMENTS, [plan_id=72] (422) Sort -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Arguments: [ss_item_sk#85 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Arguments: [ss_item_sk#86 ASC NULLS FIRST], false, 0 (423) Scan parquet -Output [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] +Output [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (424) Filter -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Condition : (((isnotnull(i_item_sk#86) AND isnotnull(i_brand_id#87)) AND isnotnull(i_class_id#88)) AND isnotnull(i_category_id#89)) +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Condition : (((isnotnull(i_item_sk#87) AND isnotnull(i_brand_id#88)) AND isnotnull(i_class_id#89)) AND isnotnull(i_category_id#90)) (425) Exchange -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(coalesce(i_brand_id#87, 0), isnull(i_brand_id#87), coalesce(i_class_id#88, 0), isnull(i_class_id#88), coalesce(i_category_id#89, 0), isnull(i_category_id#89), 100), ENSURE_REQUIREMENTS, [plan_id=73] +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(coalesce(i_brand_id#88, 0), isnull(i_brand_id#88), coalesce(i_class_id#89, 0), isnull(i_class_id#89), coalesce(i_category_id#90, 0), isnull(i_category_id#90), 100), ENSURE_REQUIREMENTS, [plan_id=73] (426) Sort -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [coalesce(i_brand_id#87, 0) ASC NULLS FIRST, isnull(i_brand_id#87) ASC NULLS FIRST, coalesce(i_class_id#88, 0) ASC NULLS FIRST, isnull(i_class_id#88) ASC NULLS FIRST, coalesce(i_category_id#89, 0) ASC NULLS FIRST, isnull(i_category_id#89) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [coalesce(i_brand_id#88, 0) ASC NULLS FIRST, isnull(i_brand_id#88) ASC NULLS FIRST, coalesce(i_class_id#89, 0) ASC NULLS FIRST, isnull(i_class_id#89) ASC NULLS FIRST, coalesce(i_category_id#90, 0) ASC NULLS FIRST, isnull(i_category_id#90) ASC NULLS FIRST], false, 0 (427) Scan parquet -Output [2]: [cs_sold_date_sk#90, cs_item_sk#91] +Output [2]: [cs_sold_date_sk#91, cs_item_sk#92] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (428) Filter -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Condition : (isnotnull(cs_item_sk#91) AND isnotnull(cs_sold_date_sk#90)) +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Condition : (isnotnull(cs_item_sk#92) AND isnotnull(cs_sold_date_sk#91)) (429) Exchange -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Arguments: hashpartitioning(cs_item_sk#91, 100), ENSURE_REQUIREMENTS, [plan_id=74] +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Arguments: hashpartitioning(cs_item_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=74] (430) Sort -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Arguments: [cs_item_sk#91 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Arguments: [cs_item_sk#92 ASC NULLS FIRST], false, 0 (431) Scan parquet -Output [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] +Output [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (432) Filter -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Condition : isnotnull(i_item_sk#92) +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Condition : isnotnull(i_item_sk#93) (433) Exchange -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(i_item_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=75] +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(i_item_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=75] (434) Sort -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [i_item_sk#92 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [i_item_sk#93 ASC NULLS FIRST], false, 0 (435) SortMergeJoin -Left keys [1]: [cs_item_sk#91] -Right keys [1]: [i_item_sk#92] +Left keys [1]: [cs_item_sk#92] +Right keys [1]: [i_item_sk#93] Join type: Inner Join condition: None (436) Project -Output [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Input [6]: [cs_sold_date_sk#90, cs_item_sk#91, i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] +Output [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Input [6]: [cs_sold_date_sk#91, cs_item_sk#92, i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] (437) Exchange -Input [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(cs_sold_date_sk#90, 100), ENSURE_REQUIREMENTS, [plan_id=76] +Input [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(cs_sold_date_sk#91, 100), ENSURE_REQUIREMENTS, [plan_id=76] (438) Sort -Input [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [cs_sold_date_sk#90 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [cs_sold_date_sk#91 ASC NULLS FIRST], false, 0 (439) Scan parquet -Output [2]: [d_date_sk#96, d_year#97] +Output [2]: [d_date_sk#97, d_year#98] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (440) Filter -Input [2]: [d_date_sk#96, d_year#97] -Condition : (((isnotnull(d_year#97) AND (d_year#97 >= 1999)) AND (d_year#97 <= 2001)) AND isnotnull(d_date_sk#96)) +Input [2]: [d_date_sk#97, d_year#98] +Condition : (((isnotnull(d_year#98) AND (d_year#98 >= 1999)) AND (d_year#98 <= 2001)) AND isnotnull(d_date_sk#97)) (441) Project -Output [1]: [d_date_sk#96] -Input [2]: [d_date_sk#96, d_year#97] +Output [1]: [d_date_sk#97] +Input [2]: [d_date_sk#97, d_year#98] (442) Exchange -Input [1]: [d_date_sk#96] -Arguments: hashpartitioning(d_date_sk#96, 100), ENSURE_REQUIREMENTS, [plan_id=77] +Input [1]: [d_date_sk#97] +Arguments: hashpartitioning(d_date_sk#97, 100), ENSURE_REQUIREMENTS, [plan_id=77] (443) Sort -Input [1]: [d_date_sk#96] -Arguments: [d_date_sk#96 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#97] +Arguments: [d_date_sk#97 ASC NULLS FIRST], false, 0 (444) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#90] -Right keys [1]: [d_date_sk#96] +Left keys [1]: [cs_sold_date_sk#91] +Right keys [1]: [d_date_sk#97] Join type: Inner Join condition: None (445) Project -Output [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Input [5]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95, d_date_sk#96] +Output [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Input [5]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96, d_date_sk#97] (446) Exchange -Input [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(coalesce(i_brand_id#93, 0), isnull(i_brand_id#93), coalesce(i_class_id#94, 0), isnull(i_class_id#94), coalesce(i_category_id#95, 0), isnull(i_category_id#95), 100), ENSURE_REQUIREMENTS, [plan_id=78] +Input [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(coalesce(i_brand_id#94, 0), isnull(i_brand_id#94), coalesce(i_class_id#95, 0), isnull(i_class_id#95), coalesce(i_category_id#96, 0), isnull(i_category_id#96), 100), ENSURE_REQUIREMENTS, [plan_id=78] (447) Sort -Input [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [coalesce(i_brand_id#93, 0) ASC NULLS FIRST, isnull(i_brand_id#93) ASC NULLS FIRST, coalesce(i_class_id#94, 0) ASC NULLS FIRST, isnull(i_class_id#94) ASC NULLS FIRST, coalesce(i_category_id#95, 0) ASC NULLS FIRST, isnull(i_category_id#95) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [coalesce(i_brand_id#94, 0) ASC NULLS FIRST, isnull(i_brand_id#94) ASC NULLS FIRST, coalesce(i_class_id#95, 0) ASC NULLS FIRST, isnull(i_class_id#95) ASC NULLS FIRST, coalesce(i_category_id#96, 0) ASC NULLS FIRST, isnull(i_category_id#96) ASC NULLS FIRST], false, 0 (448) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#87, 0), isnull(i_brand_id#87), coalesce(i_class_id#88, 0), isnull(i_class_id#88), coalesce(i_category_id#89, 0), isnull(i_category_id#89)] -Right keys [6]: [coalesce(i_brand_id#93, 0), isnull(i_brand_id#93), coalesce(i_class_id#94, 0), isnull(i_class_id#94), coalesce(i_category_id#95, 0), isnull(i_category_id#95)] +Left keys [6]: [coalesce(i_brand_id#88, 0), isnull(i_brand_id#88), coalesce(i_class_id#89, 0), isnull(i_class_id#89), coalesce(i_category_id#90, 0), isnull(i_category_id#90)] +Right keys [6]: [coalesce(i_brand_id#94, 0), isnull(i_brand_id#94), coalesce(i_class_id#95, 0), isnull(i_class_id#95), coalesce(i_category_id#96, 0), isnull(i_category_id#96)] Join type: LeftSemi Join condition: None (449) Exchange -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(i_item_sk#86, 100), ENSURE_REQUIREMENTS, [plan_id=79] +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(i_item_sk#87, 100), ENSURE_REQUIREMENTS, [plan_id=79] (450) Sort -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [i_item_sk#86 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [i_item_sk#87 ASC NULLS FIRST], false, 0 (451) SortMergeJoin -Left keys [1]: [ss_item_sk#85] -Right keys [1]: [i_item_sk#86] +Left keys [1]: [ss_item_sk#86] +Right keys [1]: [i_item_sk#87] Join type: Inner Join condition: None (452) Project -Output [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Input [6]: [ss_sold_date_sk#84, ss_item_sk#85, i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] +Output [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Input [6]: [ss_sold_date_sk#85, ss_item_sk#86, i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] (453) Exchange -Input [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(ss_sold_date_sk#84, 100), ENSURE_REQUIREMENTS, [plan_id=80] +Input [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(ss_sold_date_sk#85, 100), ENSURE_REQUIREMENTS, [plan_id=80] (454) Sort -Input [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [ss_sold_date_sk#84 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [ss_sold_date_sk#85 ASC NULLS FIRST], false, 0 (455) Scan parquet -Output [2]: [d_date_sk#98, d_year#99] +Output [2]: [d_date_sk#99, d_year#100] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (456) Filter -Input [2]: [d_date_sk#98, d_year#99] -Condition : (((isnotnull(d_year#99) AND (d_year#99 >= 1999)) AND (d_year#99 <= 2001)) AND isnotnull(d_date_sk#98)) +Input [2]: [d_date_sk#99, d_year#100] +Condition : (((isnotnull(d_year#100) AND (d_year#100 >= 1999)) AND (d_year#100 <= 2001)) AND isnotnull(d_date_sk#99)) (457) Project -Output [1]: [d_date_sk#98] -Input [2]: [d_date_sk#98, d_year#99] +Output [1]: [d_date_sk#99] +Input [2]: [d_date_sk#99, d_year#100] (458) Exchange -Input [1]: [d_date_sk#98] -Arguments: hashpartitioning(d_date_sk#98, 100), ENSURE_REQUIREMENTS, [plan_id=81] +Input [1]: [d_date_sk#99] +Arguments: hashpartitioning(d_date_sk#99, 100), ENSURE_REQUIREMENTS, [plan_id=81] (459) Sort -Input [1]: [d_date_sk#98] -Arguments: [d_date_sk#98 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#99] +Arguments: [d_date_sk#99 ASC NULLS FIRST], false, 0 (460) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#84] -Right keys [1]: [d_date_sk#98] +Left keys [1]: [ss_sold_date_sk#85] +Right keys [1]: [d_date_sk#99] Join type: Inner Join condition: None (461) Project -Output [3]: [i_brand_id#87 AS brand_id#24, i_class_id#88 AS class_id#25, i_category_id#89 AS category_id#26] -Input [5]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89, d_date_sk#98] +Output [3]: [i_brand_id#88 AS brand_id#24, i_class_id#89 AS class_id#25, i_category_id#90 AS category_id#26] +Input [5]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90, d_date_sk#99] (462) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -2685,105 +2685,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (467) Scan parquet -Output [2]: [ws_sold_date_sk#100, ws_item_sk#101] +Output [2]: [ws_sold_date_sk#101, ws_item_sk#102] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (468) Filter -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Condition : (isnotnull(ws_item_sk#101) AND isnotnull(ws_sold_date_sk#100)) +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Condition : (isnotnull(ws_item_sk#102) AND isnotnull(ws_sold_date_sk#101)) (469) Exchange -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Arguments: hashpartitioning(ws_item_sk#101, 100), ENSURE_REQUIREMENTS, [plan_id=84] +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Arguments: hashpartitioning(ws_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=84] (470) Sort -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Arguments: [ws_item_sk#101 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Arguments: [ws_item_sk#102 ASC NULLS FIRST], false, 0 (471) Scan parquet -Output [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] +Output [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (472) Filter -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Condition : isnotnull(i_item_sk#102) +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Condition : isnotnull(i_item_sk#103) (473) Exchange -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(i_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=85] +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(i_item_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=85] (474) Sort -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [i_item_sk#102 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [i_item_sk#103 ASC NULLS FIRST], false, 0 (475) SortMergeJoin -Left keys [1]: [ws_item_sk#101] -Right keys [1]: [i_item_sk#102] +Left keys [1]: [ws_item_sk#102] +Right keys [1]: [i_item_sk#103] Join type: Inner Join condition: None (476) Project -Output [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Input [6]: [ws_sold_date_sk#100, ws_item_sk#101, i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] +Output [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Input [6]: [ws_sold_date_sk#101, ws_item_sk#102, i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] (477) Exchange -Input [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(ws_sold_date_sk#100, 100), ENSURE_REQUIREMENTS, [plan_id=86] +Input [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(ws_sold_date_sk#101, 100), ENSURE_REQUIREMENTS, [plan_id=86] (478) Sort -Input [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [ws_sold_date_sk#100 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [ws_sold_date_sk#101 ASC NULLS FIRST], false, 0 (479) Scan parquet -Output [2]: [d_date_sk#106, d_year#107] +Output [2]: [d_date_sk#107, d_year#108] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (480) Filter -Input [2]: [d_date_sk#106, d_year#107] -Condition : (((isnotnull(d_year#107) AND (d_year#107 >= 1999)) AND (d_year#107 <= 2001)) AND isnotnull(d_date_sk#106)) +Input [2]: [d_date_sk#107, d_year#108] +Condition : (((isnotnull(d_year#108) AND (d_year#108 >= 1999)) AND (d_year#108 <= 2001)) AND isnotnull(d_date_sk#107)) (481) Project -Output [1]: [d_date_sk#106] -Input [2]: [d_date_sk#106, d_year#107] +Output [1]: [d_date_sk#107] +Input [2]: [d_date_sk#107, d_year#108] (482) Exchange -Input [1]: [d_date_sk#106] -Arguments: hashpartitioning(d_date_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=87] +Input [1]: [d_date_sk#107] +Arguments: hashpartitioning(d_date_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=87] (483) Sort -Input [1]: [d_date_sk#106] -Arguments: [d_date_sk#106 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#107] +Arguments: [d_date_sk#107 ASC NULLS FIRST], false, 0 (484) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#100] -Right keys [1]: [d_date_sk#106] +Left keys [1]: [ws_sold_date_sk#101] +Right keys [1]: [d_date_sk#107] Join type: Inner Join condition: None (485) Project -Output [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Input [5]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105, d_date_sk#106] +Output [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Input [5]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106, d_date_sk#107] (486) Exchange -Input [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(coalesce(i_brand_id#103, 0), isnull(i_brand_id#103), coalesce(i_class_id#104, 0), isnull(i_class_id#104), coalesce(i_category_id#105, 0), isnull(i_category_id#105), 100), ENSURE_REQUIREMENTS, [plan_id=88] +Input [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(coalesce(i_brand_id#104, 0), isnull(i_brand_id#104), coalesce(i_class_id#105, 0), isnull(i_class_id#105), coalesce(i_category_id#106, 0), isnull(i_category_id#106), 100), ENSURE_REQUIREMENTS, [plan_id=88] (487) Sort -Input [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [coalesce(i_brand_id#103, 0) ASC NULLS FIRST, isnull(i_brand_id#103) ASC NULLS FIRST, coalesce(i_class_id#104, 0) ASC NULLS FIRST, isnull(i_class_id#104) ASC NULLS FIRST, coalesce(i_category_id#105, 0) ASC NULLS FIRST, isnull(i_category_id#105) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [coalesce(i_brand_id#104, 0) ASC NULLS FIRST, isnull(i_brand_id#104) ASC NULLS FIRST, coalesce(i_class_id#105, 0) ASC NULLS FIRST, isnull(i_class_id#105) ASC NULLS FIRST, coalesce(i_category_id#106, 0) ASC NULLS FIRST, isnull(i_category_id#106) ASC NULLS FIRST], false, 0 (488) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#103, 0), isnull(i_brand_id#103), coalesce(i_class_id#104, 0), isnull(i_class_id#104), coalesce(i_category_id#105, 0), isnull(i_category_id#105)] +Right keys [6]: [coalesce(i_brand_id#104, 0), isnull(i_brand_id#104), coalesce(i_class_id#105, 0), isnull(i_class_id#105), coalesce(i_category_id#106, 0), isnull(i_category_id#106)] Join type: LeftSemi Join condition: None @@ -2796,266 +2796,266 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (491) SortMergeJoin -Left keys [3]: [i_brand_id#81, i_class_id#82, i_category_id#83] +Left keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (492) Project -Output [1]: [i_item_sk#80 AS ss_item_sk#108] -Input [7]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#81 AS ss_item_sk#109] +Input [7]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84, brand_id#24, class_id#25, category_id#26] (493) Exchange -Input [1]: [ss_item_sk#108] -Arguments: hashpartitioning(ss_item_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=90] +Input [1]: [ss_item_sk#109] +Arguments: hashpartitioning(ss_item_sk#109, 100), ENSURE_REQUIREMENTS, [plan_id=90] (494) Sort -Input [1]: [ss_item_sk#108] -Arguments: [ss_item_sk#108 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#109] +Arguments: [ss_item_sk#109 ASC NULLS FIRST], false, 0 (495) SortMergeJoin -Left keys [1]: [ss_item_sk#79] -Right keys [1]: [ss_item_sk#108] +Left keys [1]: [ss_item_sk#80] +Right keys [1]: [ss_item_sk#109] Join type: LeftSemi Join condition: None (496) Scan parquet -Output [4]: [i_item_sk#109, i_brand_id#58, i_class_id#59, i_category_id#60] +Output [4]: [i_item_sk#110, i_brand_id#59, i_class_id#60, i_category_id#61] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (497) Filter -Input [4]: [i_item_sk#109, i_brand_id#58, i_class_id#59, i_category_id#60] -Condition : (((isnotnull(i_item_sk#109) AND isnotnull(i_brand_id#58)) AND isnotnull(i_class_id#59)) AND isnotnull(i_category_id#60)) +Input [4]: [i_item_sk#110, i_brand_id#59, i_class_id#60, i_category_id#61] +Condition : (((isnotnull(i_item_sk#110) AND isnotnull(i_brand_id#59)) AND isnotnull(i_class_id#60)) AND isnotnull(i_category_id#61)) (498) Exchange -Input [4]: [i_item_sk#109, i_brand_id#58, i_class_id#59, i_category_id#60] -Arguments: hashpartitioning(i_item_sk#109, 100), ENSURE_REQUIREMENTS, [plan_id=91] +Input [4]: [i_item_sk#110, i_brand_id#59, i_class_id#60, i_category_id#61] +Arguments: hashpartitioning(i_item_sk#110, 100), ENSURE_REQUIREMENTS, [plan_id=91] (499) Sort -Input [4]: [i_item_sk#109, i_brand_id#58, i_class_id#59, i_category_id#60] -Arguments: [i_item_sk#109 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#110, i_brand_id#59, i_class_id#60, i_category_id#61] +Arguments: [i_item_sk#110 ASC NULLS FIRST], false, 0 (500) Scan parquet -Output [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] +Output [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (501) Filter -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Condition : ((isnotnull(i_brand_id#81) AND isnotnull(i_class_id#82)) AND isnotnull(i_category_id#83)) +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Condition : ((isnotnull(i_brand_id#82) AND isnotnull(i_class_id#83)) AND isnotnull(i_category_id#84)) (502) Exchange -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Arguments: hashpartitioning(i_brand_id#81, i_class_id#82, i_category_id#83, 100), ENSURE_REQUIREMENTS, [plan_id=92] +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Arguments: hashpartitioning(i_brand_id#82, i_class_id#83, i_category_id#84, 100), ENSURE_REQUIREMENTS, [plan_id=92] (503) Sort -Input [4]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83] -Arguments: [i_brand_id#81 ASC NULLS FIRST, i_class_id#82 ASC NULLS FIRST, i_category_id#83 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84] +Arguments: [i_brand_id#82 ASC NULLS FIRST, i_class_id#83 ASC NULLS FIRST, i_category_id#84 ASC NULLS FIRST], false, 0 (504) Scan parquet -Output [2]: [ss_sold_date_sk#84, ss_item_sk#85] +Output [2]: [ss_sold_date_sk#85, ss_item_sk#86] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (505) Filter -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Condition : (isnotnull(ss_item_sk#85) AND isnotnull(ss_sold_date_sk#84)) +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Condition : (isnotnull(ss_item_sk#86) AND isnotnull(ss_sold_date_sk#85)) (506) Exchange -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Arguments: hashpartitioning(ss_item_sk#85, 100), ENSURE_REQUIREMENTS, [plan_id=93] +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Arguments: hashpartitioning(ss_item_sk#86, 100), ENSURE_REQUIREMENTS, [plan_id=93] (507) Sort -Input [2]: [ss_sold_date_sk#84, ss_item_sk#85] -Arguments: [ss_item_sk#85 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#85, ss_item_sk#86] +Arguments: [ss_item_sk#86 ASC NULLS FIRST], false, 0 (508) Scan parquet -Output [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] +Output [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)] ReadSchema: struct (509) Filter -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Condition : (((isnotnull(i_item_sk#86) AND isnotnull(i_brand_id#87)) AND isnotnull(i_class_id#88)) AND isnotnull(i_category_id#89)) +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Condition : (((isnotnull(i_item_sk#87) AND isnotnull(i_brand_id#88)) AND isnotnull(i_class_id#89)) AND isnotnull(i_category_id#90)) (510) Exchange -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(coalesce(i_brand_id#87, 0), isnull(i_brand_id#87), coalesce(i_class_id#88, 0), isnull(i_class_id#88), coalesce(i_category_id#89, 0), isnull(i_category_id#89), 100), ENSURE_REQUIREMENTS, [plan_id=94] +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(coalesce(i_brand_id#88, 0), isnull(i_brand_id#88), coalesce(i_class_id#89, 0), isnull(i_class_id#89), coalesce(i_category_id#90, 0), isnull(i_category_id#90), 100), ENSURE_REQUIREMENTS, [plan_id=94] (511) Sort -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [coalesce(i_brand_id#87, 0) ASC NULLS FIRST, isnull(i_brand_id#87) ASC NULLS FIRST, coalesce(i_class_id#88, 0) ASC NULLS FIRST, isnull(i_class_id#88) ASC NULLS FIRST, coalesce(i_category_id#89, 0) ASC NULLS FIRST, isnull(i_category_id#89) ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [coalesce(i_brand_id#88, 0) ASC NULLS FIRST, isnull(i_brand_id#88) ASC NULLS FIRST, coalesce(i_class_id#89, 0) ASC NULLS FIRST, isnull(i_class_id#89) ASC NULLS FIRST, coalesce(i_category_id#90, 0) ASC NULLS FIRST, isnull(i_category_id#90) ASC NULLS FIRST], false, 0 (512) Scan parquet -Output [2]: [cs_sold_date_sk#90, cs_item_sk#91] +Output [2]: [cs_sold_date_sk#91, cs_item_sk#92] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (513) Filter -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Condition : (isnotnull(cs_item_sk#91) AND isnotnull(cs_sold_date_sk#90)) +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Condition : (isnotnull(cs_item_sk#92) AND isnotnull(cs_sold_date_sk#91)) (514) Exchange -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Arguments: hashpartitioning(cs_item_sk#91, 100), ENSURE_REQUIREMENTS, [plan_id=95] +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Arguments: hashpartitioning(cs_item_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=95] (515) Sort -Input [2]: [cs_sold_date_sk#90, cs_item_sk#91] -Arguments: [cs_item_sk#91 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#91, cs_item_sk#92] +Arguments: [cs_item_sk#92 ASC NULLS FIRST], false, 0 (516) Scan parquet -Output [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] +Output [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (517) Filter -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Condition : isnotnull(i_item_sk#92) +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Condition : isnotnull(i_item_sk#93) (518) Exchange -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(i_item_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=96] +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(i_item_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=96] (519) Sort -Input [4]: [i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [i_item_sk#92 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [i_item_sk#93 ASC NULLS FIRST], false, 0 (520) SortMergeJoin -Left keys [1]: [cs_item_sk#91] -Right keys [1]: [i_item_sk#92] +Left keys [1]: [cs_item_sk#92] +Right keys [1]: [i_item_sk#93] Join type: Inner Join condition: None (521) Project -Output [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Input [6]: [cs_sold_date_sk#90, cs_item_sk#91, i_item_sk#92, i_brand_id#93, i_class_id#94, i_category_id#95] +Output [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Input [6]: [cs_sold_date_sk#91, cs_item_sk#92, i_item_sk#93, i_brand_id#94, i_class_id#95, i_category_id#96] (522) Exchange -Input [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(cs_sold_date_sk#90, 100), ENSURE_REQUIREMENTS, [plan_id=97] +Input [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(cs_sold_date_sk#91, 100), ENSURE_REQUIREMENTS, [plan_id=97] (523) Sort -Input [4]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [cs_sold_date_sk#90 ASC NULLS FIRST], false, 0 +Input [4]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [cs_sold_date_sk#91 ASC NULLS FIRST], false, 0 (524) Scan parquet -Output [2]: [d_date_sk#96, d_year#97] +Output [2]: [d_date_sk#97, d_year#98] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (525) Filter -Input [2]: [d_date_sk#96, d_year#97] -Condition : (((isnotnull(d_year#97) AND (d_year#97 >= 1999)) AND (d_year#97 <= 2001)) AND isnotnull(d_date_sk#96)) +Input [2]: [d_date_sk#97, d_year#98] +Condition : (((isnotnull(d_year#98) AND (d_year#98 >= 1999)) AND (d_year#98 <= 2001)) AND isnotnull(d_date_sk#97)) (526) Project -Output [1]: [d_date_sk#96] -Input [2]: [d_date_sk#96, d_year#97] +Output [1]: [d_date_sk#97] +Input [2]: [d_date_sk#97, d_year#98] (527) Exchange -Input [1]: [d_date_sk#96] -Arguments: hashpartitioning(d_date_sk#96, 100), ENSURE_REQUIREMENTS, [plan_id=98] +Input [1]: [d_date_sk#97] +Arguments: hashpartitioning(d_date_sk#97, 100), ENSURE_REQUIREMENTS, [plan_id=98] (528) Sort -Input [1]: [d_date_sk#96] -Arguments: [d_date_sk#96 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#97] +Arguments: [d_date_sk#97 ASC NULLS FIRST], false, 0 (529) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#90] -Right keys [1]: [d_date_sk#96] +Left keys [1]: [cs_sold_date_sk#91] +Right keys [1]: [d_date_sk#97] Join type: Inner Join condition: None (530) Project -Output [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Input [5]: [cs_sold_date_sk#90, i_brand_id#93, i_class_id#94, i_category_id#95, d_date_sk#96] +Output [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Input [5]: [cs_sold_date_sk#91, i_brand_id#94, i_class_id#95, i_category_id#96, d_date_sk#97] (531) Exchange -Input [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: hashpartitioning(coalesce(i_brand_id#93, 0), isnull(i_brand_id#93), coalesce(i_class_id#94, 0), isnull(i_class_id#94), coalesce(i_category_id#95, 0), isnull(i_category_id#95), 100), ENSURE_REQUIREMENTS, [plan_id=99] +Input [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: hashpartitioning(coalesce(i_brand_id#94, 0), isnull(i_brand_id#94), coalesce(i_class_id#95, 0), isnull(i_class_id#95), coalesce(i_category_id#96, 0), isnull(i_category_id#96), 100), ENSURE_REQUIREMENTS, [plan_id=99] (532) Sort -Input [3]: [i_brand_id#93, i_class_id#94, i_category_id#95] -Arguments: [coalesce(i_brand_id#93, 0) ASC NULLS FIRST, isnull(i_brand_id#93) ASC NULLS FIRST, coalesce(i_class_id#94, 0) ASC NULLS FIRST, isnull(i_class_id#94) ASC NULLS FIRST, coalesce(i_category_id#95, 0) ASC NULLS FIRST, isnull(i_category_id#95) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#94, i_class_id#95, i_category_id#96] +Arguments: [coalesce(i_brand_id#94, 0) ASC NULLS FIRST, isnull(i_brand_id#94) ASC NULLS FIRST, coalesce(i_class_id#95, 0) ASC NULLS FIRST, isnull(i_class_id#95) ASC NULLS FIRST, coalesce(i_category_id#96, 0) ASC NULLS FIRST, isnull(i_category_id#96) ASC NULLS FIRST], false, 0 (533) SortMergeJoin -Left keys [6]: [coalesce(i_brand_id#87, 0), isnull(i_brand_id#87), coalesce(i_class_id#88, 0), isnull(i_class_id#88), coalesce(i_category_id#89, 0), isnull(i_category_id#89)] -Right keys [6]: [coalesce(i_brand_id#93, 0), isnull(i_brand_id#93), coalesce(i_class_id#94, 0), isnull(i_class_id#94), coalesce(i_category_id#95, 0), isnull(i_category_id#95)] +Left keys [6]: [coalesce(i_brand_id#88, 0), isnull(i_brand_id#88), coalesce(i_class_id#89, 0), isnull(i_class_id#89), coalesce(i_category_id#90, 0), isnull(i_category_id#90)] +Right keys [6]: [coalesce(i_brand_id#94, 0), isnull(i_brand_id#94), coalesce(i_class_id#95, 0), isnull(i_class_id#95), coalesce(i_category_id#96, 0), isnull(i_category_id#96)] Join type: LeftSemi Join condition: None (534) Exchange -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(i_item_sk#86, 100), ENSURE_REQUIREMENTS, [plan_id=100] +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(i_item_sk#87, 100), ENSURE_REQUIREMENTS, [plan_id=100] (535) Sort -Input [4]: [i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [i_item_sk#86 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [i_item_sk#87 ASC NULLS FIRST], false, 0 (536) SortMergeJoin -Left keys [1]: [ss_item_sk#85] -Right keys [1]: [i_item_sk#86] +Left keys [1]: [ss_item_sk#86] +Right keys [1]: [i_item_sk#87] Join type: Inner Join condition: None (537) Project -Output [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Input [6]: [ss_sold_date_sk#84, ss_item_sk#85, i_item_sk#86, i_brand_id#87, i_class_id#88, i_category_id#89] +Output [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Input [6]: [ss_sold_date_sk#85, ss_item_sk#86, i_item_sk#87, i_brand_id#88, i_class_id#89, i_category_id#90] (538) Exchange -Input [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: hashpartitioning(ss_sold_date_sk#84, 100), ENSURE_REQUIREMENTS, [plan_id=101] +Input [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: hashpartitioning(ss_sold_date_sk#85, 100), ENSURE_REQUIREMENTS, [plan_id=101] (539) Sort -Input [4]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89] -Arguments: [ss_sold_date_sk#84 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90] +Arguments: [ss_sold_date_sk#85 ASC NULLS FIRST], false, 0 (540) Scan parquet -Output [2]: [d_date_sk#98, d_year#99] +Output [2]: [d_date_sk#99, d_year#100] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (541) Filter -Input [2]: [d_date_sk#98, d_year#99] -Condition : (((isnotnull(d_year#99) AND (d_year#99 >= 1999)) AND (d_year#99 <= 2001)) AND isnotnull(d_date_sk#98)) +Input [2]: [d_date_sk#99, d_year#100] +Condition : (((isnotnull(d_year#100) AND (d_year#100 >= 1999)) AND (d_year#100 <= 2001)) AND isnotnull(d_date_sk#99)) (542) Project -Output [1]: [d_date_sk#98] -Input [2]: [d_date_sk#98, d_year#99] +Output [1]: [d_date_sk#99] +Input [2]: [d_date_sk#99, d_year#100] (543) Exchange -Input [1]: [d_date_sk#98] -Arguments: hashpartitioning(d_date_sk#98, 100), ENSURE_REQUIREMENTS, [plan_id=102] +Input [1]: [d_date_sk#99] +Arguments: hashpartitioning(d_date_sk#99, 100), ENSURE_REQUIREMENTS, [plan_id=102] (544) Sort -Input [1]: [d_date_sk#98] -Arguments: [d_date_sk#98 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#99] +Arguments: [d_date_sk#99 ASC NULLS FIRST], false, 0 (545) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#84] -Right keys [1]: [d_date_sk#98] +Left keys [1]: [ss_sold_date_sk#85] +Right keys [1]: [d_date_sk#99] Join type: Inner Join condition: None (546) Project -Output [3]: [i_brand_id#87 AS brand_id#24, i_class_id#88 AS class_id#25, i_category_id#89 AS category_id#26] -Input [5]: [ss_sold_date_sk#84, i_brand_id#87, i_class_id#88, i_category_id#89, d_date_sk#98] +Output [3]: [i_brand_id#88 AS brand_id#24, i_class_id#89 AS class_id#25, i_category_id#90 AS category_id#26] +Input [5]: [ss_sold_date_sk#85, i_brand_id#88, i_class_id#89, i_category_id#90, d_date_sk#99] (547) HashAggregate Input [3]: [brand_id#24, class_id#25, category_id#26] @@ -3084,105 +3084,105 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [coalesce(brand_id#24, 0) ASC NULLS FIRST, isnull(brand_id#24) ASC NULLS FIRST, coalesce(class_id#25, 0) ASC NULLS FIRST, isnull(class_id#25) ASC NULLS FIRST, coalesce(category_id#26, 0) ASC NULLS FIRST, isnull(category_id#26) ASC NULLS FIRST], false, 0 (552) Scan parquet -Output [2]: [ws_sold_date_sk#100, ws_item_sk#101] +Output [2]: [ws_sold_date_sk#101, ws_item_sk#102] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_item_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (553) Filter -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Condition : (isnotnull(ws_item_sk#101) AND isnotnull(ws_sold_date_sk#100)) +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Condition : (isnotnull(ws_item_sk#102) AND isnotnull(ws_sold_date_sk#101)) (554) Exchange -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Arguments: hashpartitioning(ws_item_sk#101, 100), ENSURE_REQUIREMENTS, [plan_id=105] +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Arguments: hashpartitioning(ws_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=105] (555) Sort -Input [2]: [ws_sold_date_sk#100, ws_item_sk#101] -Arguments: [ws_item_sk#101 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#101, ws_item_sk#102] +Arguments: [ws_item_sk#102 ASC NULLS FIRST], false, 0 (556) Scan parquet -Output [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] +Output [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (557) Filter -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Condition : isnotnull(i_item_sk#102) +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Condition : isnotnull(i_item_sk#103) (558) Exchange -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(i_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=106] +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(i_item_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=106] (559) Sort -Input [4]: [i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [i_item_sk#102 ASC NULLS FIRST], false, 0 +Input [4]: [i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [i_item_sk#103 ASC NULLS FIRST], false, 0 (560) SortMergeJoin -Left keys [1]: [ws_item_sk#101] -Right keys [1]: [i_item_sk#102] +Left keys [1]: [ws_item_sk#102] +Right keys [1]: [i_item_sk#103] Join type: Inner Join condition: None (561) Project -Output [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Input [6]: [ws_sold_date_sk#100, ws_item_sk#101, i_item_sk#102, i_brand_id#103, i_class_id#104, i_category_id#105] +Output [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Input [6]: [ws_sold_date_sk#101, ws_item_sk#102, i_item_sk#103, i_brand_id#104, i_class_id#105, i_category_id#106] (562) Exchange -Input [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(ws_sold_date_sk#100, 100), ENSURE_REQUIREMENTS, [plan_id=107] +Input [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(ws_sold_date_sk#101, 100), ENSURE_REQUIREMENTS, [plan_id=107] (563) Sort -Input [4]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [ws_sold_date_sk#100 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [ws_sold_date_sk#101 ASC NULLS FIRST], false, 0 (564) Scan parquet -Output [2]: [d_date_sk#106, d_year#107] +Output [2]: [d_date_sk#107, d_year#108] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (565) Filter -Input [2]: [d_date_sk#106, d_year#107] -Condition : (((isnotnull(d_year#107) AND (d_year#107 >= 1999)) AND (d_year#107 <= 2001)) AND isnotnull(d_date_sk#106)) +Input [2]: [d_date_sk#107, d_year#108] +Condition : (((isnotnull(d_year#108) AND (d_year#108 >= 1999)) AND (d_year#108 <= 2001)) AND isnotnull(d_date_sk#107)) (566) Project -Output [1]: [d_date_sk#106] -Input [2]: [d_date_sk#106, d_year#107] +Output [1]: [d_date_sk#107] +Input [2]: [d_date_sk#107, d_year#108] (567) Exchange -Input [1]: [d_date_sk#106] -Arguments: hashpartitioning(d_date_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=108] +Input [1]: [d_date_sk#107] +Arguments: hashpartitioning(d_date_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=108] (568) Sort -Input [1]: [d_date_sk#106] -Arguments: [d_date_sk#106 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#107] +Arguments: [d_date_sk#107 ASC NULLS FIRST], false, 0 (569) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#100] -Right keys [1]: [d_date_sk#106] +Left keys [1]: [ws_sold_date_sk#101] +Right keys [1]: [d_date_sk#107] Join type: Inner Join condition: None (570) Project -Output [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Input [5]: [ws_sold_date_sk#100, i_brand_id#103, i_class_id#104, i_category_id#105, d_date_sk#106] +Output [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Input [5]: [ws_sold_date_sk#101, i_brand_id#104, i_class_id#105, i_category_id#106, d_date_sk#107] (571) Exchange -Input [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: hashpartitioning(coalesce(i_brand_id#103, 0), isnull(i_brand_id#103), coalesce(i_class_id#104, 0), isnull(i_class_id#104), coalesce(i_category_id#105, 0), isnull(i_category_id#105), 100), ENSURE_REQUIREMENTS, [plan_id=109] +Input [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: hashpartitioning(coalesce(i_brand_id#104, 0), isnull(i_brand_id#104), coalesce(i_class_id#105, 0), isnull(i_class_id#105), coalesce(i_category_id#106, 0), isnull(i_category_id#106), 100), ENSURE_REQUIREMENTS, [plan_id=109] (572) Sort -Input [3]: [i_brand_id#103, i_class_id#104, i_category_id#105] -Arguments: [coalesce(i_brand_id#103, 0) ASC NULLS FIRST, isnull(i_brand_id#103) ASC NULLS FIRST, coalesce(i_class_id#104, 0) ASC NULLS FIRST, isnull(i_class_id#104) ASC NULLS FIRST, coalesce(i_category_id#105, 0) ASC NULLS FIRST, isnull(i_category_id#105) ASC NULLS FIRST], false, 0 +Input [3]: [i_brand_id#104, i_class_id#105, i_category_id#106] +Arguments: [coalesce(i_brand_id#104, 0) ASC NULLS FIRST, isnull(i_brand_id#104) ASC NULLS FIRST, coalesce(i_class_id#105, 0) ASC NULLS FIRST, isnull(i_class_id#105) ASC NULLS FIRST, coalesce(i_category_id#106, 0) ASC NULLS FIRST, isnull(i_category_id#106) ASC NULLS FIRST], false, 0 (573) SortMergeJoin Left keys [6]: [coalesce(brand_id#24, 0), isnull(brand_id#24), coalesce(class_id#25, 0), isnull(class_id#25), coalesce(category_id#26, 0), isnull(category_id#26)] -Right keys [6]: [coalesce(i_brand_id#103, 0), isnull(i_brand_id#103), coalesce(i_class_id#104, 0), isnull(i_class_id#104), coalesce(i_category_id#105, 0), isnull(i_category_id#105)] +Right keys [6]: [coalesce(i_brand_id#104, 0), isnull(i_brand_id#104), coalesce(i_class_id#105, 0), isnull(i_class_id#105), coalesce(i_category_id#106, 0), isnull(i_category_id#106)] Join type: LeftSemi Join condition: None @@ -3195,123 +3195,123 @@ Input [3]: [brand_id#24, class_id#25, category_id#26] Arguments: [brand_id#24 ASC NULLS FIRST, class_id#25 ASC NULLS FIRST, category_id#26 ASC NULLS FIRST], false, 0 (576) SortMergeJoin -Left keys [3]: [i_brand_id#81, i_class_id#82, i_category_id#83] +Left keys [3]: [i_brand_id#82, i_class_id#83, i_category_id#84] Right keys [3]: [brand_id#24, class_id#25, category_id#26] Join type: Inner Join condition: None (577) Project -Output [1]: [i_item_sk#80 AS ss_item_sk#108] -Input [7]: [i_item_sk#80, i_brand_id#81, i_class_id#82, i_category_id#83, brand_id#24, class_id#25, category_id#26] +Output [1]: [i_item_sk#81 AS ss_item_sk#109] +Input [7]: [i_item_sk#81, i_brand_id#82, i_class_id#83, i_category_id#84, brand_id#24, class_id#25, category_id#26] (578) Exchange -Input [1]: [ss_item_sk#108] -Arguments: hashpartitioning(ss_item_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=111] +Input [1]: [ss_item_sk#109] +Arguments: hashpartitioning(ss_item_sk#109, 100), ENSURE_REQUIREMENTS, [plan_id=111] (579) Sort -Input [1]: [ss_item_sk#108] -Arguments: [ss_item_sk#108 ASC NULLS FIRST], false, 0 +Input [1]: [ss_item_sk#109] +Arguments: [ss_item_sk#109 ASC NULLS FIRST], false, 0 (580) SortMergeJoin -Left keys [1]: [i_item_sk#109] -Right keys [1]: [ss_item_sk#108] +Left keys [1]: [i_item_sk#110] +Right keys [1]: [ss_item_sk#109] Join type: LeftSemi Join condition: None (581) SortMergeJoin -Left keys [1]: [ss_item_sk#79] -Right keys [1]: [i_item_sk#109] +Left keys [1]: [ss_item_sk#80] +Right keys [1]: [i_item_sk#110] Join type: Inner Join condition: None (582) Project -Output [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Input [8]: [ss_sold_date_sk#55, ss_item_sk#79, ss_quantity#56, ss_list_price#57, i_item_sk#109, i_brand_id#58, i_class_id#59, i_category_id#60] +Output [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Input [8]: [ss_sold_date_sk#56, ss_item_sk#80, ss_quantity#57, ss_list_price#58, i_item_sk#110, i_brand_id#59, i_class_id#60, i_category_id#61] (583) Exchange -Input [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Arguments: hashpartitioning(ss_sold_date_sk#55, 100), ENSURE_REQUIREMENTS, [plan_id=112] +Input [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Arguments: hashpartitioning(ss_sold_date_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=112] (584) Sort -Input [6]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Arguments: [ss_sold_date_sk#55 ASC NULLS FIRST], false, 0 +Input [6]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Arguments: [ss_sold_date_sk#56 ASC NULLS FIRST], false, 0 (585) Scan parquet -Output [2]: [d_date_sk#61, d_week_seq#62] +Output [2]: [d_date_sk#62, d_week_seq#63] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_week_seq), IsNotNull(d_date_sk)] ReadSchema: struct (586) Filter -Input [2]: [d_date_sk#61, d_week_seq#62] -Condition : ((isnotnull(d_week_seq#62) AND (d_week_seq#62 = Subquery subquery#63, [id=#64])) AND isnotnull(d_date_sk#61)) +Input [2]: [d_date_sk#62, d_week_seq#63] +Condition : ((isnotnull(d_week_seq#63) AND (d_week_seq#63 = Subquery subquery#64, [id=#65])) AND isnotnull(d_date_sk#62)) (587) Project -Output [1]: [d_date_sk#61] -Input [2]: [d_date_sk#61, d_week_seq#62] +Output [1]: [d_date_sk#62] +Input [2]: [d_date_sk#62, d_week_seq#63] (588) Exchange -Input [1]: [d_date_sk#61] -Arguments: hashpartitioning(d_date_sk#61, 100), ENSURE_REQUIREMENTS, [plan_id=113] +Input [1]: [d_date_sk#62] +Arguments: hashpartitioning(d_date_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=113] (589) Sort -Input [1]: [d_date_sk#61] -Arguments: [d_date_sk#61 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#62] +Arguments: [d_date_sk#62 ASC NULLS FIRST], false, 0 (590) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#55] -Right keys [1]: [d_date_sk#61] +Left keys [1]: [ss_sold_date_sk#56] +Right keys [1]: [d_date_sk#62] Join type: Inner Join condition: None (591) Project -Output [5]: [ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Input [7]: [ss_sold_date_sk#55, ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60, d_date_sk#61] +Output [5]: [ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Input [7]: [ss_sold_date_sk#56, ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61, d_date_sk#62] (592) HashAggregate -Input [5]: [ss_quantity#56, ss_list_price#57, i_brand_id#58, i_class_id#59, i_category_id#60] -Keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] -Functions [2]: [partial_sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57)), partial_count(1)] -Aggregate Attributes [3]: [sum#66, isEmpty#67, count#68] -Results [6]: [i_brand_id#58, i_class_id#59, i_category_id#60, sum#110, isEmpty#111, count#112] +Input [5]: [ss_quantity#57, ss_list_price#58, i_brand_id#59, i_class_id#60, i_category_id#61] +Keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] +Functions [2]: [partial_sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58)), partial_count(1)] +Aggregate Attributes [3]: [sum#67, isEmpty#68, count#69] +Results [6]: [i_brand_id#59, i_class_id#60, i_category_id#61, sum#111, isEmpty#112, count#113] (593) Exchange -Input [6]: [i_brand_id#58, i_class_id#59, i_category_id#60, sum#110, isEmpty#111, count#112] -Arguments: hashpartitioning(i_brand_id#58, i_class_id#59, i_category_id#60, 100), ENSURE_REQUIREMENTS, [plan_id=114] +Input [6]: [i_brand_id#59, i_class_id#60, i_category_id#61, sum#111, isEmpty#112, count#113] +Arguments: hashpartitioning(i_brand_id#59, i_class_id#60, i_category_id#61, 100), ENSURE_REQUIREMENTS, [plan_id=114] (594) HashAggregate -Input [6]: [i_brand_id#58, i_class_id#59, i_category_id#60, sum#110, isEmpty#111, count#112] -Keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] -Functions [2]: [sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57)), count(1)] -Aggregate Attributes [2]: [sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69, count(1)#70] -Results [6]: [store AS channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sum((cast(ss_quantity#56 as decimal(10,0)) * ss_list_price#57))#69 AS sales#72, count(1)#70 AS number_sales#73] +Input [6]: [i_brand_id#59, i_class_id#60, i_category_id#61, sum#111, isEmpty#112, count#113] +Keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] +Functions [2]: [sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58)), count(1)] +Aggregate Attributes [2]: [sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70, count(1)#71] +Results [6]: [store AS channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sum((cast(ss_quantity#57 as decimal(10,0)) * ss_list_price#58))#70 AS sales#73, count(1)#71 AS number_sales#74] (595) Filter -Input [6]: [channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Condition : (isnotnull(sales#72) AND (cast(sales#72 as decimal(32,6)) > cast(Subquery subquery#113, [id=#114] as decimal(32,6)))) +Input [6]: [channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Condition : (isnotnull(sales#73) AND (cast(sales#73 as decimal(32,6)) > cast(Subquery subquery#114, [id=#115] as decimal(32,6)))) (596) Sort -Input [6]: [channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Arguments: [i_brand_id#58 ASC NULLS FIRST, i_class_id#59 ASC NULLS FIRST, i_category_id#60 ASC NULLS FIRST], false, 0 +Input [6]: [channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Arguments: [i_brand_id#59 ASC NULLS FIRST, i_class_id#60 ASC NULLS FIRST, i_category_id#61 ASC NULLS FIRST], false, 0 (597) SortMergeJoin -Left keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39] -Right keys [3]: [i_brand_id#58, i_class_id#59, i_category_id#60] +Left keys [3]: [i_brand_id#36, i_class_id#37, i_category_id#38] +Right keys [3]: [i_brand_id#59, i_class_id#60, i_category_id#61] Join type: Inner Join condition: None (598) TakeOrderedAndProject -Input [12]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] -Arguments: X, [i_brand_id#37 ASC NULLS FIRST, i_class_id#38 ASC NULLS FIRST, i_category_id#39 ASC NULLS FIRST], [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] +Input [12]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] +Arguments: X, [i_brand_id#36 ASC NULLS FIRST, i_class_id#37 ASC NULLS FIRST, i_category_id#38 ASC NULLS FIRST], [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] (599) AdaptiveSparkPlan -Output [12]: [channel#50, i_brand_id#37, i_class_id#38, i_category_id#39, sales#51, number_sales#52, channel#71, i_brand_id#58, i_class_id#59, i_category_id#60, sales#72, number_sales#73] +Output [12]: [channel#51, i_brand_id#36, i_class_id#37, i_category_id#38, sales#52, number_sales#53, channel#72, i_brand_id#59, i_class_id#60, i_category_id#61, sales#73, number_sales#74] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 193 Hosting Expression = Subquery subquery#53, [id=#54] +Subquery:1 Hosting operator id = 193 Hosting Expression = Subquery subquery#54, [id=#55] AdaptiveSparkPlan (693) +- == Final Plan == NativeProject (655) @@ -3411,421 +3411,421 @@ AdaptiveSparkPlan (693) (656) Scan parquet -Output [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] +Output [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk)] ReadSchema: struct (601) InputAdapter -Input [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] -Arguments: [#115, #116, #117] +Input [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] +Arguments: [#116, #117, #118] (602) NativeFilter -Input [3]: [#115#115, #116#116, #117#117] -Condition : isnotnull(ss_sold_date_sk#115) +Input [3]: [#116#116, #117#117, #118#118] +Condition : isnotnull(ss_sold_date_sk#116) (603) NativeShuffleExchange -Input [3]: [#115#115, #116#116, #117#117] -Arguments: hashpartitioning(ss_sold_date_sk#115, 100), ENSURE_REQUIREMENTS, [plan_id=115] +Input [3]: [#116#116, #117#117, #118#118] +Arguments: hashpartitioning(ss_sold_date_sk#116, 100), ENSURE_REQUIREMENTS, [plan_id=115] (604) ShuffleQueryStage -Output [3]: [#115#115, #116#116, #117#117] +Output [3]: [#116#116, #117#117, #118#118] Arguments: X (605) AQEShuffleRead -Input [3]: [#115#115, #116#116, #117#117] +Input [3]: [#116#116, #117#117, #118#118] Arguments: coalesced (606) InputAdapter -Input [3]: [#115#115, #116#116, #117#117] +Input [3]: [#116#116, #117#117, #118#118] (607) NativeSort -Input [3]: [#115#115, #116#116, #117#117] -Arguments: [ss_sold_date_sk#115 ASC NULLS FIRST], false +Input [3]: [#116#116, #117#117, #118#118] +Arguments: [ss_sold_date_sk#116 ASC NULLS FIRST], false (608) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#118] +Output [1]: [d_date_sk#119] (609) ShuffleQueryStage -Output [1]: [d_date_sk#118] +Output [1]: [d_date_sk#119] Arguments: X (610) AQEShuffleRead -Input [1]: [d_date_sk#118] +Input [1]: [d_date_sk#119] Arguments: coalesced (611) InputAdapter -Input [1]: [d_date_sk#118] -Arguments: [#118] +Input [1]: [d_date_sk#119] +Arguments: [#119] (612) InputAdapter -Input [1]: [#118#118] +Input [1]: [#119#119] (613) NativeSort -Input [1]: [#118#118] -Arguments: [d_date_sk#118 ASC NULLS FIRST], false +Input [1]: [#119#119] +Arguments: [d_date_sk#119 ASC NULLS FIRST], false (614) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#115] -Right keys [1]: [d_date_sk#118] +Left keys [1]: [ss_sold_date_sk#116] +Right keys [1]: [d_date_sk#119] Join type: Inner Join condition: None (615) NativeProject -Output [2]: [ss_quantity#116 AS quantity#119, ss_list_price#117 AS list_price#120] -Input [4]: [#115#115, #116#116, #117#117, #118#118] +Output [2]: [ss_quantity#117 AS quantity#120, ss_list_price#118 AS list_price#121] +Input [4]: [#116#116, #117#117, #118#118, #119#119] (667) Scan parquet -Output [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] +Output [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (617) InputAdapter -Input [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] -Arguments: [#121, #122, #123] +Input [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] +Arguments: [#122, #123, #124] (618) NativeFilter -Input [3]: [#121#121, #122#122, #123#123] -Condition : isnotnull(cs_sold_date_sk#121) +Input [3]: [#122#122, #123#123, #124#124] +Condition : isnotnull(cs_sold_date_sk#122) (619) NativeShuffleExchange -Input [3]: [#121#121, #122#122, #123#123] -Arguments: hashpartitioning(cs_sold_date_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=116] +Input [3]: [#122#122, #123#123, #124#124] +Arguments: hashpartitioning(cs_sold_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=116] (620) ShuffleQueryStage -Output [3]: [#121#121, #122#122, #123#123] +Output [3]: [#122#122, #123#123, #124#124] Arguments: X (621) AQEShuffleRead -Input [3]: [#121#121, #122#122, #123#123] +Input [3]: [#122#122, #123#123, #124#124] Arguments: coalesced (622) InputAdapter -Input [3]: [#121#121, #122#122, #123#123] +Input [3]: [#122#122, #123#123, #124#124] (623) NativeSort -Input [3]: [#121#121, #122#122, #123#123] -Arguments: [cs_sold_date_sk#121 ASC NULLS FIRST], false +Input [3]: [#122#122, #123#123, #124#124] +Arguments: [cs_sold_date_sk#122 ASC NULLS FIRST], false (624) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#124] +Output [1]: [d_date_sk#125] (625) ShuffleQueryStage -Output [1]: [d_date_sk#124] +Output [1]: [d_date_sk#125] Arguments: X (626) AQEShuffleRead -Input [1]: [d_date_sk#124] +Input [1]: [d_date_sk#125] Arguments: coalesced (627) InputAdapter -Input [1]: [d_date_sk#124] -Arguments: [#124] +Input [1]: [d_date_sk#125] +Arguments: [#125] (628) InputAdapter -Input [1]: [#124#124] +Input [1]: [#125#125] (629) NativeSort -Input [1]: [#124#124] -Arguments: [d_date_sk#124 ASC NULLS FIRST], false +Input [1]: [#125#125] +Arguments: [d_date_sk#125 ASC NULLS FIRST], false (630) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#121] -Right keys [1]: [d_date_sk#124] +Left keys [1]: [cs_sold_date_sk#122] +Right keys [1]: [d_date_sk#125] Join type: Inner Join condition: None (631) NativeProject -Output [2]: [cs_quantity#122 AS quantity#125, cs_list_price#123 AS list_price#126] -Input [4]: [#121#121, #122#122, #123#123, #124#124] +Output [2]: [cs_quantity#123 AS quantity#126, cs_list_price#124 AS list_price#127] +Input [4]: [#122#122, #123#123, #124#124, #125#125] (678) Scan parquet -Output [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] +Output [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (633) InputAdapter -Input [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] -Arguments: [#127, #128, #129] +Input [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] +Arguments: [#128, #129, #130] (634) NativeFilter -Input [3]: [#127#127, #128#128, #129#129] -Condition : isnotnull(ws_sold_date_sk#127) +Input [3]: [#128#128, #129#129, #130#130] +Condition : isnotnull(ws_sold_date_sk#128) (635) NativeShuffleExchange -Input [3]: [#127#127, #128#128, #129#129] -Arguments: hashpartitioning(ws_sold_date_sk#127, 100), ENSURE_REQUIREMENTS, [plan_id=117] +Input [3]: [#128#128, #129#129, #130#130] +Arguments: hashpartitioning(ws_sold_date_sk#128, 100), ENSURE_REQUIREMENTS, [plan_id=117] (636) ShuffleQueryStage -Output [3]: [#127#127, #128#128, #129#129] +Output [3]: [#128#128, #129#129, #130#130] Arguments: X (637) AQEShuffleRead -Input [3]: [#127#127, #128#128, #129#129] +Input [3]: [#128#128, #129#129, #130#130] Arguments: coalesced (638) InputAdapter -Input [3]: [#127#127, #128#128, #129#129] +Input [3]: [#128#128, #129#129, #130#130] (639) NativeSort -Input [3]: [#127#127, #128#128, #129#129] -Arguments: [ws_sold_date_sk#127 ASC NULLS FIRST], false +Input [3]: [#128#128, #129#129, #130#130] +Arguments: [ws_sold_date_sk#128 ASC NULLS FIRST], false (640) ReusedExchange [Reuses operator id: 60] -Output [1]: [d_date_sk#130] +Output [1]: [d_date_sk#131] (641) ShuffleQueryStage -Output [1]: [d_date_sk#130] +Output [1]: [d_date_sk#131] Arguments: X (642) AQEShuffleRead -Input [1]: [d_date_sk#130] +Input [1]: [d_date_sk#131] Arguments: coalesced (643) InputAdapter -Input [1]: [d_date_sk#130] -Arguments: [#130] +Input [1]: [d_date_sk#131] +Arguments: [#131] (644) InputAdapter -Input [1]: [#130#130] +Input [1]: [#131#131] (645) NativeSort -Input [1]: [#130#130] -Arguments: [d_date_sk#130 ASC NULLS FIRST], false +Input [1]: [#131#131] +Arguments: [d_date_sk#131 ASC NULLS FIRST], false (646) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#127] -Right keys [1]: [d_date_sk#130] +Left keys [1]: [ws_sold_date_sk#128] +Right keys [1]: [d_date_sk#131] Join type: Inner Join condition: None (647) NativeProject -Output [2]: [ws_quantity#128 AS quantity#131, ws_list_price#129 AS list_price#132] -Input [4]: [#127#127, #128#128, #129#129, #130#130] +Output [2]: [ws_quantity#129 AS quantity#132, ws_list_price#130 AS list_price#133] +Input [4]: [#128#128, #129#129, #130#130, #131#131] (648) NativeUnion -Arguments: [quantity#119, list_price#120] +Arguments: [quantity#120, list_price#121] (649) InputAdapter -Input [2]: [quantity#119, list_price#120] -Arguments: [#119, #120] +Input [2]: [quantity#120, list_price#121] +Arguments: [#120, #121] (650) NativeProject -Output [1]: [(cast(quantity#119 as decimal(10,0)) * list_price#120) AS _c0#133] -Input [2]: [#119#119, #120#120] +Output [1]: [(cast(quantity#120 as decimal(10,0)) * list_price#121) AS _c0#134] +Input [2]: [#120#120, #121#121] (651) NativeHashAggregate -Input [1]: [_c0#133] +Input [1]: [_c0#134] Keys: [] -Functions [1]: [partial_avg(_c0#133)] -Aggregate Attributes [2]: [sum#134, count#135] -Results [1]: [#27#27] +Functions [1]: [partial_avg(_c0#134)] +Aggregate Attributes [2]: [sum#135, count#136] +Results [2]: [#47, #48] (652) NativeShuffleExchange -Input [1]: [#27#27] +Input [2]: [#47, #48] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=118] (653) ShuffleQueryStage -Output [1]: [#27#27] +Output [2]: [#47, #48] Arguments: X (654) NativeHashAggregate -Input [1]: [#27#27] +Input [2]: [#47, #48] Keys: [] -Functions [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))] -Aggregate Attributes [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136] -Results [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136] +Functions [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))] +Aggregate Attributes [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137] +Results [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137] (655) NativeProject -Output [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136 AS average_sales#137] -Input [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136] +Output [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137 AS average_sales#138] +Input [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137] (656) Scan parquet -Output [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] +Output [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk)] ReadSchema: struct (657) Filter -Input [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] -Condition : isnotnull(ss_sold_date_sk#115) +Input [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] +Condition : isnotnull(ss_sold_date_sk#116) (658) Exchange -Input [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] -Arguments: hashpartitioning(ss_sold_date_sk#115, 100), ENSURE_REQUIREMENTS, [plan_id=119] +Input [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] +Arguments: hashpartitioning(ss_sold_date_sk#116, 100), ENSURE_REQUIREMENTS, [plan_id=119] (659) Sort -Input [3]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117] -Arguments: [ss_sold_date_sk#115 ASC NULLS FIRST], false, 0 +Input [3]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118] +Arguments: [ss_sold_date_sk#116 ASC NULLS FIRST], false, 0 (660) Scan parquet -Output [2]: [d_date_sk#118, d_year#138] +Output [2]: [d_date_sk#119, d_year#139] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (661) Filter -Input [2]: [d_date_sk#118, d_year#138] -Condition : (((isnotnull(d_year#138) AND (d_year#138 >= 1999)) AND (d_year#138 <= 2001)) AND isnotnull(d_date_sk#118)) +Input [2]: [d_date_sk#119, d_year#139] +Condition : (((isnotnull(d_year#139) AND (d_year#139 >= 1999)) AND (d_year#139 <= 2001)) AND isnotnull(d_date_sk#119)) (662) Project -Output [1]: [d_date_sk#118] -Input [2]: [d_date_sk#118, d_year#138] +Output [1]: [d_date_sk#119] +Input [2]: [d_date_sk#119, d_year#139] (663) Exchange -Input [1]: [d_date_sk#118] -Arguments: hashpartitioning(d_date_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=120] +Input [1]: [d_date_sk#119] +Arguments: hashpartitioning(d_date_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=120] (664) Sort -Input [1]: [d_date_sk#118] -Arguments: [d_date_sk#118 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#119] +Arguments: [d_date_sk#119 ASC NULLS FIRST], false, 0 (665) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#115] -Right keys [1]: [d_date_sk#118] +Left keys [1]: [ss_sold_date_sk#116] +Right keys [1]: [d_date_sk#119] Join type: Inner Join condition: None (666) Project -Output [2]: [ss_quantity#116 AS quantity#119, ss_list_price#117 AS list_price#120] -Input [4]: [ss_sold_date_sk#115, ss_quantity#116, ss_list_price#117, d_date_sk#118] +Output [2]: [ss_quantity#117 AS quantity#120, ss_list_price#118 AS list_price#121] +Input [4]: [ss_sold_date_sk#116, ss_quantity#117, ss_list_price#118, d_date_sk#119] (667) Scan parquet -Output [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] +Output [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (668) Filter -Input [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] -Condition : isnotnull(cs_sold_date_sk#121) +Input [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] +Condition : isnotnull(cs_sold_date_sk#122) (669) Exchange -Input [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] -Arguments: hashpartitioning(cs_sold_date_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=121] +Input [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] +Arguments: hashpartitioning(cs_sold_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=121] (670) Sort -Input [3]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123] -Arguments: [cs_sold_date_sk#121 ASC NULLS FIRST], false, 0 +Input [3]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124] +Arguments: [cs_sold_date_sk#122 ASC NULLS FIRST], false, 0 (671) Scan parquet -Output [2]: [d_date_sk#124, d_year#139] +Output [2]: [d_date_sk#125, d_year#140] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (672) Filter -Input [2]: [d_date_sk#124, d_year#139] -Condition : (((isnotnull(d_year#139) AND (d_year#139 >= 1999)) AND (d_year#139 <= 2001)) AND isnotnull(d_date_sk#124)) +Input [2]: [d_date_sk#125, d_year#140] +Condition : (((isnotnull(d_year#140) AND (d_year#140 >= 1999)) AND (d_year#140 <= 2001)) AND isnotnull(d_date_sk#125)) (673) Project -Output [1]: [d_date_sk#124] -Input [2]: [d_date_sk#124, d_year#139] +Output [1]: [d_date_sk#125] +Input [2]: [d_date_sk#125, d_year#140] (674) Exchange -Input [1]: [d_date_sk#124] -Arguments: hashpartitioning(d_date_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=122] +Input [1]: [d_date_sk#125] +Arguments: hashpartitioning(d_date_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=122] (675) Sort -Input [1]: [d_date_sk#124] -Arguments: [d_date_sk#124 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#125] +Arguments: [d_date_sk#125 ASC NULLS FIRST], false, 0 (676) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#121] -Right keys [1]: [d_date_sk#124] +Left keys [1]: [cs_sold_date_sk#122] +Right keys [1]: [d_date_sk#125] Join type: Inner Join condition: None (677) Project -Output [2]: [cs_quantity#122 AS quantity#125, cs_list_price#123 AS list_price#126] -Input [4]: [cs_sold_date_sk#121, cs_quantity#122, cs_list_price#123, d_date_sk#124] +Output [2]: [cs_quantity#123 AS quantity#126, cs_list_price#124 AS list_price#127] +Input [4]: [cs_sold_date_sk#122, cs_quantity#123, cs_list_price#124, d_date_sk#125] (678) Scan parquet -Output [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] +Output [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (679) Filter -Input [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] -Condition : isnotnull(ws_sold_date_sk#127) +Input [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] +Condition : isnotnull(ws_sold_date_sk#128) (680) Exchange -Input [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] -Arguments: hashpartitioning(ws_sold_date_sk#127, 100), ENSURE_REQUIREMENTS, [plan_id=123] +Input [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] +Arguments: hashpartitioning(ws_sold_date_sk#128, 100), ENSURE_REQUIREMENTS, [plan_id=123] (681) Sort -Input [3]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129] -Arguments: [ws_sold_date_sk#127 ASC NULLS FIRST], false, 0 +Input [3]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130] +Arguments: [ws_sold_date_sk#128 ASC NULLS FIRST], false, 0 (682) Scan parquet -Output [2]: [d_date_sk#130, d_year#140] +Output [2]: [d_date_sk#131, d_year#141] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)] ReadSchema: struct (683) Filter -Input [2]: [d_date_sk#130, d_year#140] -Condition : (((isnotnull(d_year#140) AND (d_year#140 >= 1999)) AND (d_year#140 <= 2001)) AND isnotnull(d_date_sk#130)) +Input [2]: [d_date_sk#131, d_year#141] +Condition : (((isnotnull(d_year#141) AND (d_year#141 >= 1999)) AND (d_year#141 <= 2001)) AND isnotnull(d_date_sk#131)) (684) Project -Output [1]: [d_date_sk#130] -Input [2]: [d_date_sk#130, d_year#140] +Output [1]: [d_date_sk#131] +Input [2]: [d_date_sk#131, d_year#141] (685) Exchange -Input [1]: [d_date_sk#130] -Arguments: hashpartitioning(d_date_sk#130, 100), ENSURE_REQUIREMENTS, [plan_id=124] +Input [1]: [d_date_sk#131] +Arguments: hashpartitioning(d_date_sk#131, 100), ENSURE_REQUIREMENTS, [plan_id=124] (686) Sort -Input [1]: [d_date_sk#130] -Arguments: [d_date_sk#130 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#131] +Arguments: [d_date_sk#131 ASC NULLS FIRST], false, 0 (687) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#127] -Right keys [1]: [d_date_sk#130] +Left keys [1]: [ws_sold_date_sk#128] +Right keys [1]: [d_date_sk#131] Join type: Inner Join condition: None (688) Project -Output [2]: [ws_quantity#128 AS quantity#131, ws_list_price#129 AS list_price#132] -Input [4]: [ws_sold_date_sk#127, ws_quantity#128, ws_list_price#129, d_date_sk#130] +Output [2]: [ws_quantity#129 AS quantity#132, ws_list_price#130 AS list_price#133] +Input [4]: [ws_sold_date_sk#128, ws_quantity#129, ws_list_price#130, d_date_sk#131] (689) Union (690) HashAggregate -Input [2]: [quantity#119, list_price#120] +Input [2]: [quantity#120, list_price#121] Keys: [] -Functions [1]: [partial_avg((cast(quantity#119 as decimal(10,0)) * list_price#120))] -Aggregate Attributes [2]: [sum#134, count#135] -Results [2]: [sum#141, count#142] +Functions [1]: [partial_avg((cast(quantity#120 as decimal(10,0)) * list_price#121))] +Aggregate Attributes [2]: [sum#135, count#136] +Results [2]: [sum#142, count#143] (691) Exchange -Input [2]: [sum#141, count#142] +Input [2]: [sum#142, count#143] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=125] (692) HashAggregate -Input [2]: [sum#141, count#142] +Input [2]: [sum#142, count#143] Keys: [] -Functions [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))] -Aggregate Attributes [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136] -Results [1]: [avg((cast(quantity#119 as decimal(10,0)) * list_price#120))#136 AS average_sales#137] +Functions [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))] +Aggregate Attributes [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137] +Results [1]: [avg((cast(quantity#120 as decimal(10,0)) * list_price#121))#137 AS average_sales#138] (693) AdaptiveSparkPlan -Output [1]: [average_sales#137] +Output [1]: [average_sales#138] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 176 Hosting Expression = Subquery subquery#42, [id=#43] +Subquery:2 Hosting operator id = 176 Hosting Expression = Subquery subquery#41, [id=#42] AdaptiveSparkPlan (701) +- == Final Plan == NativeProject (697) @@ -3839,46 +3839,46 @@ AdaptiveSparkPlan (701) (698) Scan parquet -Output [4]: [d_week_seq#143, d_year#144, d_moy#145, d_dom#146] +Output [4]: [d_week_seq#144, d_year#145, d_moy#146, d_dom#147] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), IsNotNull(d_dom), EqualTo(d_year,2000), EqualTo(d_moy,12), EqualTo(d_dom,11)] ReadSchema: struct (695) InputAdapter -Input [4]: [d_week_seq#143, d_year#144, d_moy#145, d_dom#146] -Arguments: [#143, #144, #145, #146] +Input [4]: [d_week_seq#144, d_year#145, d_moy#146, d_dom#147] +Arguments: [#144, #145, #146, #147] (696) NativeFilter -Input [4]: [#143#143, #144#144, #145#145, #146#146] -Condition : (((((isnotnull(d_year#144) AND isnotnull(d_moy#145)) AND isnotnull(d_dom#146)) AND (d_year#144 = 2000)) AND (d_moy#145 = 12)) AND (d_dom#146 = 11)) +Input [4]: [#144#144, #145#145, #146#146, #147#147] +Condition : (((((isnotnull(d_year#145) AND isnotnull(d_moy#146)) AND isnotnull(d_dom#147)) AND (d_year#145 = 2000)) AND (d_moy#146 = 12)) AND (d_dom#147 = 11)) (697) NativeProject -Output [1]: [d_week_seq#143] -Input [4]: [#143#143, #144#144, #145#145, #146#146] +Output [1]: [d_week_seq#144] +Input [4]: [#144#144, #145#145, #146#146, #147#147] (698) Scan parquet -Output [4]: [d_week_seq#143, d_year#144, d_moy#145, d_dom#146] +Output [4]: [d_week_seq#144, d_year#145, d_moy#146, d_dom#147] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), IsNotNull(d_dom), EqualTo(d_year,2000), EqualTo(d_moy,12), EqualTo(d_dom,11)] ReadSchema: struct (699) Filter -Input [4]: [d_week_seq#143, d_year#144, d_moy#145, d_dom#146] -Condition : (((((isnotnull(d_year#144) AND isnotnull(d_moy#145)) AND isnotnull(d_dom#146)) AND (d_year#144 = 2000)) AND (d_moy#145 = 12)) AND (d_dom#146 = 11)) +Input [4]: [d_week_seq#144, d_year#145, d_moy#146, d_dom#147] +Condition : (((((isnotnull(d_year#145) AND isnotnull(d_moy#146)) AND isnotnull(d_dom#147)) AND (d_year#145 = 2000)) AND (d_moy#146 = 12)) AND (d_dom#147 = 11)) (700) Project -Output [1]: [d_week_seq#143] -Input [4]: [d_week_seq#143, d_year#144, d_moy#145, d_dom#146] +Output [1]: [d_week_seq#144] +Input [4]: [d_week_seq#144, d_year#145, d_moy#146, d_dom#147] (701) AdaptiveSparkPlan -Output [1]: [d_week_seq#143] +Output [1]: [d_week_seq#144] Arguments: isFinalPlan=true -Subquery:3 Hosting operator id = 220 Hosting Expression = ReusedSubquery Subquery subquery#53, [id=#54] +Subquery:3 Hosting operator id = 220 Hosting Expression = ReusedSubquery Subquery subquery#54, [id=#55] -Subquery:4 Hosting operator id = 203 Hosting Expression = Subquery subquery#63, [id=#64] +Subquery:4 Hosting operator id = 203 Hosting Expression = Subquery subquery#64, [id=#65] AdaptiveSparkPlan (709) +- == Final Plan == NativeProject (705) @@ -3892,41 +3892,41 @@ AdaptiveSparkPlan (709) (706) Scan parquet -Output [4]: [d_week_seq#147, d_year#148, d_moy#149, d_dom#150] +Output [4]: [d_week_seq#148, d_year#149, d_moy#150, d_dom#151] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), IsNotNull(d_dom), EqualTo(d_year,1999), EqualTo(d_moy,12), EqualTo(d_dom,11)] ReadSchema: struct (703) InputAdapter -Input [4]: [d_week_seq#147, d_year#148, d_moy#149, d_dom#150] -Arguments: [#147, #148, #149, #150] +Input [4]: [d_week_seq#148, d_year#149, d_moy#150, d_dom#151] +Arguments: [#148, #149, #150, #151] (704) NativeFilter -Input [4]: [#147#147, #148#148, #149#149, #150#150] -Condition : (((((isnotnull(d_year#148) AND isnotnull(d_moy#149)) AND isnotnull(d_dom#150)) AND (d_year#148 = 1999)) AND (d_moy#149 = 12)) AND (d_dom#150 = 11)) +Input [4]: [#148#148, #149#149, #150#150, #151#151] +Condition : (((((isnotnull(d_year#149) AND isnotnull(d_moy#150)) AND isnotnull(d_dom#151)) AND (d_year#149 = 1999)) AND (d_moy#150 = 12)) AND (d_dom#151 = 11)) (705) NativeProject -Output [1]: [d_week_seq#147] -Input [4]: [#147#147, #148#148, #149#149, #150#150] +Output [1]: [d_week_seq#148] +Input [4]: [#148#148, #149#149, #150#150, #151#151] (706) Scan parquet -Output [4]: [d_week_seq#147, d_year#148, d_moy#149, d_dom#150] +Output [4]: [d_week_seq#148, d_year#149, d_moy#150, d_dom#151] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), IsNotNull(d_dom), EqualTo(d_year,1999), EqualTo(d_moy,12), EqualTo(d_dom,11)] ReadSchema: struct (707) Filter -Input [4]: [d_week_seq#147, d_year#148, d_moy#149, d_dom#150] -Condition : (((((isnotnull(d_year#148) AND isnotnull(d_moy#149)) AND isnotnull(d_dom#150)) AND (d_year#148 = 1999)) AND (d_moy#149 = 12)) AND (d_dom#150 = 11)) +Input [4]: [d_week_seq#148, d_year#149, d_moy#150, d_dom#151] +Condition : (((((isnotnull(d_year#149) AND isnotnull(d_moy#150)) AND isnotnull(d_dom#151)) AND (d_year#149 = 1999)) AND (d_moy#150 = 12)) AND (d_dom#151 = 11)) (708) Project -Output [1]: [d_week_seq#147] -Input [4]: [d_week_seq#147, d_year#148, d_moy#149, d_dom#150] +Output [1]: [d_week_seq#148] +Input [4]: [d_week_seq#148, d_year#149, d_moy#150, d_dom#151] (709) AdaptiveSparkPlan -Output [1]: [d_week_seq#147] +Output [1]: [d_week_seq#148] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt index e4d563b23..832bc5fa9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt @@ -314,25 +314,25 @@ Input [2]: [ca_zip#8, _c1#12] Keys [1]: [ca_zip#8] Functions [1]: [partial_sum(_c1#12)] Aggregate Attributes [1]: [sum#13] -Results [2]: [ca_zip#8, #14#14] +Results [2]: [ca_zip#8, #14] (53) NativeShuffleExchange -Input [2]: [ca_zip#8, #14#14] +Input [2]: [ca_zip#8, #14] Arguments: hashpartitioning(ca_zip#8, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [2]: [ca_zip#8, #14#14] +Output [2]: [ca_zip#8, #14] Arguments: X (55) AQEShuffleRead -Input [2]: [ca_zip#8, #14#14] +Input [2]: [ca_zip#8, #14] Arguments: coalesced (56) InputAdapter -Input [2]: [ca_zip#8, #14#14] +Input [2]: [ca_zip#8, #14] (57) NativeHashAggregate -Input [2]: [ca_zip#8, #14#14] +Input [2]: [ca_zip#8, #14] Keys [1]: [ca_zip#8] Functions [1]: [sum(UnscaledValue(cs_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_sales_price#3))#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt index 51e294987..f3d3f5ceb 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt @@ -457,47 +457,47 @@ Input [3]: [cs_order_number#5, _c1#17, _c2#18] Keys [1]: [cs_order_number#5] Functions [2]: [partial_sum(_c1#17), partial_sum(_c2#18)] Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_ship_cost#6))#19, sum(UnscaledValue(cs_net_profit#7))#20] -Results [2]: [cs_order_number#5, #21#21] +Results [3]: [cs_order_number#5, #21, #21] (77) NativeShuffleExchange -Input [2]: [cs_order_number#5, #21#21] +Input [3]: [cs_order_number#5, #21, #21] Arguments: hashpartitioning(cs_order_number#5, 100), ENSURE_REQUIREMENTS, [plan_id=10] (78) ShuffleQueryStage -Output [2]: [cs_order_number#5, #21#21] +Output [3]: [cs_order_number#5, #21, #21] Arguments: X (79) AQEShuffleRead -Input [2]: [cs_order_number#5, #21#21] +Input [3]: [cs_order_number#5, #21, #21] Arguments: coalesced (80) InputAdapter -Input [2]: [cs_order_number#5, #21#21] +Input [3]: [cs_order_number#5, #21, #21] (81) NativeHashAggregate -Input [2]: [cs_order_number#5, #21#21] +Input [3]: [cs_order_number#5, #21, #21] Keys [1]: [cs_order_number#5] Functions [2]: [merge_sum(UnscaledValue(cs_ext_ship_cost#6)), merge_sum(UnscaledValue(cs_net_profit#7))] Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_ship_cost#6))#19, sum(UnscaledValue(cs_net_profit#7))#20] -Results [2]: [cs_order_number#5, #21#21] +Results [3]: [cs_order_number#5, #21, #21] (82) NativeHashAggregate -Input [2]: [cs_order_number#5, #21#21] +Input [3]: [cs_order_number#5, #21, #21] Keys: [] Functions [3]: [merge_sum(UnscaledValue(cs_ext_ship_cost#6)), merge_sum(UnscaledValue(cs_net_profit#7)), partial_count(distinct cs_order_number#5)] Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_ship_cost#6))#19, sum(UnscaledValue(cs_net_profit#7))#20, count(cs_order_number#5)#22] -Results [1]: [#21#21] +Results [3]: [#21, #21, #21] (83) NativeShuffleExchange -Input [1]: [#21#21] +Input [3]: [#21, #21, #21] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=11] (84) ShuffleQueryStage -Output [1]: [#21#21] +Output [3]: [#21, #21, #21] Arguments: X (85) NativeHashAggregate -Input [1]: [#21#21] +Input [3]: [#21, #21, #21] Keys: [] Functions [3]: [sum(UnscaledValue(cs_ext_ship_cost#6)), sum(UnscaledValue(cs_net_profit#7)), count(distinct cs_order_number#5)] Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_ship_cost#6))#19, sum(UnscaledValue(cs_net_profit#7))#20, count(cs_order_number#5)#22] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q17.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q17.txt index 1023ecbac..f77dcb9d9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q17.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q17.txt @@ -646,33 +646,33 @@ Input [9]: [i_item_id#24, i_item_desc#25, s_state#22, _c3#26, _c4#27, _c5#28, _c Keys [3]: [i_item_id#24, i_item_desc#25, s_state#22] Functions [9]: [partial_count(_c3#26), partial_avg(_c3#26), partial_stddev_samp(_c4#27), partial_count(_c5#28), partial_avg(_c5#28), partial_stddev_samp(_c6#29), partial_count(_c7#30), partial_avg(_c7#30), partial_stddev_samp(_c8#31)] Aggregate Attributes [18]: [count#32, sum#33, count#34, n#35, avg#36, m2#37, count#38, sum#39, count#40, n#41, avg#42, m2#43, count#44, sum#45, count#46, n#47, avg#48, m2#49] -Results [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Results [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] (111) NativeShuffleExchange -Input [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] Arguments: hashpartitioning(i_item_id#24, i_item_desc#25, s_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=14] (112) ShuffleQueryStage -Output [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Output [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] Arguments: X (113) AQEShuffleRead -Input [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] Arguments: coalesced (114) InputAdapter -Input [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] (115) NativeHashAggregate -Input [4]: [i_item_id#24, i_item_desc#25, s_state#22, #50#50] +Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51, #50, #51] Keys [3]: [i_item_id#24, i_item_desc#25, s_state#22] Functions [9]: [count(ss_quantity#6), avg(ss_quantity#6), stddev_samp(cast(ss_quantity#6 as double)), count(sr_return_quantity#11), avg(sr_return_quantity#11), stddev_samp(cast(sr_return_quantity#11 as double)), count(cs_quantity#15), avg(cs_quantity#15), stddev_samp(cast(cs_quantity#15 as double))] -Aggregate Attributes [9]: [count(ss_quantity#6)#51, avg(ss_quantity#6)#52, stddev_samp(cast(ss_quantity#6 as double))#53, count(sr_return_quantity#11)#54, avg(sr_return_quantity#11)#55, stddev_samp(cast(sr_return_quantity#11 as double))#56, count(cs_quantity#15)#57, avg(cs_quantity#15)#58, stddev_samp(cast(cs_quantity#15 as double))#59] -Results [12]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#51, avg(ss_quantity#6)#52, stddev_samp(cast(ss_quantity#6 as double))#53, count(sr_return_quantity#11)#54, avg(sr_return_quantity#11)#55, stddev_samp(cast(sr_return_quantity#11 as double))#56, count(cs_quantity#15)#57, avg(cs_quantity#15)#58, stddev_samp(cast(cs_quantity#15 as double))#59] +Aggregate Attributes [9]: [count(ss_quantity#6)#52, avg(ss_quantity#6)#53, stddev_samp(cast(ss_quantity#6 as double))#54, count(sr_return_quantity#11)#55, avg(sr_return_quantity#11)#56, stddev_samp(cast(sr_return_quantity#11 as double))#57, count(cs_quantity#15)#58, avg(cs_quantity#15)#59, stddev_samp(cast(cs_quantity#15 as double))#60] +Results [12]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#52, avg(ss_quantity#6)#53, stddev_samp(cast(ss_quantity#6 as double))#54, count(sr_return_quantity#11)#55, avg(sr_return_quantity#11)#56, stddev_samp(cast(sr_return_quantity#11 as double))#57, count(cs_quantity#15)#58, avg(cs_quantity#15)#59, stddev_samp(cast(cs_quantity#15 as double))#60] (116) NativeProject -Output [15]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#51 AS store_sales_quantitycount#60, avg(ss_quantity#6)#52 AS store_sales_quantityave#61, stddev_samp(cast(ss_quantity#6 as double))#53 AS store_sales_quantitystdev#62, (stddev_samp(cast(ss_quantity#6 as double))#53 / avg(ss_quantity#6)#52) AS store_sales_quantitycov#63, count(sr_return_quantity#11)#54 AS as_store_returns_quantitycount#64, avg(sr_return_quantity#11)#55 AS as_store_returns_quantityave#65, stddev_samp(cast(sr_return_quantity#11 as double))#56 AS as_store_returns_quantitystdev#66, (stddev_samp(cast(sr_return_quantity#11 as double))#56 / avg(sr_return_quantity#11)#55) AS store_returns_quantitycov#67, count(cs_quantity#15)#57 AS catalog_sales_quantitycount#68, avg(cs_quantity#15)#58 AS catalog_sales_quantityave#69, (stddev_samp(cast(cs_quantity#15 as double))#59 / avg(cs_quantity#15)#58) AS catalog_sales_quantitystdev#70, (stddev_samp(cast(cs_quantity#15 as double))#59 / avg(cs_quantity#15)#58) AS catalog_sales_quantitycov#71] -Input [12]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#51, avg(ss_quantity#6)#52, stddev_samp(cast(ss_quantity#6 as double))#53, count(sr_return_quantity#11)#54, avg(sr_return_quantity#11)#55, stddev_samp(cast(sr_return_quantity#11 as double))#56, count(cs_quantity#15)#57, avg(cs_quantity#15)#58, stddev_samp(cast(cs_quantity#15 as double))#59] +Output [15]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#52 AS store_sales_quantitycount#61, avg(ss_quantity#6)#53 AS store_sales_quantityave#62, stddev_samp(cast(ss_quantity#6 as double))#54 AS store_sales_quantitystdev#63, (stddev_samp(cast(ss_quantity#6 as double))#54 / avg(ss_quantity#6)#53) AS store_sales_quantitycov#64, count(sr_return_quantity#11)#55 AS as_store_returns_quantitycount#65, avg(sr_return_quantity#11)#56 AS as_store_returns_quantityave#66, stddev_samp(cast(sr_return_quantity#11 as double))#57 AS as_store_returns_quantitystdev#67, (stddev_samp(cast(sr_return_quantity#11 as double))#57 / avg(sr_return_quantity#11)#56) AS store_returns_quantitycov#68, count(cs_quantity#15)#58 AS catalog_sales_quantitycount#69, avg(cs_quantity#15)#59 AS catalog_sales_quantityave#70, (stddev_samp(cast(cs_quantity#15 as double))#60 / avg(cs_quantity#15)#59) AS catalog_sales_quantitystdev#71, (stddev_samp(cast(cs_quantity#15 as double))#60 / avg(cs_quantity#15)#59) AS catalog_sales_quantitycov#72] +Input [12]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#52, avg(ss_quantity#6)#53, stddev_samp(cast(ss_quantity#6 as double))#54, count(sr_return_quantity#11)#55, avg(sr_return_quantity#11)#56, stddev_samp(cast(sr_return_quantity#11 as double))#57, count(cs_quantity#15)#58, avg(cs_quantity#15)#59, stddev_samp(cast(cs_quantity#15 as double))#60] (117) Scan parquet Output [6]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_store_sk#4, ss_ticket_number#5, ss_quantity#6] @@ -850,19 +850,19 @@ Input [6]: [ss_item_sk#2, ss_store_sk#4, ss_quantity#6, sr_return_quantity#11, c Arguments: [cs_sold_date_sk#12 ASC NULLS FIRST], false, 0 (155) Scan parquet -Output [2]: [d_date_sk#20, d_quarter_name#72] +Output [2]: [d_date_sk#20, d_quarter_name#73] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_quarter_name, [2001Q1,2001Q2,2001Q3]), IsNotNull(d_date_sk)] ReadSchema: struct (156) Filter -Input [2]: [d_date_sk#20, d_quarter_name#72] -Condition : (d_quarter_name#72 IN (2001Q1,2001Q2,2001Q3) AND isnotnull(d_date_sk#20)) +Input [2]: [d_date_sk#20, d_quarter_name#73] +Condition : (d_quarter_name#73 IN (2001Q1,2001Q2,2001Q3) AND isnotnull(d_date_sk#20)) (157) Project Output [1]: [d_date_sk#20] -Input [2]: [d_date_sk#20, d_quarter_name#72] +Input [2]: [d_date_sk#20, d_quarter_name#73] (158) Exchange Input [1]: [d_date_sk#20] @@ -961,24 +961,24 @@ Input [6]: [ss_quantity#6, sr_return_quantity#11, cs_quantity#15, s_state#22, i_ Keys [3]: [i_item_id#24, i_item_desc#25, s_state#22] Functions [9]: [partial_count(ss_quantity#6), partial_avg(ss_quantity#6), partial_stddev_samp(cast(ss_quantity#6 as double)), partial_count(sr_return_quantity#11), partial_avg(sr_return_quantity#11), partial_stddev_samp(cast(sr_return_quantity#11 as double)), partial_count(cs_quantity#15), partial_avg(cs_quantity#15), partial_stddev_samp(cast(cs_quantity#15 as double))] Aggregate Attributes [18]: [count#32, sum#33, count#34, n#35, avg#36, m2#37, count#38, sum#39, count#40, n#41, avg#42, m2#43, count#44, sum#45, count#46, n#47, avg#48, m2#49] -Results [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#73, sum#74, count#75, n#76, avg#77, m2#78, count#79, sum#80, count#81, n#82, avg#83, m2#84, count#85, sum#86, count#87, n#88, avg#89, m2#90] +Results [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#74, sum#75, count#76, n#77, avg#78, m2#79, count#80, sum#81, count#82, n#83, avg#84, m2#85, count#86, sum#87, count#88, n#89, avg#90, m2#91] (179) Exchange -Input [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#73, sum#74, count#75, n#76, avg#77, m2#78, count#79, sum#80, count#81, n#82, avg#83, m2#84, count#85, sum#86, count#87, n#88, avg#89, m2#90] +Input [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#74, sum#75, count#76, n#77, avg#78, m2#79, count#80, sum#81, count#82, n#83, avg#84, m2#85, count#86, sum#87, count#88, n#89, avg#90, m2#91] Arguments: hashpartitioning(i_item_id#24, i_item_desc#25, s_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=29] (180) HashAggregate -Input [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#73, sum#74, count#75, n#76, avg#77, m2#78, count#79, sum#80, count#81, n#82, avg#83, m2#84, count#85, sum#86, count#87, n#88, avg#89, m2#90] +Input [21]: [i_item_id#24, i_item_desc#25, s_state#22, count#74, sum#75, count#76, n#77, avg#78, m2#79, count#80, sum#81, count#82, n#83, avg#84, m2#85, count#86, sum#87, count#88, n#89, avg#90, m2#91] Keys [3]: [i_item_id#24, i_item_desc#25, s_state#22] Functions [9]: [count(ss_quantity#6), avg(ss_quantity#6), stddev_samp(cast(ss_quantity#6 as double)), count(sr_return_quantity#11), avg(sr_return_quantity#11), stddev_samp(cast(sr_return_quantity#11 as double)), count(cs_quantity#15), avg(cs_quantity#15), stddev_samp(cast(cs_quantity#15 as double))] -Aggregate Attributes [9]: [count(ss_quantity#6)#51, avg(ss_quantity#6)#52, stddev_samp(cast(ss_quantity#6 as double))#53, count(sr_return_quantity#11)#54, avg(sr_return_quantity#11)#55, stddev_samp(cast(sr_return_quantity#11 as double))#56, count(cs_quantity#15)#57, avg(cs_quantity#15)#58, stddev_samp(cast(cs_quantity#15 as double))#59] -Results [15]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#51 AS store_sales_quantitycount#60, avg(ss_quantity#6)#52 AS store_sales_quantityave#61, stddev_samp(cast(ss_quantity#6 as double))#53 AS store_sales_quantitystdev#62, (stddev_samp(cast(ss_quantity#6 as double))#53 / avg(ss_quantity#6)#52) AS store_sales_quantitycov#63, count(sr_return_quantity#11)#54 AS as_store_returns_quantitycount#64, avg(sr_return_quantity#11)#55 AS as_store_returns_quantityave#65, stddev_samp(cast(sr_return_quantity#11 as double))#56 AS as_store_returns_quantitystdev#66, (stddev_samp(cast(sr_return_quantity#11 as double))#56 / avg(sr_return_quantity#11)#55) AS store_returns_quantitycov#67, count(cs_quantity#15)#57 AS catalog_sales_quantitycount#68, avg(cs_quantity#15)#58 AS catalog_sales_quantityave#69, (stddev_samp(cast(cs_quantity#15 as double))#59 / avg(cs_quantity#15)#58) AS catalog_sales_quantitystdev#70, (stddev_samp(cast(cs_quantity#15 as double))#59 / avg(cs_quantity#15)#58) AS catalog_sales_quantitycov#71] +Aggregate Attributes [9]: [count(ss_quantity#6)#52, avg(ss_quantity#6)#53, stddev_samp(cast(ss_quantity#6 as double))#54, count(sr_return_quantity#11)#55, avg(sr_return_quantity#11)#56, stddev_samp(cast(sr_return_quantity#11 as double))#57, count(cs_quantity#15)#58, avg(cs_quantity#15)#59, stddev_samp(cast(cs_quantity#15 as double))#60] +Results [15]: [i_item_id#24, i_item_desc#25, s_state#22, count(ss_quantity#6)#52 AS store_sales_quantitycount#61, avg(ss_quantity#6)#53 AS store_sales_quantityave#62, stddev_samp(cast(ss_quantity#6 as double))#54 AS store_sales_quantitystdev#63, (stddev_samp(cast(ss_quantity#6 as double))#54 / avg(ss_quantity#6)#53) AS store_sales_quantitycov#64, count(sr_return_quantity#11)#55 AS as_store_returns_quantitycount#65, avg(sr_return_quantity#11)#56 AS as_store_returns_quantityave#66, stddev_samp(cast(sr_return_quantity#11 as double))#57 AS as_store_returns_quantitystdev#67, (stddev_samp(cast(sr_return_quantity#11 as double))#57 / avg(sr_return_quantity#11)#56) AS store_returns_quantitycov#68, count(cs_quantity#15)#58 AS catalog_sales_quantitycount#69, avg(cs_quantity#15)#59 AS catalog_sales_quantityave#70, (stddev_samp(cast(cs_quantity#15 as double))#60 / avg(cs_quantity#15)#59) AS catalog_sales_quantitystdev#71, (stddev_samp(cast(cs_quantity#15 as double))#60 / avg(cs_quantity#15)#59) AS catalog_sales_quantitycov#72] (181) TakeOrderedAndProject -Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#60, store_sales_quantityave#61, store_sales_quantitystdev#62, store_sales_quantitycov#63, as_store_returns_quantitycount#64, as_store_returns_quantityave#65, as_store_returns_quantitystdev#66, store_returns_quantitycov#67, catalog_sales_quantitycount#68, catalog_sales_quantityave#69, catalog_sales_quantitystdev#70, catalog_sales_quantitycov#71] -Arguments: X, [i_item_id#24 ASC NULLS FIRST, i_item_desc#25 ASC NULLS FIRST, s_state#22 ASC NULLS FIRST], [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#60, store_sales_quantityave#61, store_sales_quantitystdev#62, store_sales_quantitycov#63, as_store_returns_quantitycount#64, as_store_returns_quantityave#65, as_store_returns_quantitystdev#66, store_returns_quantitycov#67, catalog_sales_quantitycount#68, catalog_sales_quantityave#69, catalog_sales_quantitystdev#70, catalog_sales_quantitycov#71] +Input [15]: [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#61, store_sales_quantityave#62, store_sales_quantitystdev#63, store_sales_quantitycov#64, as_store_returns_quantitycount#65, as_store_returns_quantityave#66, as_store_returns_quantitystdev#67, store_returns_quantitycov#68, catalog_sales_quantitycount#69, catalog_sales_quantityave#70, catalog_sales_quantitystdev#71, catalog_sales_quantitycov#72] +Arguments: X, [i_item_id#24 ASC NULLS FIRST, i_item_desc#25 ASC NULLS FIRST, s_state#22 ASC NULLS FIRST], [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#61, store_sales_quantityave#62, store_sales_quantitystdev#63, store_sales_quantitycov#64, as_store_returns_quantitycount#65, as_store_returns_quantityave#66, as_store_returns_quantitystdev#67, store_returns_quantitycov#68, catalog_sales_quantitycount#69, catalog_sales_quantityave#70, catalog_sales_quantitystdev#71, catalog_sales_quantitycov#72] (182) AdaptiveSparkPlan -Output [15]: [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#60, store_sales_quantityave#61, store_sales_quantitystdev#62, store_sales_quantitycov#63, as_store_returns_quantitycount#64, as_store_returns_quantityave#65, as_store_returns_quantitystdev#66, store_returns_quantitycov#67, catalog_sales_quantitycount#68, catalog_sales_quantityave#69, catalog_sales_quantitystdev#70, catalog_sales_quantitycov#71] +Output [15]: [i_item_id#24, i_item_desc#25, s_state#22, store_sales_quantitycount#61, store_sales_quantityave#62, store_sales_quantitystdev#63, store_sales_quantitycov#64, as_store_returns_quantitycount#65, as_store_returns_quantityave#66, as_store_returns_quantitystdev#67, store_returns_quantitycov#68, catalog_sales_quantitycount#69, catalog_sales_quantityave#70, catalog_sales_quantitystdev#71, catalog_sales_quantitycov#72] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q18.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q18.txt index 0f2e1b470..fa49d9044 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q18.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q18.txt @@ -586,36 +586,36 @@ Input [12]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_group Keys [5]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32] Functions [7]: [partial_avg(_c5#33), partial_avg(_c6#34), partial_avg(_c7#35), partial_avg(_c8#36), partial_avg(_c9#37), partial_avg(_c10#38), partial_avg(_c11#39)] Aggregate Attributes [14]: [sum#40, count#41, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51, sum#52, count#53] -Results [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Results [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] (100) NativeShuffleExchange -Input [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] Arguments: hashpartitioning(i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, 100), ENSURE_REQUIREMENTS, [plan_id=13] (101) ShuffleQueryStage -Output [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Output [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] Arguments: X (102) AQEShuffleRead -Input [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] Arguments: coalesced (103) InputAdapter -Input [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] (104) NativeHashAggregate -Input [6]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54#54] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55, #54, #55] Keys [5]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32] Functions [7]: [avg(cast(cs_quantity#5 as decimal(12,2))), avg(cast(cs_list_price#6 as decimal(12,2))), avg(cast(cs_coupon_amt#8 as decimal(12,2))), avg(cast(cs_sales_price#7 as decimal(12,2))), avg(cast(cs_net_profit#9 as decimal(12,2))), avg(cast(c_birth_year#18 as decimal(12,2))), avg(cast(cd_dep_count#13 as decimal(12,2)))] -Aggregate Attributes [7]: [avg(cast(cs_quantity#5 as decimal(12,2)))#55, avg(cast(cs_list_price#6 as decimal(12,2)))#56, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57, avg(cast(cs_sales_price#7 as decimal(12,2)))#58, avg(cast(cs_net_profit#9 as decimal(12,2)))#59, avg(cast(c_birth_year#18 as decimal(12,2)))#60, avg(cast(cd_dep_count#13 as decimal(12,2)))#61] -Results [12]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, avg(cast(cs_quantity#5 as decimal(12,2)))#55, avg(cast(cs_list_price#6 as decimal(12,2)))#56, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57, avg(cast(cs_sales_price#7 as decimal(12,2)))#58, avg(cast(cs_net_profit#9 as decimal(12,2)))#59, avg(cast(c_birth_year#18 as decimal(12,2)))#60, avg(cast(cd_dep_count#13 as decimal(12,2)))#61] +Aggregate Attributes [7]: [avg(cast(cs_quantity#5 as decimal(12,2)))#56, avg(cast(cs_list_price#6 as decimal(12,2)))#57, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58, avg(cast(cs_sales_price#7 as decimal(12,2)))#59, avg(cast(cs_net_profit#9 as decimal(12,2)))#60, avg(cast(c_birth_year#18 as decimal(12,2)))#61, avg(cast(cd_dep_count#13 as decimal(12,2)))#62] +Results [12]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, avg(cast(cs_quantity#5 as decimal(12,2)))#56, avg(cast(cs_list_price#6 as decimal(12,2)))#57, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58, avg(cast(cs_sales_price#7 as decimal(12,2)))#59, avg(cast(cs_net_profit#9 as decimal(12,2)))#60, avg(cast(c_birth_year#18 as decimal(12,2)))#61, avg(cast(cd_dep_count#13 as decimal(12,2)))#62] (105) NativeProject -Output [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, avg(cast(cs_quantity#5 as decimal(12,2)))#55 AS agg1#62, avg(cast(cs_list_price#6 as decimal(12,2)))#56 AS agg2#63, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57 AS agg3#64, avg(cast(cs_sales_price#7 as decimal(12,2)))#58 AS agg4#65, avg(cast(cs_net_profit#9 as decimal(12,2)))#59 AS agg5#66, avg(cast(c_birth_year#18 as decimal(12,2)))#60 AS agg6#67, avg(cast(cd_dep_count#13 as decimal(12,2)))#61 AS agg7#68] -Input [12]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, avg(cast(cs_quantity#5 as decimal(12,2)))#55, avg(cast(cs_list_price#6 as decimal(12,2)))#56, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57, avg(cast(cs_sales_price#7 as decimal(12,2)))#58, avg(cast(cs_net_profit#9 as decimal(12,2)))#59, avg(cast(c_birth_year#18 as decimal(12,2)))#60, avg(cast(cd_dep_count#13 as decimal(12,2)))#61] +Output [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, avg(cast(cs_quantity#5 as decimal(12,2)))#56 AS agg1#63, avg(cast(cs_list_price#6 as decimal(12,2)))#57 AS agg2#64, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58 AS agg3#65, avg(cast(cs_sales_price#7 as decimal(12,2)))#59 AS agg4#66, avg(cast(cs_net_profit#9 as decimal(12,2)))#60 AS agg5#67, avg(cast(c_birth_year#18 as decimal(12,2)))#61 AS agg6#68, avg(cast(cd_dep_count#13 as decimal(12,2)))#62 AS agg7#69] +Input [12]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, avg(cast(cs_quantity#5 as decimal(12,2)))#56, avg(cast(cs_list_price#6 as decimal(12,2)))#57, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58, avg(cast(cs_sales_price#7 as decimal(12,2)))#59, avg(cast(cs_net_profit#9 as decimal(12,2)))#60, avg(cast(c_birth_year#18 as decimal(12,2)))#61, avg(cast(cd_dep_count#13 as decimal(12,2)))#62] (106) NativeTakeOrdered -Input [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#62, agg2#63, agg3#64, agg4#65, agg5#66, agg6#67, agg7#68] +Input [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#63, agg2#64, agg3#65, agg4#66, agg5#67, agg6#68, agg7#69] Arguments: X, [ca_country#29 DESC NULLS LAST, ca_state#30 DESC NULLS LAST, ca_county#31 DESC NULLS LAST, i_item_id#28 ASC NULLS FIRST] (107) Scan parquet @@ -872,24 +872,24 @@ Input [12]: [cs_quantity#5, cs_list_price#6, cs_sales_price#7, cs_coupon_amt#8, Keys [5]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32] Functions [7]: [partial_avg(cast(cs_quantity#5 as decimal(12,2))), partial_avg(cast(cs_list_price#6 as decimal(12,2))), partial_avg(cast(cs_coupon_amt#8 as decimal(12,2))), partial_avg(cast(cs_sales_price#7 as decimal(12,2))), partial_avg(cast(cs_net_profit#9 as decimal(12,2))), partial_avg(cast(c_birth_year#18 as decimal(12,2))), partial_avg(cast(cd_dep_count#13 as decimal(12,2)))] Aggregate Attributes [14]: [sum#40, count#41, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51, sum#52, count#53] -Results [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#69, count#70, sum#71, count#72, sum#73, count#74, sum#75, count#76, sum#77, count#78, sum#79, count#80, sum#81, count#82] +Results [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#70, count#71, sum#72, count#73, sum#74, count#75, sum#76, count#77, sum#78, count#79, sum#80, count#81, sum#82, count#83] (162) Exchange -Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#69, count#70, sum#71, count#72, sum#73, count#74, sum#75, count#76, sum#77, count#78, sum#79, count#80, sum#81, count#82] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#70, count#71, sum#72, count#73, sum#74, count#75, sum#76, count#77, sum#78, count#79, sum#80, count#81, sum#82, count#83] Arguments: hashpartitioning(i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, 100), ENSURE_REQUIREMENTS, [plan_id=26] (163) HashAggregate -Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#69, count#70, sum#71, count#72, sum#73, count#74, sum#75, count#76, sum#77, count#78, sum#79, count#80, sum#81, count#82] +Input [19]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32, sum#70, count#71, sum#72, count#73, sum#74, count#75, sum#76, count#77, sum#78, count#79, sum#80, count#81, sum#82, count#83] Keys [5]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, spark_grouping_id#32] Functions [7]: [avg(cast(cs_quantity#5 as decimal(12,2))), avg(cast(cs_list_price#6 as decimal(12,2))), avg(cast(cs_coupon_amt#8 as decimal(12,2))), avg(cast(cs_sales_price#7 as decimal(12,2))), avg(cast(cs_net_profit#9 as decimal(12,2))), avg(cast(c_birth_year#18 as decimal(12,2))), avg(cast(cd_dep_count#13 as decimal(12,2)))] -Aggregate Attributes [7]: [avg(cast(cs_quantity#5 as decimal(12,2)))#55, avg(cast(cs_list_price#6 as decimal(12,2)))#56, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57, avg(cast(cs_sales_price#7 as decimal(12,2)))#58, avg(cast(cs_net_profit#9 as decimal(12,2)))#59, avg(cast(c_birth_year#18 as decimal(12,2)))#60, avg(cast(cd_dep_count#13 as decimal(12,2)))#61] -Results [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, avg(cast(cs_quantity#5 as decimal(12,2)))#55 AS agg1#62, avg(cast(cs_list_price#6 as decimal(12,2)))#56 AS agg2#63, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#57 AS agg3#64, avg(cast(cs_sales_price#7 as decimal(12,2)))#58 AS agg4#65, avg(cast(cs_net_profit#9 as decimal(12,2)))#59 AS agg5#66, avg(cast(c_birth_year#18 as decimal(12,2)))#60 AS agg6#67, avg(cast(cd_dep_count#13 as decimal(12,2)))#61 AS agg7#68] +Aggregate Attributes [7]: [avg(cast(cs_quantity#5 as decimal(12,2)))#56, avg(cast(cs_list_price#6 as decimal(12,2)))#57, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58, avg(cast(cs_sales_price#7 as decimal(12,2)))#59, avg(cast(cs_net_profit#9 as decimal(12,2)))#60, avg(cast(c_birth_year#18 as decimal(12,2)))#61, avg(cast(cd_dep_count#13 as decimal(12,2)))#62] +Results [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, avg(cast(cs_quantity#5 as decimal(12,2)))#56 AS agg1#63, avg(cast(cs_list_price#6 as decimal(12,2)))#57 AS agg2#64, avg(cast(cs_coupon_amt#8 as decimal(12,2)))#58 AS agg3#65, avg(cast(cs_sales_price#7 as decimal(12,2)))#59 AS agg4#66, avg(cast(cs_net_profit#9 as decimal(12,2)))#60 AS agg5#67, avg(cast(c_birth_year#18 as decimal(12,2)))#61 AS agg6#68, avg(cast(cd_dep_count#13 as decimal(12,2)))#62 AS agg7#69] (164) TakeOrderedAndProject -Input [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#62, agg2#63, agg3#64, agg4#65, agg5#66, agg6#67, agg7#68] -Arguments: X, [ca_country#29 DESC NULLS LAST, ca_state#30 DESC NULLS LAST, ca_county#31 DESC NULLS LAST, i_item_id#28 ASC NULLS FIRST], [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#62, agg2#63, agg3#64, agg4#65, agg5#66, agg6#67, agg7#68] +Input [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#63, agg2#64, agg3#65, agg4#66, agg5#67, agg6#68, agg7#69] +Arguments: X, [ca_country#29 DESC NULLS LAST, ca_state#30 DESC NULLS LAST, ca_county#31 DESC NULLS LAST, i_item_id#28 ASC NULLS FIRST], [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#63, agg2#64, agg3#65, agg4#66, agg5#67, agg6#68, agg7#69] (165) AdaptiveSparkPlan -Output [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#62, agg2#63, agg3#64, agg4#65, agg5#66, agg6#67, agg7#68] +Output [11]: [i_item_id#28, ca_country#29, ca_state#30, ca_county#31, agg1#63, agg2#64, agg3#65, agg4#66, agg5#67, agg6#68, agg7#69] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt index 00c8b6a6d..0966f808d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt @@ -256,25 +256,25 @@ Input [8]: [d_week_seq#10, _c1#12, _c2#13, _c3#14, _c4#15, _c5#16, _c6#17, _c7#1 Keys [1]: [d_week_seq#10] Functions [7]: [partial_sum(_c1#12), partial_sum(_c2#13), partial_sum(_c3#14), partial_sum(_c4#15), partial_sum(_c5#16), partial_sum(_c6#17), partial_sum(_c7#18)] Aggregate Attributes [7]: [sum#19, sum#20, sum#21, sum#22, sum#23, sum#24, sum#25] -Results [2]: [d_week_seq#10, #26#26] +Results [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] (28) NativeShuffleExchange -Input [2]: [d_week_seq#10, #26#26] +Input [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] Arguments: hashpartitioning(d_week_seq#10, 100), ENSURE_REQUIREMENTS, [plan_id=3] (29) ShuffleQueryStage -Output [2]: [d_week_seq#10, #26#26] +Output [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] Arguments: X (30) AQEShuffleRead -Input [2]: [d_week_seq#10, #26#26] +Input [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] Arguments: coalesced (31) InputAdapter -Input [2]: [d_week_seq#10, #26#26] +Input [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] (32) NativeHashAggregate -Input [2]: [d_week_seq#10, #26#26] +Input [8]: [d_week_seq#10, #26, #26, #26, #26, #26, #26, #26] Keys [1]: [d_week_seq#10] Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#11 = Sunday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Monday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Tuesday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Wednesday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Thursday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Friday) THEN sales_price#4 END)), sum(UnscaledValue(CASE WHEN (d_day_name#11 = Saturday) THEN sales_price#4 END))] Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#11 = Sunday) THEN sales_price#4 END))#27, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Monday) THEN sales_price#4 END))#28, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Tuesday) THEN sales_price#4 END))#29, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Wednesday) THEN sales_price#4 END))#30, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Thursday) THEN sales_price#4 END))#31, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Friday) THEN sales_price#4 END))#32, sum(UnscaledValue(CASE WHEN (d_day_name#11 = Saturday) THEN sales_price#4 END))#33] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt index fcaa6348f..70ad51672 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt @@ -235,25 +235,25 @@ Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [partial_sum(_c5#12)] Aggregate Attributes [1]: [sum#13] -Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (37) NativeShuffleExchange -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: hashpartitioning(i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: X (39) AQEShuffleRead -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: coalesced (40) InputAdapter -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (41) NativeHashAggregate -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#3))#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q21.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q21.txt index 57c06912c..e2a1a0862 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q21.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q21.txt @@ -312,25 +312,25 @@ Input [4]: [w_warehouse_name#6, i_item_id#8, _c2#12, _c3#13] Keys [2]: [w_warehouse_name#6, i_item_id#8] Functions [2]: [partial_sum(_c2#12), partial_sum(_c3#13)] Aggregate Attributes [2]: [sum#14, sum#15] -Results [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Results [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] (52) NativeShuffleExchange -Input [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Input [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] Arguments: hashpartitioning(w_warehouse_name#6, i_item_id#8, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Output [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] Arguments: X (54) AQEShuffleRead -Input [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Input [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] Arguments: coalesced (55) InputAdapter -Input [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Input [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] (56) NativeHashAggregate -Input [3]: [w_warehouse_name#6, i_item_id#8, #16#16] +Input [4]: [w_warehouse_name#6, i_item_id#8, #16, #16] Keys [2]: [w_warehouse_name#6, i_item_id#8] Functions [2]: [sum(CASE WHEN (d_date#11 < 2000-03-11) THEN inv_quantity_on_hand#4 ELSE 0 END), sum(CASE WHEN (d_date#11 >= 2000-03-11) THEN inv_quantity_on_hand#4 ELSE 0 END)] Aggregate Attributes [2]: [sum(CASE WHEN (d_date#11 < 2000-03-11) THEN inv_quantity_on_hand#4 ELSE 0 END)#17, sum(CASE WHEN (d_date#11 >= 2000-03-11) THEN inv_quantity_on_hand#4 ELSE 0 END)#18] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q22.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q22.txt index a1fe16373..69747fa79 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q22.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q22.txt @@ -311,37 +311,37 @@ Input [6]: [inv_quantity_on_hand#4, i_product_name#13, i_brand#14, i_class#15, i Keys [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17] Functions [1]: [partial_avg(inv_quantity_on_hand#4)] Aggregate Attributes [2]: [sum#18, count#19] -Results [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Results [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] (52) NativeShuffleExchange -Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] Arguments: hashpartitioning(i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Output [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] Arguments: X (54) AQEShuffleRead -Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] Arguments: coalesced (55) InputAdapter -Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] (56) NativeHashAggregate -Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20#20] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, #20, #21] Keys [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17] Functions [1]: [avg(inv_quantity_on_hand#4)] -Aggregate Attributes [1]: [avg(inv_quantity_on_hand#4)#21] -Results [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, avg(inv_quantity_on_hand#4)#21] +Aggregate Attributes [1]: [avg(inv_quantity_on_hand#4)#22] +Results [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, avg(inv_quantity_on_hand#4)#22] (57) NativeProject -Output [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, avg(inv_quantity_on_hand#4)#21 AS qoh#22] -Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, avg(inv_quantity_on_hand#4)#21] +Output [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, avg(inv_quantity_on_hand#4)#22 AS qoh#23] +Input [6]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, avg(inv_quantity_on_hand#4)#22] (58) NativeTakeOrdered -Input [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#22] -Arguments: X, [qoh#22 ASC NULLS FIRST, i_product_name#13 ASC NULLS FIRST, i_brand#14 ASC NULLS FIRST, i_class#15 ASC NULLS FIRST, i_category#16 ASC NULLS FIRST] +Input [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#23] +Arguments: X, [qoh#23 ASC NULLS FIRST, i_product_name#13 ASC NULLS FIRST, i_brand#14 ASC NULLS FIRST, i_class#15 ASC NULLS FIRST, i_category#16 ASC NULLS FIRST] (59) Scan parquet Output [4]: [inv_date_sk#1, inv_item_sk#2, inv_warehouse_sk#3, inv_quantity_on_hand#4] @@ -478,24 +478,24 @@ Input [6]: [inv_quantity_on_hand#4, i_product_name#13, i_brand#14, i_class#15, i Keys [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17] Functions [1]: [partial_avg(inv_quantity_on_hand#4)] Aggregate Attributes [2]: [sum#18, count#19] -Results [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#23, count#24] +Results [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#24, count#25] (88) Exchange -Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#23, count#24] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#24, count#25] Arguments: hashpartitioning(i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, 100), ENSURE_REQUIREMENTS, [plan_id=14] (89) HashAggregate -Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#23, count#24] +Input [7]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17, sum#24, count#25] Keys [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, spark_grouping_id#17] Functions [1]: [avg(inv_quantity_on_hand#4)] -Aggregate Attributes [1]: [avg(inv_quantity_on_hand#4)#21] -Results [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, avg(inv_quantity_on_hand#4)#21 AS qoh#22] +Aggregate Attributes [1]: [avg(inv_quantity_on_hand#4)#22] +Results [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, avg(inv_quantity_on_hand#4)#22 AS qoh#23] (90) TakeOrderedAndProject -Input [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#22] -Arguments: X, [qoh#22 ASC NULLS FIRST, i_product_name#13 ASC NULLS FIRST, i_brand#14 ASC NULLS FIRST, i_class#15 ASC NULLS FIRST, i_category#16 ASC NULLS FIRST], [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#22] +Input [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#23] +Arguments: X, [qoh#23 ASC NULLS FIRST, i_product_name#13 ASC NULLS FIRST, i_brand#14 ASC NULLS FIRST, i_class#15 ASC NULLS FIRST, i_category#16 ASC NULLS FIRST], [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#23] (91) AdaptiveSparkPlan -Output [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#22] +Output [5]: [i_product_name#13, i_brand#14, i_class#15, i_category#16, qoh#23] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23a.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23a.txt index 1e595d829..75eab7cfc 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23a.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23a.txt @@ -484,10 +484,10 @@ 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#15] +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#15] +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] @@ -625,26 +625,26 @@ 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, #15#15] +Results [2]: [c_customer_sk#22, #26] (76) NativeHashAggregate -Input [2]: [c_customer_sk#22, #15#15] +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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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))#26 AS ssales#27] -Input [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#29]))) +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#27] +Input [2]: [c_customer_sk#22, ssales#28] (80) NativeSort Input [1]: [c_customer_sk#22] @@ -680,381 +680,381 @@ Input [3]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5] Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false (228) Scan parquet -Output [3]: [d_date_sk#30, d_year#31, d_moy#32] +Output [3]: [d_date_sk#31, d_year#32, d_moy#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (89) InputAdapter -Input [3]: [d_date_sk#30, d_year#31, d_moy#32] -Arguments: [#30, #31, #32] +Input [3]: [d_date_sk#31, d_year#32, d_moy#33] +Arguments: [#31, #32, #33] (90) NativeFilter -Input [3]: [#30#30, #31#31, #32#32] -Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2000)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) +Input [3]: [#31#31, #32#32, #33#33] +Condition : ((((isnotnull(d_year#32) AND isnotnull(d_moy#33)) AND (d_year#32 = 2000)) AND (d_moy#33 = 2)) AND isnotnull(d_date_sk#31)) (91) NativeProject -Output [1]: [d_date_sk#30] -Input [3]: [#30#30, #31#31, #32#32] +Output [1]: [d_date_sk#31] +Input [3]: [#31#31, #32#32, #33#33] (92) NativeShuffleExchange -Input [1]: [d_date_sk#30] -Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [1]: [d_date_sk#31] +Arguments: hashpartitioning(d_date_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=10] (93) ShuffleQueryStage -Output [1]: [d_date_sk#30] +Output [1]: [d_date_sk#31] Arguments: X (94) AQEShuffleRead -Input [1]: [d_date_sk#30] +Input [1]: [d_date_sk#31] Arguments: coalesced (95) InputAdapter -Input [1]: [d_date_sk#30] +Input [1]: [d_date_sk#31] (96) NativeSort -Input [1]: [d_date_sk#30] -Arguments: [d_date_sk#30 ASC NULLS FIRST], false +Input [1]: [d_date_sk#31] +Arguments: [d_date_sk#31 ASC NULLS FIRST], false (97) NativeSortMergeJoin Left keys [1]: [cs_sold_date_sk#1] -Right keys [1]: [d_date_sk#30] +Right keys [1]: [d_date_sk#31] Join type: Inner Join condition: None (98) NativeProject -Output [1]: [(cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS sales#33] -Input [4]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, d_date_sk#30] +Output [1]: [(cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS sales#34] +Input [4]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, d_date_sk#31] (235) Scan parquet -Output [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (100) InputAdapter -Input [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: [#34, #35, #36, #37, #38] +Input [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: [#35, #36, #37, #38, #39] (101) NativeFilter -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] -Condition : isnotnull(ws_sold_date_sk#34) +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] +Condition : isnotnull(ws_sold_date_sk#35) (102) NativeShuffleExchange -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] -Arguments: hashpartitioning(ws_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] +Arguments: hashpartitioning(ws_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=11] (103) ShuffleQueryStage -Output [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] +Output [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] Arguments: X (104) AQEShuffleRead -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] Arguments: coalesced (105) InputAdapter -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] (106) NativeSort -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] -Arguments: [ws_item_sk#35 ASC NULLS FIRST], false +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] +Arguments: [ws_item_sk#36 ASC NULLS FIRST], false (107) ReusedExchange [Reuses operator id: 28] -Output [2]: [ss_item_sk#39, d_date#40] +Output [2]: [ss_item_sk#40, d_date#41] (108) ShuffleQueryStage -Output [2]: [ss_item_sk#39, d_date#40] +Output [2]: [ss_item_sk#40, d_date#41] Arguments: X (109) AQEShuffleRead -Input [2]: [ss_item_sk#39, d_date#40] +Input [2]: [ss_item_sk#40, d_date#41] Arguments: coalesced (110) InputAdapter -Input [2]: [ss_item_sk#39, d_date#40] -Arguments: [#39, #40] +Input [2]: [ss_item_sk#40, d_date#41] +Arguments: [#40, #41] (111) InputAdapter -Input [2]: [#39#39, #40#40] +Input [2]: [#40#40, #41#41] (112) NativeSort -Input [2]: [#39#39, #40#40] -Arguments: [ss_item_sk#39 ASC NULLS FIRST], false +Input [2]: [#40#40, #41#41] +Arguments: [ss_item_sk#40 ASC NULLS FIRST], false (113) ReusedExchange [Reuses operator id: 36] -Output [2]: [i_item_sk#41, i_item_desc#42] +Output [2]: [i_item_sk#42, i_item_desc#43] (114) ShuffleQueryStage -Output [2]: [i_item_sk#41, i_item_desc#42] +Output [2]: [i_item_sk#42, i_item_desc#43] Arguments: X (115) AQEShuffleRead -Input [2]: [i_item_sk#41, i_item_desc#42] +Input [2]: [i_item_sk#42, i_item_desc#43] Arguments: coalesced (116) InputAdapter -Input [2]: [i_item_sk#41, i_item_desc#42] -Arguments: [#41, #42] +Input [2]: [i_item_sk#42, i_item_desc#43] +Arguments: [#42, #43] (117) InputAdapter -Input [2]: [#41#41, #42#42] +Input [2]: [#42#42, #43#43] (118) NativeSort -Input [2]: [#41#41, #42#42] -Arguments: [i_item_sk#41 ASC NULLS FIRST], false +Input [2]: [#42#42, #43#43] +Arguments: [i_item_sk#42 ASC NULLS FIRST], false (119) NativeSortMergeJoin -Left keys [1]: [ss_item_sk#39] -Right keys [1]: [i_item_sk#41] +Left keys [1]: [ss_item_sk#40] +Right keys [1]: [i_item_sk#42] Join type: Inner Join condition: None (120) NativeProject -Output [3]: [d_date#40, i_item_sk#41, substr(i_item_desc#42, 1, 30) AS _groupingexpression#13] -Input [4]: [#39#39, #40#40, #41#41, #42#42] +Output [3]: [d_date#41, i_item_sk#42, substr(i_item_desc#43, 1, 30) AS _groupingexpression#13] +Input [4]: [#40#40, #41#41, #42#42, #43#43] (121) NativeHashAggregate -Input [3]: [d_date#40, i_item_sk#41, _groupingexpression#13] -Keys [3]: [_groupingexpression#13, i_item_sk#41, d_date#40] +Input [3]: [d_date#41, i_item_sk#42, _groupingexpression#13] +Keys [3]: [_groupingexpression#13, i_item_sk#42, d_date#41] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#14] -Results [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, #15#15] +Results [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, #15] (122) NativeHashAggregate -Input [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, #15#15] -Keys [3]: [_groupingexpression#13, i_item_sk#41, d_date#40] +Input [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, #15] +Keys [3]: [_groupingexpression#13, i_item_sk#42, d_date#41] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#16] -Results [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, count(1)#16] +Results [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, count(1)#16] (123) NativeProject -Output [2]: [i_item_sk#41 AS item_sk#43, count(1)#16 AS cnt#44] -Input [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, count(1)#16] +Output [2]: [i_item_sk#42 AS item_sk#44, count(1)#16 AS cnt#45] +Input [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, count(1)#16] (124) NativeFilter -Input [2]: [item_sk#43, cnt#44] -Condition : (cnt#44 > 4) +Input [2]: [item_sk#44, cnt#45] +Condition : (cnt#45 > 4) (125) NativeProject -Output [1]: [item_sk#43] -Input [2]: [item_sk#43, cnt#44] +Output [1]: [item_sk#44] +Input [2]: [item_sk#44, cnt#45] (126) NativeSort -Input [1]: [item_sk#43] -Arguments: [item_sk#43 ASC NULLS FIRST], false +Input [1]: [item_sk#44] +Arguments: [item_sk#44 ASC NULLS FIRST], false (127) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#35] -Right keys [1]: [item_sk#43] +Left keys [1]: [ws_item_sk#36] +Right keys [1]: [item_sk#44] Join type: LeftSemi Join condition: None (128) NativeProject -Output [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Input [5]: [#34#34, #35#35, #36#36, #37#37, #38#38] +Output [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Input [5]: [#35#35, #36#36, #37#37, #38#38, #39#39] (129) NativeShuffleExchange -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: hashpartitioning(ws_bill_customer_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: hashpartitioning(ws_bill_customer_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=12] (130) ShuffleQueryStage -Output [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] Arguments: X (131) AQEShuffleRead -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] Arguments: coalesced (132) InputAdapter -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] (133) NativeSort -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: [ws_bill_customer_sk#36 ASC NULLS FIRST], false +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: [ws_bill_customer_sk#37 ASC NULLS FIRST], false (134) ReusedExchange [Reuses operator id: 59] -Output [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] +Output [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] (135) ShuffleQueryStage -Output [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] +Output [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] Arguments: X (136) AQEShuffleRead -Input [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] +Input [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] Arguments: coalesced (137) InputAdapter -Input [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] -Arguments: [#45, #46, #47] +Input [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] +Arguments: [#46, #47, #48] (138) InputAdapter -Input [3]: [#45#45, #46#46, #47#47] +Input [3]: [#46#46, #47#47, #48#48] (139) NativeSort -Input [3]: [#45#45, #46#46, #47#47] -Arguments: [ss_customer_sk#45 ASC NULLS FIRST], false +Input [3]: [#46#46, #47#47, #48#48] +Arguments: [ss_customer_sk#46 ASC NULLS FIRST], false (140) ReusedExchange [Reuses operator id: 67] -Output [1]: [c_customer_sk#48] +Output [1]: [c_customer_sk#49] (141) ShuffleQueryStage -Output [1]: [c_customer_sk#48] +Output [1]: [c_customer_sk#49] Arguments: X (142) AQEShuffleRead -Input [1]: [c_customer_sk#48] +Input [1]: [c_customer_sk#49] Arguments: coalesced (143) InputAdapter -Input [1]: [c_customer_sk#48] -Arguments: [#48] +Input [1]: [c_customer_sk#49] +Arguments: [#49] (144) InputAdapter -Input [1]: [#48#48] +Input [1]: [#49#49] (145) NativeSort -Input [1]: [#48#48] -Arguments: [c_customer_sk#48 ASC NULLS FIRST], false +Input [1]: [#49#49] +Arguments: [c_customer_sk#49 ASC NULLS FIRST], false (146) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#45] -Right keys [1]: [c_customer_sk#48] +Left keys [1]: [ss_customer_sk#46] +Right keys [1]: [c_customer_sk#49] Join type: Inner Join condition: None (147) NativeProject -Output [3]: [ss_quantity#46, ss_sales_price#47, c_customer_sk#48] -Input [4]: [#45#45, #46#46, #47#47, #48#48] +Output [3]: [ss_quantity#47, ss_sales_price#48, c_customer_sk#49] +Input [4]: [#46#46, #47#47, #48#48, #49#49] (148) NativeProject -Output [2]: [c_customer_sk#48 AS c_customer_sk#48, (cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47) AS _c1#49] -Input [3]: [ss_quantity#46, ss_sales_price#47, c_customer_sk#48] +Output [2]: [c_customer_sk#49 AS c_customer_sk#49, (cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48) AS _c1#50] +Input [3]: [ss_quantity#47, ss_sales_price#48, c_customer_sk#49] (149) NativeHashAggregate -Input [2]: [c_customer_sk#48, _c1#49] -Keys [1]: [c_customer_sk#48] -Functions [1]: [partial_sum(_c1#49)] -Aggregate Attributes [2]: [sum#50, isEmpty#51] -Results [2]: [c_customer_sk#48, #15#15] +Input [2]: [c_customer_sk#49, _c1#50] +Keys [1]: [c_customer_sk#49] +Functions [1]: [partial_sum(_c1#50)] +Aggregate Attributes [2]: [sum#51, isEmpty#52] +Results [2]: [c_customer_sk#49, #26] (150) NativeHashAggregate -Input [2]: [c_customer_sk#48, #15#15] -Keys [1]: [c_customer_sk#48] -Functions [1]: [sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26] -Results [2]: [c_customer_sk#48, sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26] +Input [2]: [c_customer_sk#49, #26] +Keys [1]: [c_customer_sk#49] +Functions [1]: [sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))] +Aggregate Attributes [1]: [sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27] +Results [2]: [c_customer_sk#49, sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27] (151) NativeProject -Output [2]: [c_customer_sk#48, sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26 AS ssales#52] -Input [2]: [c_customer_sk#48, sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26] +Output [2]: [c_customer_sk#49, sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27 AS ssales#53] +Input [2]: [c_customer_sk#49, sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27] (152) NativeFilter -Input [2]: [c_customer_sk#48, ssales#52] -Condition : (isnotnull(ssales#52) AND (cast(ssales#52 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#28, [id=#29]))) +Input [2]: [c_customer_sk#49, ssales#53] +Condition : (isnotnull(ssales#53) AND (cast(ssales#53 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#29, [id=#30]))) (153) NativeProject -Output [1]: [c_customer_sk#48] -Input [2]: [c_customer_sk#48, ssales#52] +Output [1]: [c_customer_sk#49] +Input [2]: [c_customer_sk#49, ssales#53] (154) NativeSort -Input [1]: [c_customer_sk#48] -Arguments: [c_customer_sk#48 ASC NULLS FIRST], false +Input [1]: [c_customer_sk#49] +Arguments: [c_customer_sk#49 ASC NULLS FIRST], false (155) NativeSortMergeJoin -Left keys [1]: [ws_bill_customer_sk#36] -Right keys [1]: [c_customer_sk#48] +Left keys [1]: [ws_bill_customer_sk#37] +Right keys [1]: [c_customer_sk#49] Join type: LeftSemi Join condition: None (156) NativeProject -Output [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] (157) NativeShuffleExchange -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Arguments: hashpartitioning(ws_sold_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Arguments: hashpartitioning(ws_sold_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=13] (158) ShuffleQueryStage -Output [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] +Output [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] Arguments: X (159) AQEShuffleRead -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] Arguments: coalesced (160) InputAdapter -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] (161) NativeSort -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Arguments: [ws_sold_date_sk#34 ASC NULLS FIRST], false +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Arguments: [ws_sold_date_sk#35 ASC NULLS FIRST], false (162) ReusedExchange [Reuses operator id: 92] -Output [1]: [d_date_sk#53] +Output [1]: [d_date_sk#54] (163) ShuffleQueryStage -Output [1]: [d_date_sk#53] +Output [1]: [d_date_sk#54] Arguments: X (164) AQEShuffleRead -Input [1]: [d_date_sk#53] +Input [1]: [d_date_sk#54] Arguments: coalesced (165) InputAdapter -Input [1]: [d_date_sk#53] -Arguments: [#53] +Input [1]: [d_date_sk#54] +Arguments: [#54] (166) InputAdapter -Input [1]: [#53#53] +Input [1]: [#54#54] (167) NativeSort -Input [1]: [#53#53] -Arguments: [d_date_sk#53 ASC NULLS FIRST], false +Input [1]: [#54#54] +Arguments: [d_date_sk#54 ASC NULLS FIRST], false (168) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#34] -Right keys [1]: [d_date_sk#53] +Left keys [1]: [ws_sold_date_sk#35] +Right keys [1]: [d_date_sk#54] Join type: Inner Join condition: None (169) NativeProject -Output [1]: [(cast(ws_quantity#37 as decimal(10,0)) * ws_list_price#38) AS sales#54] -Input [4]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38, #53#53] +Output [1]: [(cast(ws_quantity#38 as decimal(10,0)) * ws_list_price#39) AS sales#55] +Input [4]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39, #54#54] (170) NativeUnion -Arguments: [sales#33] +Arguments: [sales#34] (171) InputAdapter -Input [1]: [sales#33] -Arguments: [#33] +Input [1]: [sales#34] +Arguments: [#34] (172) NativeHashAggregate -Input [1]: [#33#33] +Input [1]: [#34#34] Keys: [] -Functions [1]: [partial_sum(sales#33)] -Aggregate Attributes [2]: [sum#55, isEmpty#56] -Results [1]: [#15#15] +Functions [1]: [partial_sum(sales#34)] +Aggregate Attributes [2]: [sum#56, isEmpty#57] +Results [1]: [#26] (173) NativeShuffleExchange -Input [1]: [#15#15] +Input [1]: [#26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=14] (174) ShuffleQueryStage -Output [1]: [#15#15] +Output [1]: [#26] Arguments: X (175) NativeHashAggregate -Input [1]: [#15#15] +Input [1]: [#26] Keys: [] -Functions [1]: [sum(sales#33)] -Aggregate Attributes [1]: [sum(sales#33)#57] -Results [1]: [sum(sales#33)#57] +Functions [1]: [sum(sales#34)] +Aggregate Attributes [1]: [sum(sales#34)#58] +Results [1]: [sum(sales#34)#58] (176) NativeProject -Output [1]: [sum(sales#33)#57 AS sum(sales)#58] -Input [1]: [sum(sales#33)#57] +Output [1]: [sum(sales#34)#58 AS sum(sales)#59] +Input [1]: [sum(sales#34)#58] (177) 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] @@ -1169,10 +1169,10 @@ 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#59] +Results [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count#60] (201) HashAggregate -Input [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count#59] +Input [4]: [_groupingexpression#13, i_item_sk#11, d_date#9, count#60] Keys [3]: [_groupingexpression#13, i_item_sk#11, d_date#9] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#16] @@ -1261,22 +1261,22 @@ 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#60, isEmpty#61] +Results [3]: [c_customer_sk#22, sum#61, isEmpty#62] (220) HashAggregate -Input [3]: [c_customer_sk#22, sum#60, isEmpty#61] +Input [3]: [c_customer_sk#22, sum#61, isEmpty#62] 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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26 AS ssales#27] +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] (221) Filter -Input [2]: [c_customer_sk#22, ssales#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#29]))) +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]))) (222) Project Output [1]: [c_customer_sk#22] -Input [2]: [c_customer_sk#22, ssales#27] +Input [2]: [c_customer_sk#22, ssales#28] (223) Sort Input [1]: [c_customer_sk#22] @@ -1301,342 +1301,342 @@ Input [3]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5] Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false, 0 (228) Scan parquet -Output [3]: [d_date_sk#30, d_year#31, d_moy#32] +Output [3]: [d_date_sk#31, d_year#32, d_moy#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (229) Filter -Input [3]: [d_date_sk#30, d_year#31, d_moy#32] -Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2000)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) +Input [3]: [d_date_sk#31, d_year#32, d_moy#33] +Condition : ((((isnotnull(d_year#32) AND isnotnull(d_moy#33)) AND (d_year#32 = 2000)) AND (d_moy#33 = 2)) AND isnotnull(d_date_sk#31)) (230) Project -Output [1]: [d_date_sk#30] -Input [3]: [d_date_sk#30, d_year#31, d_moy#32] +Output [1]: [d_date_sk#31] +Input [3]: [d_date_sk#31, d_year#32, d_moy#33] (231) Exchange -Input [1]: [d_date_sk#30] -Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [1]: [d_date_sk#31] +Arguments: hashpartitioning(d_date_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=24] (232) Sort -Input [1]: [d_date_sk#30] -Arguments: [d_date_sk#30 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#31] +Arguments: [d_date_sk#31 ASC NULLS FIRST], false, 0 (233) SortMergeJoin Left keys [1]: [cs_sold_date_sk#1] -Right keys [1]: [d_date_sk#30] +Right keys [1]: [d_date_sk#31] Join type: Inner Join condition: None (234) Project -Output [1]: [(cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS sales#33] -Input [4]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, d_date_sk#30] +Output [1]: [(cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS sales#34] +Input [4]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, d_date_sk#31] (235) Scan parquet -Output [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk)] ReadSchema: struct (236) Filter -Input [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Condition : isnotnull(ws_sold_date_sk#34) +Input [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Condition : isnotnull(ws_sold_date_sk#35) (237) Exchange -Input [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: hashpartitioning(ws_item_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: hashpartitioning(ws_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=25] (238) Sort -Input [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: [ws_item_sk#35 ASC NULLS FIRST], false, 0 +Input [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: [ws_item_sk#36 ASC NULLS FIRST], false, 0 (239) Scan parquet -Output [2]: [ss_sold_date_sk#62, ss_item_sk#39] +Output [2]: [ss_sold_date_sk#63, ss_item_sk#40] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk)] ReadSchema: struct (240) Filter -Input [2]: [ss_sold_date_sk#62, ss_item_sk#39] -Condition : (isnotnull(ss_sold_date_sk#62) AND isnotnull(ss_item_sk#39)) +Input [2]: [ss_sold_date_sk#63, ss_item_sk#40] +Condition : (isnotnull(ss_sold_date_sk#63) AND isnotnull(ss_item_sk#40)) (241) Exchange -Input [2]: [ss_sold_date_sk#62, ss_item_sk#39] -Arguments: hashpartitioning(ss_sold_date_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [2]: [ss_sold_date_sk#63, ss_item_sk#40] +Arguments: hashpartitioning(ss_sold_date_sk#63, 100), ENSURE_REQUIREMENTS, [plan_id=26] (242) Sort -Input [2]: [ss_sold_date_sk#62, ss_item_sk#39] -Arguments: [ss_sold_date_sk#62 ASC NULLS FIRST], false, 0 +Input [2]: [ss_sold_date_sk#63, ss_item_sk#40] +Arguments: [ss_sold_date_sk#63 ASC NULLS FIRST], false, 0 (243) Scan parquet -Output [3]: [d_date_sk#63, d_date#40, d_year#64] +Output [3]: [d_date_sk#64, d_date#41, d_year#65] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (244) Filter -Input [3]: [d_date_sk#63, d_date#40, d_year#64] -Condition : (d_year#64 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#63)) +Input [3]: [d_date_sk#64, d_date#41, d_year#65] +Condition : (d_year#65 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#64)) (245) Project -Output [2]: [d_date_sk#63, d_date#40] -Input [3]: [d_date_sk#63, d_date#40, d_year#64] +Output [2]: [d_date_sk#64, d_date#41] +Input [3]: [d_date_sk#64, d_date#41, d_year#65] (246) Exchange -Input [2]: [d_date_sk#63, d_date#40] -Arguments: hashpartitioning(d_date_sk#63, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [2]: [d_date_sk#64, d_date#41] +Arguments: hashpartitioning(d_date_sk#64, 100), ENSURE_REQUIREMENTS, [plan_id=27] (247) Sort -Input [2]: [d_date_sk#63, d_date#40] -Arguments: [d_date_sk#63 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#64, d_date#41] +Arguments: [d_date_sk#64 ASC NULLS FIRST], false, 0 (248) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#62] -Right keys [1]: [d_date_sk#63] +Left keys [1]: [ss_sold_date_sk#63] +Right keys [1]: [d_date_sk#64] Join type: Inner Join condition: None (249) Project -Output [2]: [ss_item_sk#39, d_date#40] -Input [4]: [ss_sold_date_sk#62, ss_item_sk#39, d_date_sk#63, d_date#40] +Output [2]: [ss_item_sk#40, d_date#41] +Input [4]: [ss_sold_date_sk#63, ss_item_sk#40, d_date_sk#64, d_date#41] (250) Exchange -Input [2]: [ss_item_sk#39, d_date#40] -Arguments: hashpartitioning(ss_item_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [2]: [ss_item_sk#40, d_date#41] +Arguments: hashpartitioning(ss_item_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=28] (251) Sort -Input [2]: [ss_item_sk#39, d_date#40] -Arguments: [ss_item_sk#39 ASC NULLS FIRST], false, 0 +Input [2]: [ss_item_sk#40, d_date#41] +Arguments: [ss_item_sk#40 ASC NULLS FIRST], false, 0 (252) Scan parquet -Output [2]: [i_item_sk#41, i_item_desc#42] +Output [2]: [i_item_sk#42, i_item_desc#43] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (253) Filter -Input [2]: [i_item_sk#41, i_item_desc#42] -Condition : isnotnull(i_item_sk#41) +Input [2]: [i_item_sk#42, i_item_desc#43] +Condition : isnotnull(i_item_sk#42) (254) Exchange -Input [2]: [i_item_sk#41, i_item_desc#42] -Arguments: hashpartitioning(i_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [2]: [i_item_sk#42, i_item_desc#43] +Arguments: hashpartitioning(i_item_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=29] (255) Sort -Input [2]: [i_item_sk#41, i_item_desc#42] -Arguments: [i_item_sk#41 ASC NULLS FIRST], false, 0 +Input [2]: [i_item_sk#42, i_item_desc#43] +Arguments: [i_item_sk#42 ASC NULLS FIRST], false, 0 (256) SortMergeJoin -Left keys [1]: [ss_item_sk#39] -Right keys [1]: [i_item_sk#41] +Left keys [1]: [ss_item_sk#40] +Right keys [1]: [i_item_sk#42] Join type: Inner Join condition: None (257) Project -Output [3]: [d_date#40, i_item_sk#41, substr(i_item_desc#42, 1, 30) AS _groupingexpression#13] -Input [4]: [ss_item_sk#39, d_date#40, i_item_sk#41, i_item_desc#42] +Output [3]: [d_date#41, i_item_sk#42, substr(i_item_desc#43, 1, 30) AS _groupingexpression#13] +Input [4]: [ss_item_sk#40, d_date#41, i_item_sk#42, i_item_desc#43] (258) HashAggregate -Input [3]: [d_date#40, i_item_sk#41, _groupingexpression#13] -Keys [3]: [_groupingexpression#13, i_item_sk#41, d_date#40] +Input [3]: [d_date#41, i_item_sk#42, _groupingexpression#13] +Keys [3]: [_groupingexpression#13, i_item_sk#42, d_date#41] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#14] -Results [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, count#59] +Results [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, count#60] (259) HashAggregate -Input [4]: [_groupingexpression#13, i_item_sk#41, d_date#40, count#59] -Keys [3]: [_groupingexpression#13, i_item_sk#41, d_date#40] +Input [4]: [_groupingexpression#13, i_item_sk#42, d_date#41, count#60] +Keys [3]: [_groupingexpression#13, i_item_sk#42, d_date#41] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#16] -Results [2]: [i_item_sk#41 AS item_sk#43, count(1)#16 AS cnt#44] +Results [2]: [i_item_sk#42 AS item_sk#44, count(1)#16 AS cnt#45] (260) Filter -Input [2]: [item_sk#43, cnt#44] -Condition : (cnt#44 > 4) +Input [2]: [item_sk#44, cnt#45] +Condition : (cnt#45 > 4) (261) Project -Output [1]: [item_sk#43] -Input [2]: [item_sk#43, cnt#44] +Output [1]: [item_sk#44] +Input [2]: [item_sk#44, cnt#45] (262) Sort -Input [1]: [item_sk#43] -Arguments: [item_sk#43 ASC NULLS FIRST], false, 0 +Input [1]: [item_sk#44] +Arguments: [item_sk#44 ASC NULLS FIRST], false, 0 (263) SortMergeJoin -Left keys [1]: [ws_item_sk#35] -Right keys [1]: [item_sk#43] +Left keys [1]: [ws_item_sk#36] +Right keys [1]: [item_sk#44] Join type: LeftSemi Join condition: None (264) Project -Output [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Input [5]: [ws_sold_date_sk#34, ws_item_sk#35, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Input [5]: [ws_sold_date_sk#35, ws_item_sk#36, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] (265) Exchange -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: hashpartitioning(ws_bill_customer_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: hashpartitioning(ws_bill_customer_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=30] (266) Sort -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] -Arguments: [ws_bill_customer_sk#36 ASC NULLS FIRST], false, 0 +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] +Arguments: [ws_bill_customer_sk#37 ASC NULLS FIRST], false, 0 (267) Scan parquet -Output [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] +Output [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk)] ReadSchema: struct (268) Filter -Input [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] -Condition : isnotnull(ss_customer_sk#45) +Input [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] +Condition : isnotnull(ss_customer_sk#46) (269) Exchange -Input [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] -Arguments: hashpartitioning(ss_customer_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] +Arguments: hashpartitioning(ss_customer_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=31] (270) Sort -Input [3]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47] -Arguments: [ss_customer_sk#45 ASC NULLS FIRST], false, 0 +Input [3]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48] +Arguments: [ss_customer_sk#46 ASC NULLS FIRST], false, 0 (271) Scan parquet -Output [1]: [c_customer_sk#48] +Output [1]: [c_customer_sk#49] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (272) Filter -Input [1]: [c_customer_sk#48] -Condition : isnotnull(c_customer_sk#48) +Input [1]: [c_customer_sk#49] +Condition : isnotnull(c_customer_sk#49) (273) Exchange -Input [1]: [c_customer_sk#48] -Arguments: hashpartitioning(c_customer_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [1]: [c_customer_sk#49] +Arguments: hashpartitioning(c_customer_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=32] (274) Sort -Input [1]: [c_customer_sk#48] -Arguments: [c_customer_sk#48 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#49] +Arguments: [c_customer_sk#49 ASC NULLS FIRST], false, 0 (275) SortMergeJoin -Left keys [1]: [ss_customer_sk#45] -Right keys [1]: [c_customer_sk#48] +Left keys [1]: [ss_customer_sk#46] +Right keys [1]: [c_customer_sk#49] Join type: Inner Join condition: None (276) Project -Output [3]: [ss_quantity#46, ss_sales_price#47, c_customer_sk#48] -Input [4]: [ss_customer_sk#45, ss_quantity#46, ss_sales_price#47, c_customer_sk#48] +Output [3]: [ss_quantity#47, ss_sales_price#48, c_customer_sk#49] +Input [4]: [ss_customer_sk#46, ss_quantity#47, ss_sales_price#48, c_customer_sk#49] (277) HashAggregate -Input [3]: [ss_quantity#46, ss_sales_price#47, c_customer_sk#48] -Keys [1]: [c_customer_sk#48] -Functions [1]: [partial_sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))] -Aggregate Attributes [2]: [sum#50, isEmpty#51] -Results [3]: [c_customer_sk#48, sum#65, isEmpty#66] +Input [3]: [ss_quantity#47, ss_sales_price#48, c_customer_sk#49] +Keys [1]: [c_customer_sk#49] +Functions [1]: [partial_sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))] +Aggregate Attributes [2]: [sum#51, isEmpty#52] +Results [3]: [c_customer_sk#49, sum#66, isEmpty#67] (278) HashAggregate -Input [3]: [c_customer_sk#48, sum#65, isEmpty#66] -Keys [1]: [c_customer_sk#48] -Functions [1]: [sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26] -Results [2]: [c_customer_sk#48, sum((cast(ss_quantity#46 as decimal(10,0)) * ss_sales_price#47))#26 AS ssales#52] +Input [3]: [c_customer_sk#49, sum#66, isEmpty#67] +Keys [1]: [c_customer_sk#49] +Functions [1]: [sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))] +Aggregate Attributes [1]: [sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27] +Results [2]: [c_customer_sk#49, sum((cast(ss_quantity#47 as decimal(10,0)) * ss_sales_price#48))#27 AS ssales#53] (279) Filter -Input [2]: [c_customer_sk#48, ssales#52] -Condition : (isnotnull(ssales#52) AND (cast(ssales#52 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#67]))) +Input [2]: [c_customer_sk#49, ssales#53] +Condition : (isnotnull(ssales#53) AND (cast(ssales#53 as decimal(38,8)) > (0.500000 * Subquery subquery#29, [id=#68]))) (280) Project -Output [1]: [c_customer_sk#48] -Input [2]: [c_customer_sk#48, ssales#52] +Output [1]: [c_customer_sk#49] +Input [2]: [c_customer_sk#49, ssales#53] (281) Sort -Input [1]: [c_customer_sk#48] -Arguments: [c_customer_sk#48 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#49] +Arguments: [c_customer_sk#49 ASC NULLS FIRST], false, 0 (282) SortMergeJoin -Left keys [1]: [ws_bill_customer_sk#36] -Right keys [1]: [c_customer_sk#48] +Left keys [1]: [ws_bill_customer_sk#37] +Right keys [1]: [c_customer_sk#49] Join type: LeftSemi Join condition: None (283) Project -Output [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Input [4]: [ws_sold_date_sk#34, ws_bill_customer_sk#36, ws_quantity#37, ws_list_price#38] +Output [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Input [4]: [ws_sold_date_sk#35, ws_bill_customer_sk#37, ws_quantity#38, ws_list_price#39] (284) Exchange -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Arguments: hashpartitioning(ws_sold_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Arguments: hashpartitioning(ws_sold_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=33] (285) Sort -Input [3]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38] -Arguments: [ws_sold_date_sk#34 ASC NULLS FIRST], false, 0 +Input [3]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39] +Arguments: [ws_sold_date_sk#35 ASC NULLS FIRST], false, 0 (286) Scan parquet -Output [3]: [d_date_sk#53, d_year#68, d_moy#69] +Output [3]: [d_date_sk#54, d_year#69, d_moy#70] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (287) Filter -Input [3]: [d_date_sk#53, d_year#68, d_moy#69] -Condition : ((((isnotnull(d_year#68) AND isnotnull(d_moy#69)) AND (d_year#68 = 2000)) AND (d_moy#69 = 2)) AND isnotnull(d_date_sk#53)) +Input [3]: [d_date_sk#54, d_year#69, d_moy#70] +Condition : ((((isnotnull(d_year#69) AND isnotnull(d_moy#70)) AND (d_year#69 = 2000)) AND (d_moy#70 = 2)) AND isnotnull(d_date_sk#54)) (288) Project -Output [1]: [d_date_sk#53] -Input [3]: [d_date_sk#53, d_year#68, d_moy#69] +Output [1]: [d_date_sk#54] +Input [3]: [d_date_sk#54, d_year#69, d_moy#70] (289) Exchange -Input [1]: [d_date_sk#53] -Arguments: hashpartitioning(d_date_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [1]: [d_date_sk#54] +Arguments: hashpartitioning(d_date_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=34] (290) Sort -Input [1]: [d_date_sk#53] -Arguments: [d_date_sk#53 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#54] +Arguments: [d_date_sk#54 ASC NULLS FIRST], false, 0 (291) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#34] -Right keys [1]: [d_date_sk#53] +Left keys [1]: [ws_sold_date_sk#35] +Right keys [1]: [d_date_sk#54] Join type: Inner Join condition: None (292) Project -Output [1]: [(cast(ws_quantity#37 as decimal(10,0)) * ws_list_price#38) AS sales#54] -Input [4]: [ws_sold_date_sk#34, ws_quantity#37, ws_list_price#38, d_date_sk#53] +Output [1]: [(cast(ws_quantity#38 as decimal(10,0)) * ws_list_price#39) AS sales#55] +Input [4]: [ws_sold_date_sk#35, ws_quantity#38, ws_list_price#39, d_date_sk#54] (293) Union (294) HashAggregate -Input [1]: [sales#33] +Input [1]: [sales#34] Keys: [] -Functions [1]: [partial_sum(sales#33)] -Aggregate Attributes [2]: [sum#55, isEmpty#56] -Results [2]: [sum#70, isEmpty#71] +Functions [1]: [partial_sum(sales#34)] +Aggregate Attributes [2]: [sum#56, isEmpty#57] +Results [2]: [sum#71, isEmpty#72] (295) Exchange -Input [2]: [sum#70, isEmpty#71] +Input [2]: [sum#71, isEmpty#72] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=35] (296) HashAggregate -Input [2]: [sum#70, isEmpty#71] +Input [2]: [sum#71, isEmpty#72] Keys: [] -Functions [1]: [sum(sales#33)] -Aggregate Attributes [1]: [sum(sales#33)#57] -Results [1]: [sum(sales#33)#57 AS sum(sales)#58] +Functions [1]: [sum(sales#34)] +Aggregate Attributes [1]: [sum(sales#34)#58] +Results [1]: [sum(sales#34)#58 AS sum(sales)#59] (297) AdaptiveSparkPlan -Output [1]: [sum(sales)#58] +Output [1]: [sum(sales)#59] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 78 Hosting Expression = Subquery subquery#28, [id=#29] +Subquery:1 Hosting operator id = 78 Hosting Expression = Subquery subquery#29, [id=#30] AdaptiveSparkPlan (368) +- == Final Plan == NativeProject (342) @@ -1713,330 +1713,330 @@ AdaptiveSparkPlan (368) (343) Scan parquet -Output [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] +Output [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (299) InputAdapter -Input [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] -Arguments: [#72, #73, #74, #75] +Input [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] +Arguments: [#73, #74, #75, #76] (300) NativeFilter -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Condition : (isnotnull(ss_customer_sk#73) AND isnotnull(ss_sold_date_sk#72)) +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Condition : (isnotnull(ss_customer_sk#74) AND isnotnull(ss_sold_date_sk#73)) (301) NativeShuffleExchange -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Arguments: hashpartitioning(ss_customer_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=36] +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Arguments: hashpartitioning(ss_customer_sk#74, 100), ENSURE_REQUIREMENTS, [plan_id=36] (302) ShuffleQueryStage -Output [4]: [#72#72, #73#73, #74#74, #75#75] +Output [4]: [#73#73, #74#74, #75#75, #76#76] Arguments: X (303) AQEShuffleRead -Input [4]: [#72#72, #73#73, #74#74, #75#75] +Input [4]: [#73#73, #74#74, #75#75, #76#76] Arguments: coalesced (304) InputAdapter -Input [4]: [#72#72, #73#73, #74#74, #75#75] +Input [4]: [#73#73, #74#74, #75#75, #76#76] (305) NativeSort -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Arguments: [ss_customer_sk#73 ASC NULLS FIRST], false +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Arguments: [ss_customer_sk#74 ASC NULLS FIRST], false (306) ReusedExchange [Reuses operator id: 67] -Output [1]: [c_customer_sk#76] +Output [1]: [c_customer_sk#77] (307) ShuffleQueryStage -Output [1]: [c_customer_sk#76] +Output [1]: [c_customer_sk#77] Arguments: X (308) AQEShuffleRead -Input [1]: [c_customer_sk#76] +Input [1]: [c_customer_sk#77] Arguments: coalesced (309) InputAdapter -Input [1]: [c_customer_sk#76] -Arguments: [#76] +Input [1]: [c_customer_sk#77] +Arguments: [#77] (310) InputAdapter -Input [1]: [#76#76] +Input [1]: [#77#77] (311) NativeSort -Input [1]: [#76#76] -Arguments: [c_customer_sk#76 ASC NULLS FIRST], false +Input [1]: [#77#77] +Arguments: [c_customer_sk#77 ASC NULLS FIRST], false (312) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#73] -Right keys [1]: [c_customer_sk#76] +Left keys [1]: [ss_customer_sk#74] +Right keys [1]: [c_customer_sk#77] Join type: Inner Join condition: None (313) NativeProject -Output [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Input [5]: [#72#72, #73#73, #74#74, #75#75, #76#76] +Output [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Input [5]: [#73#73, #74#74, #75#75, #76#76, #77#77] (314) NativeShuffleExchange -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Arguments: hashpartitioning(ss_sold_date_sk#72, 100), ENSURE_REQUIREMENTS, [plan_id=37] +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Arguments: hashpartitioning(ss_sold_date_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=37] (315) ShuffleQueryStage -Output [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] +Output [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] Arguments: X (316) AQEShuffleRead -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] Arguments: coalesced (317) InputAdapter -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] (318) NativeSort -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Arguments: [ss_sold_date_sk#72 ASC NULLS FIRST], false +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Arguments: [ss_sold_date_sk#73 ASC NULLS FIRST], false (355) Scan parquet -Output [2]: [d_date_sk#77, d_year#78] +Output [2]: [d_date_sk#78, d_year#79] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (320) InputAdapter -Input [2]: [d_date_sk#77, d_year#78] -Arguments: [#77, #78] +Input [2]: [d_date_sk#78, d_year#79] +Arguments: [#78, #79] (321) NativeFilter -Input [2]: [#77#77, #78#78] -Condition : (d_year#78 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#77)) +Input [2]: [#78#78, #79#79] +Condition : (d_year#79 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#78)) (322) NativeProject -Output [1]: [d_date_sk#77] -Input [2]: [#77#77, #78#78] +Output [1]: [d_date_sk#78] +Input [2]: [#78#78, #79#79] (323) NativeShuffleExchange -Input [1]: [d_date_sk#77] -Arguments: hashpartitioning(d_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=38] +Input [1]: [d_date_sk#78] +Arguments: hashpartitioning(d_date_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=38] (324) ShuffleQueryStage -Output [1]: [d_date_sk#77] +Output [1]: [d_date_sk#78] Arguments: X (325) AQEShuffleRead -Input [1]: [d_date_sk#77] +Input [1]: [d_date_sk#78] Arguments: coalesced (326) InputAdapter -Input [1]: [d_date_sk#77] +Input [1]: [d_date_sk#78] (327) NativeSort -Input [1]: [d_date_sk#77] -Arguments: [d_date_sk#77 ASC NULLS FIRST], false +Input [1]: [d_date_sk#78] +Arguments: [d_date_sk#78 ASC NULLS FIRST], false (328) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#72] -Right keys [1]: [d_date_sk#77] +Left keys [1]: [ss_sold_date_sk#73] +Right keys [1]: [d_date_sk#78] Join type: Inner Join condition: None (329) NativeProject -Output [3]: [ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Input [5]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76, d_date_sk#77] +Output [3]: [ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Input [5]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77, d_date_sk#78] (330) NativeProject -Output [2]: [c_customer_sk#76 AS c_customer_sk#76, (cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75) AS _c1#79] -Input [3]: [ss_quantity#74, ss_sales_price#75, c_customer_sk#76] +Output [2]: [c_customer_sk#77 AS c_customer_sk#77, (cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76) AS _c1#80] +Input [3]: [ss_quantity#75, ss_sales_price#76, c_customer_sk#77] (331) NativeHashAggregate -Input [2]: [c_customer_sk#76, _c1#79] -Keys [1]: [c_customer_sk#76] -Functions [1]: [partial_sum(_c1#79)] -Aggregate Attributes [2]: [sum#80, isEmpty#81] -Results [2]: [c_customer_sk#76, #15#15] +Input [2]: [c_customer_sk#77, _c1#80] +Keys [1]: [c_customer_sk#77] +Functions [1]: [partial_sum(_c1#80)] +Aggregate Attributes [2]: [sum#81, isEmpty#82] +Results [2]: [c_customer_sk#77, #26] (332) NativeShuffleExchange -Input [2]: [c_customer_sk#76, #15#15] -Arguments: hashpartitioning(c_customer_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=39] +Input [2]: [c_customer_sk#77, #26] +Arguments: hashpartitioning(c_customer_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=39] (333) ShuffleQueryStage -Output [2]: [c_customer_sk#76, #15#15] +Output [2]: [c_customer_sk#77, #26] Arguments: X (334) AQEShuffleRead -Input [2]: [c_customer_sk#76, #15#15] +Input [2]: [c_customer_sk#77, #26] Arguments: coalesced (335) InputAdapter -Input [2]: [c_customer_sk#76, #15#15] +Input [2]: [c_customer_sk#77, #26] (336) NativeHashAggregate -Input [2]: [c_customer_sk#76, #15#15] -Keys [1]: [c_customer_sk#76] -Functions [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82] -Results [2]: [c_customer_sk#76, sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82] +Input [2]: [c_customer_sk#77, #26] +Keys [1]: [c_customer_sk#77] +Functions [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))] +Aggregate Attributes [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83] +Results [2]: [c_customer_sk#77, sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83] (337) NativeProject -Output [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82 AS csales#83] -Input [2]: [c_customer_sk#76, sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82] +Output [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83 AS csales#84] +Input [2]: [c_customer_sk#77, sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83] (338) NativeHashAggregate -Input [1]: [csales#83] +Input [1]: [csales#84] Keys: [] -Functions [1]: [partial_max(csales#83)] -Aggregate Attributes [1]: [max#84] -Results [1]: [#15#15] +Functions [1]: [partial_max(csales#84)] +Aggregate Attributes [1]: [max#85] +Results [1]: [#26] (339) NativeShuffleExchange -Input [1]: [#15#15] +Input [1]: [#26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=40] (340) ShuffleQueryStage -Output [1]: [#15#15] +Output [1]: [#26] Arguments: X (341) NativeHashAggregate -Input [1]: [#15#15] +Input [1]: [#26] Keys: [] -Functions [1]: [max(csales#83)] -Aggregate Attributes [1]: [max(csales#83)#85] -Results [1]: [max(csales#83)#85] +Functions [1]: [max(csales#84)] +Aggregate Attributes [1]: [max(csales#84)#86] +Results [1]: [max(csales#84)#86] (342) NativeProject -Output [1]: [max(csales#83)#85 AS tpcds_cmax#86] -Input [1]: [max(csales#83)#85] +Output [1]: [max(csales#84)#86 AS tpcds_cmax#87] +Input [1]: [max(csales#84)#86] (343) Scan parquet -Output [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] +Output [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (344) Filter -Input [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] -Condition : (isnotnull(ss_customer_sk#73) AND isnotnull(ss_sold_date_sk#72)) +Input [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] +Condition : (isnotnull(ss_customer_sk#74) AND isnotnull(ss_sold_date_sk#73)) (345) Exchange -Input [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] -Arguments: hashpartitioning(ss_customer_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] +Arguments: hashpartitioning(ss_customer_sk#74, 100), ENSURE_REQUIREMENTS, [plan_id=41] (346) Sort -Input [4]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75] -Arguments: [ss_customer_sk#73 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76] +Arguments: [ss_customer_sk#74 ASC NULLS FIRST], false, 0 (347) Scan parquet -Output [1]: [c_customer_sk#76] +Output [1]: [c_customer_sk#77] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (348) Filter -Input [1]: [c_customer_sk#76] -Condition : isnotnull(c_customer_sk#76) +Input [1]: [c_customer_sk#77] +Condition : isnotnull(c_customer_sk#77) (349) Exchange -Input [1]: [c_customer_sk#76] -Arguments: hashpartitioning(c_customer_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=42] +Input [1]: [c_customer_sk#77] +Arguments: hashpartitioning(c_customer_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=42] (350) Sort -Input [1]: [c_customer_sk#76] -Arguments: [c_customer_sk#76 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#77] +Arguments: [c_customer_sk#77 ASC NULLS FIRST], false, 0 (351) SortMergeJoin -Left keys [1]: [ss_customer_sk#73] -Right keys [1]: [c_customer_sk#76] +Left keys [1]: [ss_customer_sk#74] +Right keys [1]: [c_customer_sk#77] Join type: Inner Join condition: None (352) Project -Output [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Input [5]: [ss_sold_date_sk#72, ss_customer_sk#73, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] +Output [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Input [5]: [ss_sold_date_sk#73, ss_customer_sk#74, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] (353) Exchange -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Arguments: hashpartitioning(ss_sold_date_sk#72, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Arguments: hashpartitioning(ss_sold_date_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=43] (354) Sort -Input [4]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Arguments: [ss_sold_date_sk#72 ASC NULLS FIRST], false, 0 +Input [4]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Arguments: [ss_sold_date_sk#73 ASC NULLS FIRST], false, 0 (355) Scan parquet -Output [2]: [d_date_sk#77, d_year#78] +Output [2]: [d_date_sk#78, d_year#79] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (356) Filter -Input [2]: [d_date_sk#77, d_year#78] -Condition : (d_year#78 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#77)) +Input [2]: [d_date_sk#78, d_year#79] +Condition : (d_year#79 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#78)) (357) Project -Output [1]: [d_date_sk#77] -Input [2]: [d_date_sk#77, d_year#78] +Output [1]: [d_date_sk#78] +Input [2]: [d_date_sk#78, d_year#79] (358) Exchange -Input [1]: [d_date_sk#77] -Arguments: hashpartitioning(d_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=44] +Input [1]: [d_date_sk#78] +Arguments: hashpartitioning(d_date_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=44] (359) Sort -Input [1]: [d_date_sk#77] -Arguments: [d_date_sk#77 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#78] +Arguments: [d_date_sk#78 ASC NULLS FIRST], false, 0 (360) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#72] -Right keys [1]: [d_date_sk#77] +Left keys [1]: [ss_sold_date_sk#73] +Right keys [1]: [d_date_sk#78] Join type: Inner Join condition: None (361) Project -Output [3]: [ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Input [5]: [ss_sold_date_sk#72, ss_quantity#74, ss_sales_price#75, c_customer_sk#76, d_date_sk#77] +Output [3]: [ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Input [5]: [ss_sold_date_sk#73, ss_quantity#75, ss_sales_price#76, c_customer_sk#77, d_date_sk#78] (362) HashAggregate -Input [3]: [ss_quantity#74, ss_sales_price#75, c_customer_sk#76] -Keys [1]: [c_customer_sk#76] -Functions [1]: [partial_sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))] -Aggregate Attributes [2]: [sum#80, isEmpty#81] -Results [3]: [c_customer_sk#76, sum#87, isEmpty#88] +Input [3]: [ss_quantity#75, ss_sales_price#76, c_customer_sk#77] +Keys [1]: [c_customer_sk#77] +Functions [1]: [partial_sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))] +Aggregate Attributes [2]: [sum#81, isEmpty#82] +Results [3]: [c_customer_sk#77, sum#88, isEmpty#89] (363) Exchange -Input [3]: [c_customer_sk#76, sum#87, isEmpty#88] -Arguments: hashpartitioning(c_customer_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=45] +Input [3]: [c_customer_sk#77, sum#88, isEmpty#89] +Arguments: hashpartitioning(c_customer_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=45] (364) HashAggregate -Input [3]: [c_customer_sk#76, sum#87, isEmpty#88] -Keys [1]: [c_customer_sk#76] -Functions [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82] -Results [1]: [sum((cast(ss_quantity#74 as decimal(10,0)) * ss_sales_price#75))#82 AS csales#83] +Input [3]: [c_customer_sk#77, sum#88, isEmpty#89] +Keys [1]: [c_customer_sk#77] +Functions [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))] +Aggregate Attributes [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83] +Results [1]: [sum((cast(ss_quantity#75 as decimal(10,0)) * ss_sales_price#76))#83 AS csales#84] (365) HashAggregate -Input [1]: [csales#83] +Input [1]: [csales#84] Keys: [] -Functions [1]: [partial_max(csales#83)] -Aggregate Attributes [1]: [max#84] -Results [1]: [max#89] +Functions [1]: [partial_max(csales#84)] +Aggregate Attributes [1]: [max#85] +Results [1]: [max#90] (366) Exchange -Input [1]: [max#89] +Input [1]: [max#90] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=46] (367) HashAggregate -Input [1]: [max#89] +Input [1]: [max#90] Keys: [] -Functions [1]: [max(csales#83)] -Aggregate Attributes [1]: [max(csales#83)#85] -Results [1]: [max(csales#83)#85 AS tpcds_cmax#86] +Functions [1]: [max(csales#84)] +Aggregate Attributes [1]: [max(csales#84)#86] +Results [1]: [max(csales#84)#86 AS tpcds_cmax#87] (368) AdaptiveSparkPlan -Output [1]: [tpcds_cmax#86] +Output [1]: [tpcds_cmax#87] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 152 Hosting Expression = ReusedSubquery Subquery subquery#28, [id=#29] +Subquery:2 Hosting operator id = 152 Hosting Expression = ReusedSubquery Subquery subquery#29, [id=#30] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23b.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23b.txt index 96fd3cf2b..e28da8437 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23b.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q23b.txt @@ -602,10 +602,10 @@ 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#15] +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#15] +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] @@ -743,26 +743,26 @@ 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, #15#15] +Results [2]: [c_customer_sk#22, #26] (76) NativeHashAggregate -Input [2]: [c_customer_sk#22, #15#15] +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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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))#26 AS ssales#27] -Input [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#29]))) +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#27] +Input [2]: [c_customer_sk#22, ssales#28] (80) NativeSort Input [1]: [c_customer_sk#22] @@ -775,38 +775,38 @@ Join type: LeftSemi Join condition: None (297) Scan parquet -Output [3]: [c_customer_sk#30, c_first_name#31, c_last_name#32] +Output [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (83) InputAdapter -Input [3]: [c_customer_sk#30, c_first_name#31, c_last_name#32] -Arguments: [#30, #31, #32] +Input [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33] +Arguments: [#31, #32, #33] (84) NativeFilter -Input [3]: [#30#30, #31#31, #32#32] -Condition : isnotnull(c_customer_sk#30) +Input [3]: [#31#31, #32#32, #33#33] +Condition : isnotnull(c_customer_sk#31) (85) NativeShuffleExchange -Input [3]: [#30#30, #31#31, #32#32] -Arguments: hashpartitioning(c_customer_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [3]: [#31#31, #32#32, #33#33] +Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=9] (86) ShuffleQueryStage -Output [3]: [#30#30, #31#31, #32#32] +Output [3]: [#31#31, #32#32, #33#33] Arguments: X (87) AQEShuffleRead -Input [3]: [#30#30, #31#31, #32#32] +Input [3]: [#31#31, #32#32, #33#33] Arguments: coalesced (88) InputAdapter -Input [3]: [#30#30, #31#31, #32#32] +Input [3]: [#31#31, #32#32, #33#33] (89) NativeSort -Input [3]: [#30#30, #31#31, #32#32] -Arguments: [c_customer_sk#30 ASC NULLS FIRST], false +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] @@ -863,624 +863,624 @@ 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#33] +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#33] +Input [2]: [c_customer_sk#22, _c1#34] Keys [1]: [c_customer_sk#22] -Functions [1]: [partial_sum(_c1#33)] +Functions [1]: [partial_sum(_c1#34)] Aggregate Attributes [2]: [sum#24, isEmpty#25] -Results [2]: [c_customer_sk#22, #15#15] +Results [2]: [c_customer_sk#22, #26] (106) NativeHashAggregate -Input [2]: [c_customer_sk#22, #15#15] +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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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))#26 AS ssales#27] -Input [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26] +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#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#28, [id=#29]))) +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#27] +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#30] +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#30] +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#31, c_last_name#32] -Input [7]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5, #30#30, #31#31, #32#32] +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#31, c_last_name#32] +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#31, c_last_name#32] +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#31, c_last_name#32] +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#31, c_last_name#32] +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#31, c_last_name#32] +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#34, d_year#35, d_moy#36] +Output [3]: [d_date_sk#35, d_year#36, d_moy#37] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (120) InputAdapter -Input [3]: [d_date_sk#34, d_year#35, d_moy#36] -Arguments: [#34, #35, #36] +Input [3]: [d_date_sk#35, d_year#36, d_moy#37] +Arguments: [#35, #36, #37] (121) NativeFilter -Input [3]: [#34#34, #35#35, #36#36] -Condition : ((((isnotnull(d_year#35) AND isnotnull(d_moy#36)) AND (d_year#35 = 2000)) AND (d_moy#36 = 2)) AND isnotnull(d_date_sk#34)) +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#34] -Input [3]: [#34#34, #35#35, #36#36] +Output [1]: [d_date_sk#35] +Input [3]: [#35#35, #36#36, #37#37] (123) NativeShuffleExchange -Input [1]: [d_date_sk#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=11] +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#34] +Output [1]: [d_date_sk#35] Arguments: X (125) AQEShuffleRead -Input [1]: [d_date_sk#34] +Input [1]: [d_date_sk#35] Arguments: coalesced (126) InputAdapter -Input [1]: [d_date_sk#34] +Input [1]: [d_date_sk#35] (127) NativeSort -Input [1]: [d_date_sk#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false +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#34] +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#31, c_last_name#32] -Input [6]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#31, c_last_name#32, d_date_sk#34] +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#32 AS c_last_name#32, c_first_name#31 AS c_first_name#31, (cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5) AS _c2#37] -Input [4]: [cs_quantity#4, cs_list_price#5, c_first_name#31, c_last_name#32] +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#32, c_first_name#31, _c2#37] -Keys [2]: [c_last_name#32, c_first_name#31] -Functions [1]: [partial_sum(_c2#37)] -Aggregate Attributes [2]: [sum#38, isEmpty#39] -Results [3]: [c_last_name#32, c_first_name#31, #15#15] +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#32, c_first_name#31, #15#15] -Arguments: hashpartitioning(c_last_name#32, c_first_name#31, 100), ENSURE_REQUIREMENTS, [plan_id=12] +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#32, c_first_name#31, #15#15] +Output [3]: [c_last_name#33, c_first_name#32, #26] Arguments: X (134) AQEShuffleRead -Input [3]: [c_last_name#32, c_first_name#31, #15#15] +Input [3]: [c_last_name#33, c_first_name#32, #26] Arguments: coalesced (135) InputAdapter -Input [3]: [c_last_name#32, c_first_name#31, #15#15] +Input [3]: [c_last_name#33, c_first_name#32, #26] (136) NativeHashAggregate -Input [3]: [c_last_name#32, c_first_name#31, #15#15] -Keys [2]: [c_last_name#32, c_first_name#31] +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))#40] -Results [3]: [c_last_name#32, c_first_name#31, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#40] +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#32, c_first_name#31, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#40 AS sales#41] -Input [3]: [c_last_name#32, c_first_name#31, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#40] +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#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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:/] PushedFilters: [IsNotNull(ws_bill_customer_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (139) InputAdapter -Input [5]: [ws_sold_date_sk#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: [#42, #43, #44, #45, #46] +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]: [#42#42, #43#43, #44#44, #45#45, #46#46] -Condition : (isnotnull(ws_bill_customer_sk#44) AND isnotnull(ws_sold_date_sk#42)) +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]: [#42#42, #43#43, #44#44, #45#45, #46#46] -Arguments: hashpartitioning(ws_item_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=13] +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]: [#42#42, #43#43, #44#44, #45#45, #46#46] +Output [5]: [#43#43, #44#44, #45#45, #46#46, #47#47] Arguments: X (143) AQEShuffleRead -Input [5]: [#42#42, #43#43, #44#44, #45#45, #46#46] +Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47] Arguments: coalesced (144) InputAdapter -Input [5]: [#42#42, #43#43, #44#44, #45#45, #46#46] +Input [5]: [#43#43, #44#44, #45#45, #46#46, #47#47] (145) NativeSort -Input [5]: [#42#42, #43#43, #44#44, #45#45, #46#46] -Arguments: [ws_item_sk#43 ASC NULLS FIRST], false +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#47, d_date#48] +Output [2]: [ss_item_sk#48, d_date#49] (147) ShuffleQueryStage -Output [2]: [ss_item_sk#47, d_date#48] +Output [2]: [ss_item_sk#48, d_date#49] Arguments: X (148) AQEShuffleRead -Input [2]: [ss_item_sk#47, d_date#48] +Input [2]: [ss_item_sk#48, d_date#49] Arguments: coalesced (149) InputAdapter -Input [2]: [ss_item_sk#47, d_date#48] -Arguments: [#47, #48] +Input [2]: [ss_item_sk#48, d_date#49] +Arguments: [#48, #49] (150) InputAdapter -Input [2]: [#47#47, #48#48] +Input [2]: [#48#48, #49#49] (151) NativeSort -Input [2]: [#47#47, #48#48] -Arguments: [ss_item_sk#47 ASC NULLS FIRST], false +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#49, i_item_desc#50] +Output [2]: [i_item_sk#50, i_item_desc#51] (153) ShuffleQueryStage -Output [2]: [i_item_sk#49, i_item_desc#50] +Output [2]: [i_item_sk#50, i_item_desc#51] Arguments: X (154) AQEShuffleRead -Input [2]: [i_item_sk#49, i_item_desc#50] +Input [2]: [i_item_sk#50, i_item_desc#51] Arguments: coalesced (155) InputAdapter -Input [2]: [i_item_sk#49, i_item_desc#50] -Arguments: [#49, #50] +Input [2]: [i_item_sk#50, i_item_desc#51] +Arguments: [#50, #51] (156) InputAdapter -Input [2]: [#49#49, #50#50] +Input [2]: [#50#50, #51#51] (157) NativeSort -Input [2]: [#49#49, #50#50] -Arguments: [i_item_sk#49 ASC NULLS FIRST], false +Input [2]: [#50#50, #51#51] +Arguments: [i_item_sk#50 ASC NULLS FIRST], false (158) NativeSortMergeJoin -Left keys [1]: [ss_item_sk#47] -Right keys [1]: [i_item_sk#49] +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#48, i_item_sk#49, substr(i_item_desc#50, 1, 30) AS _groupingexpression#13] -Input [4]: [#47#47, #48#48, #49#49, #50#50] +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#48, i_item_sk#49, _groupingexpression#13] -Keys [3]: [_groupingexpression#13, i_item_sk#49, d_date#48] +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#49, d_date#48, #15#15] +Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, #15] (161) NativeHashAggregate -Input [4]: [_groupingexpression#13, i_item_sk#49, d_date#48, #15#15] -Keys [3]: [_groupingexpression#13, i_item_sk#49, d_date#48] +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#49, d_date#48, count(1)#16] +Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count(1)#16] (162) NativeProject -Output [2]: [i_item_sk#49 AS item_sk#51, count(1)#16 AS cnt#52] -Input [4]: [_groupingexpression#13, i_item_sk#49, d_date#48, count(1)#16] +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#51, cnt#52] -Condition : (cnt#52 > 4) +Input [2]: [item_sk#52, cnt#53] +Condition : (cnt#53 > 4) (164) NativeProject -Output [1]: [item_sk#51] -Input [2]: [item_sk#51, cnt#52] +Output [1]: [item_sk#52] +Input [2]: [item_sk#52, cnt#53] (165) NativeSort -Input [1]: [item_sk#51] -Arguments: [item_sk#51 ASC NULLS FIRST], false +Input [1]: [item_sk#52] +Arguments: [item_sk#52 ASC NULLS FIRST], false (166) NativeSortMergeJoin -Left keys [1]: [ws_item_sk#43] -Right keys [1]: [item_sk#51] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Input [5]: [#42#42, #43#43, #44#44, #45#45, #46#46] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: hashpartitioning(ws_bill_customer_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=14] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: [ws_bill_customer_sk#44 ASC NULLS FIRST], false +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#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] (174) ShuffleQueryStage -Output [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Arguments: X (175) AQEShuffleRead -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] +Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Arguments: coalesced (176) InputAdapter -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] -Arguments: [#53, #54, #55] +Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] +Arguments: [#54, #55, #56] (177) InputAdapter -Input [3]: [#53#53, #54#54, #55#55] +Input [3]: [#54#54, #55#55, #56#56] (178) NativeSort -Input [3]: [#53#53, #54#54, #55#55] -Arguments: [ss_customer_sk#53 ASC NULLS FIRST], false +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#56] +Output [1]: [c_customer_sk#57] (180) ShuffleQueryStage -Output [1]: [c_customer_sk#56] +Output [1]: [c_customer_sk#57] Arguments: X (181) AQEShuffleRead -Input [1]: [c_customer_sk#56] +Input [1]: [c_customer_sk#57] Arguments: coalesced (182) InputAdapter -Input [1]: [c_customer_sk#56] -Arguments: [#56] +Input [1]: [c_customer_sk#57] +Arguments: [#57] (183) InputAdapter -Input [1]: [#56#56] +Input [1]: [#57#57] (184) NativeSort -Input [1]: [#56#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false +Input [1]: [#57#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false (185) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#53] -Right keys [1]: [c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Input [4]: [#53#53, #54#54, #55#55, #56#56] +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#56 AS c_customer_sk#56, (cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55) AS _c1#57] -Input [3]: [ss_quantity#54, ss_sales_price#55, c_customer_sk#56] +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#56, _c1#57] -Keys [1]: [c_customer_sk#56] -Functions [1]: [partial_sum(_c1#57)] -Aggregate Attributes [2]: [sum#58, isEmpty#59] -Results [2]: [c_customer_sk#56, #15#15] +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#56, #15#15] -Keys [1]: [c_customer_sk#56] -Functions [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] -Results [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] +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#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26 AS ssales#60] -Input [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] +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#56, ssales#60] -Condition : (isnotnull(ssales#60) AND (cast(ssales#60 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#28, [id=#29]))) +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#56] -Input [2]: [c_customer_sk#56, ssales#60] +Output [1]: [c_customer_sk#57] +Input [2]: [c_customer_sk#57, ssales#61] (193) NativeSort -Input [1]: [c_customer_sk#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false +Input [1]: [c_customer_sk#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false (194) NativeSortMergeJoin -Left keys [1]: [ws_bill_customer_sk#44] -Right keys [1]: [c_customer_sk#56] +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#61, c_first_name#62, c_last_name#63] +Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64] (196) ShuffleQueryStage -Output [3]: [c_customer_sk#61, c_first_name#62, c_last_name#63] +Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64] Arguments: X (197) AQEShuffleRead -Input [3]: [c_customer_sk#61, c_first_name#62, c_last_name#63] +Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64] Arguments: coalesced (198) InputAdapter -Input [3]: [c_customer_sk#61, c_first_name#62, c_last_name#63] -Arguments: [#61, #62, #63] +Input [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64] +Arguments: [#62, #63, #64] (199) InputAdapter -Input [3]: [#61#61, #62#62, #63#63] +Input [3]: [#62#62, #63#63, #64#64] (200) NativeSort -Input [3]: [#61#61, #62#62, #63#63] -Arguments: [c_customer_sk#61 ASC NULLS FIRST], false +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#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] (202) ShuffleQueryStage -Output [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Arguments: X (203) AQEShuffleRead -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] +Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Arguments: coalesced (204) InputAdapter -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] -Arguments: [#53, #54, #55] +Input [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] +Arguments: [#54, #55, #56] (205) InputAdapter -Input [3]: [#53#53, #54#54, #55#55] +Input [3]: [#54#54, #55#55, #56#56] (206) NativeSort -Input [3]: [#53#53, #54#54, #55#55] -Arguments: [ss_customer_sk#53 ASC NULLS FIRST], false +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#56] +Output [1]: [c_customer_sk#57] (208) ShuffleQueryStage -Output [1]: [c_customer_sk#56] +Output [1]: [c_customer_sk#57] Arguments: X (209) AQEShuffleRead -Input [1]: [c_customer_sk#56] +Input [1]: [c_customer_sk#57] Arguments: coalesced (210) InputAdapter -Input [1]: [c_customer_sk#56] -Arguments: [#56] +Input [1]: [c_customer_sk#57] +Arguments: [#57] (211) InputAdapter -Input [1]: [#56#56] +Input [1]: [#57#57] (212) NativeSort -Input [1]: [#56#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false +Input [1]: [#57#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false (213) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#53] -Right keys [1]: [c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Input [4]: [#53#53, #54#54, #55#55, #56#56] +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#56 AS c_customer_sk#56, (cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55) AS _c1#64] -Input [3]: [ss_quantity#54, ss_sales_price#55, c_customer_sk#56] +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#56, _c1#64] -Keys [1]: [c_customer_sk#56] -Functions [1]: [partial_sum(_c1#64)] -Aggregate Attributes [2]: [sum#58, isEmpty#59] -Results [2]: [c_customer_sk#56, #15#15] +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#56, #15#15] -Keys [1]: [c_customer_sk#56] -Functions [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] -Results [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] +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#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26 AS ssales#60] -Input [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] +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#56, ssales#60] -Condition : (isnotnull(ssales#60) AND (cast(ssales#60 as decimal(38,8)) > (0.500000 * ReusedSubquery Subquery subquery#28, [id=#29]))) +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#56] -Input [2]: [c_customer_sk#56, ssales#60] +Output [1]: [c_customer_sk#57] +Input [2]: [c_customer_sk#57, ssales#61] (221) NativeSort -Input [1]: [c_customer_sk#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false +Input [1]: [c_customer_sk#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false (222) NativeSortMergeJoin -Left keys [1]: [c_customer_sk#61] -Right keys [1]: [c_customer_sk#56] +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#44] -Right keys [1]: [c_customer_sk#61] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Input [7]: [ws_sold_date_sk#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46, #61#61, #62#62, #63#63] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Arguments: hashpartitioning(ws_sold_date_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=15] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Arguments: [ws_sold_date_sk#42 ASC NULLS FIRST], false +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#65] +Output [1]: [d_date_sk#66] (231) ShuffleQueryStage -Output [1]: [d_date_sk#65] +Output [1]: [d_date_sk#66] Arguments: X (232) AQEShuffleRead -Input [1]: [d_date_sk#65] +Input [1]: [d_date_sk#66] Arguments: coalesced (233) InputAdapter -Input [1]: [d_date_sk#65] -Arguments: [#65] +Input [1]: [d_date_sk#66] +Arguments: [#66] (234) InputAdapter -Input [1]: [#65#65] +Input [1]: [#66#66] (235) NativeSort -Input [1]: [#65#65] -Arguments: [d_date_sk#65 ASC NULLS FIRST], false +Input [1]: [#66#66] +Arguments: [d_date_sk#66 ASC NULLS FIRST], false (236) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#42] -Right keys [1]: [d_date_sk#65] +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#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Input [6]: [ws_sold_date_sk#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63, #65#65] +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#63 AS c_last_name#63, c_first_name#62 AS c_first_name#62, (cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46) AS _c2#66] -Input [4]: [ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] +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#63, c_first_name#62, _c2#66] -Keys [2]: [c_last_name#63, c_first_name#62] -Functions [1]: [partial_sum(_c2#66)] -Aggregate Attributes [2]: [sum#67, isEmpty#68] -Results [3]: [c_last_name#63, c_first_name#62, #15#15] +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#63, c_first_name#62, #15#15] -Arguments: hashpartitioning(c_last_name#63, c_first_name#62, 100), ENSURE_REQUIREMENTS, [plan_id=16] +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#63, c_first_name#62, #15#15] +Output [3]: [c_last_name#64, c_first_name#63, #26] Arguments: X (242) AQEShuffleRead -Input [3]: [c_last_name#63, c_first_name#62, #15#15] +Input [3]: [c_last_name#64, c_first_name#63, #26] Arguments: coalesced (243) InputAdapter -Input [3]: [c_last_name#63, c_first_name#62, #15#15] +Input [3]: [c_last_name#64, c_first_name#63, #26] (244) NativeHashAggregate -Input [3]: [c_last_name#63, c_first_name#62, #15#15] -Keys [2]: [c_last_name#63, c_first_name#62] -Functions [1]: [sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))] -Aggregate Attributes [1]: [sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69] -Results [3]: [c_last_name#63, c_first_name#62, sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69] +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#63, c_first_name#62, sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69 AS sales#70] -Input [3]: [c_last_name#63, c_first_name#62, sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69] +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#32, c_first_name#31, sales#41] +Arguments: [c_last_name#33, c_first_name#32, sales#42] (247) InputAdapter -Input [3]: [c_last_name#32, c_first_name#31, sales#41] -Arguments: [#32, #31, #41] +Input [3]: [c_last_name#33, c_first_name#32, sales#42] +Arguments: [#33, #32, #42] (248) NativeTakeOrdered -Input [3]: [#32#32, #31#31, #41#41] -Arguments: X, [c_last_name#32 ASC NULLS FIRST, c_first_name#31 ASC NULLS FIRST, sales#41 ASC NULLS FIRST] +Input [3]: [#33#33, #32#32, #42#42] +Arguments: 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] @@ -1595,10 +1595,10 @@ 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#71] +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#71] +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] @@ -1687,22 +1687,22 @@ 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#72, isEmpty#73] +Results [3]: [c_customer_sk#22, sum#73, isEmpty#74] (292) HashAggregate -Input [3]: [c_customer_sk#22, sum#72, isEmpty#73] +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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26 AS ssales#27] +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#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#29]))) +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#27] +Input [2]: [c_customer_sk#22, ssales#28] (295) Sort Input [1]: [c_customer_sk#22] @@ -1715,23 +1715,23 @@ Join type: LeftSemi Join condition: None (297) Scan parquet -Output [3]: [c_customer_sk#30, c_first_name#31, c_last_name#32] +Output [3]: [c_customer_sk#31, c_first_name#32, c_last_name#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (298) Filter -Input [3]: [c_customer_sk#30, c_first_name#31, c_last_name#32] -Condition : isnotnull(c_customer_sk#30) +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#30, c_first_name#31, c_last_name#32] -Arguments: hashpartitioning(c_customer_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=25] +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#30, c_first_name#31, c_last_name#32] -Arguments: [c_customer_sk#30 ASC NULLS FIRST], false, 0 +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] @@ -1786,515 +1786,515 @@ 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#72, isEmpty#73] +Results [3]: [c_customer_sk#22, sum#73, isEmpty#74] (312) HashAggregate -Input [3]: [c_customer_sk#22, sum#72, isEmpty#73] +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))#26] -Results [2]: [c_customer_sk#22, sum((cast(ss_quantity#20 as decimal(10,0)) * ss_sales_price#21))#26 AS ssales#27] +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#27] -Condition : (isnotnull(ssales#27) AND (cast(ssales#27 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#74]))) +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#27] +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#30] +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#30] +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#31, c_last_name#32] -Input [7]: [cs_sold_date_sk#1, cs_bill_customer_sk#2, cs_quantity#4, cs_list_price#5, c_customer_sk#30, c_first_name#31, c_last_name#32] +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#31, c_last_name#32] +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#31, c_last_name#32] +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#34, d_year#35, d_moy#36] +Output [3]: [d_date_sk#35, d_year#36, d_moy#37] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (322) Filter -Input [3]: [d_date_sk#34, d_year#35, d_moy#36] -Condition : ((((isnotnull(d_year#35) AND isnotnull(d_moy#36)) AND (d_year#35 = 2000)) AND (d_moy#36 = 2)) AND isnotnull(d_date_sk#34)) +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#34] -Input [3]: [d_date_sk#34, d_year#35, d_moy#36] +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#34] -Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=29] +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#34] -Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 +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#34] +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#31, c_last_name#32] -Input [6]: [cs_sold_date_sk#1, cs_quantity#4, cs_list_price#5, c_first_name#31, c_last_name#32, d_date_sk#34] +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#31, c_last_name#32] -Keys [2]: [c_last_name#32, c_first_name#31] +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#38, isEmpty#39] -Results [4]: [c_last_name#32, c_first_name#31, sum#75, isEmpty#76] +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#32, c_first_name#31, sum#75, isEmpty#76] -Arguments: hashpartitioning(c_last_name#32, c_first_name#31, 100), ENSURE_REQUIREMENTS, [plan_id=30] +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#32, c_first_name#31, sum#75, isEmpty#76] -Keys [2]: [c_last_name#32, c_first_name#31] +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))#40] -Results [3]: [c_last_name#32, c_first_name#31, sum((cast(cs_quantity#4 as decimal(10,0)) * cs_list_price#5))#40 AS sales#41] +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#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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:/] PushedFilters: [IsNotNull(ws_bill_customer_sk), IsNotNull(ws_sold_date_sk)] ReadSchema: struct (332) Filter -Input [5]: [ws_sold_date_sk#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Condition : (isnotnull(ws_bill_customer_sk#44) AND isnotnull(ws_sold_date_sk#42)) +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#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: hashpartitioning(ws_item_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=31] +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#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: [ws_item_sk#43 ASC NULLS FIRST], false, 0 +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#77, ss_item_sk#47] +Output [2]: [ss_sold_date_sk#78, ss_item_sk#48] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_item_sk)] ReadSchema: struct (336) Filter -Input [2]: [ss_sold_date_sk#77, ss_item_sk#47] -Condition : (isnotnull(ss_sold_date_sk#77) AND isnotnull(ss_item_sk#47)) +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#77, ss_item_sk#47] -Arguments: hashpartitioning(ss_sold_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=32] +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#77, ss_item_sk#47] -Arguments: [ss_sold_date_sk#77 ASC NULLS FIRST], false, 0 +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#78, d_date#48, d_year#79] +Output [3]: [d_date_sk#79, d_date#49, d_year#80] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (340) Filter -Input [3]: [d_date_sk#78, d_date#48, d_year#79] -Condition : (d_year#79 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#78)) +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#78, d_date#48] -Input [3]: [d_date_sk#78, d_date#48, d_year#79] +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#78, d_date#48] -Arguments: hashpartitioning(d_date_sk#78, 100), ENSURE_REQUIREMENTS, [plan_id=33] +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#78, d_date#48] -Arguments: [d_date_sk#78 ASC NULLS FIRST], false, 0 +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#77] -Right keys [1]: [d_date_sk#78] +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#47, d_date#48] -Input [4]: [ss_sold_date_sk#77, ss_item_sk#47, d_date_sk#78, d_date#48] +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#47, d_date#48] -Arguments: hashpartitioning(ss_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=34] +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#47, d_date#48] -Arguments: [ss_item_sk#47 ASC NULLS FIRST], false, 0 +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#49, i_item_desc#50] +Output [2]: [i_item_sk#50, i_item_desc#51] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (349) Filter -Input [2]: [i_item_sk#49, i_item_desc#50] -Condition : isnotnull(i_item_sk#49) +Input [2]: [i_item_sk#50, i_item_desc#51] +Condition : isnotnull(i_item_sk#50) (350) Exchange -Input [2]: [i_item_sk#49, i_item_desc#50] -Arguments: hashpartitioning(i_item_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=35] +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#49, i_item_desc#50] -Arguments: [i_item_sk#49 ASC NULLS FIRST], false, 0 +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#47] -Right keys [1]: [i_item_sk#49] +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#48, i_item_sk#49, substr(i_item_desc#50, 1, 30) AS _groupingexpression#13] -Input [4]: [ss_item_sk#47, d_date#48, i_item_sk#49, i_item_desc#50] +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#48, i_item_sk#49, _groupingexpression#13] -Keys [3]: [_groupingexpression#13, i_item_sk#49, d_date#48] +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#49, d_date#48, count#71] +Results [4]: [_groupingexpression#13, i_item_sk#50, d_date#49, count#72] (355) HashAggregate -Input [4]: [_groupingexpression#13, i_item_sk#49, d_date#48, count#71] -Keys [3]: [_groupingexpression#13, i_item_sk#49, d_date#48] +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#49 AS item_sk#51, count(1)#16 AS cnt#52] +Results [2]: [i_item_sk#50 AS item_sk#52, count(1)#16 AS cnt#53] (356) Filter -Input [2]: [item_sk#51, cnt#52] -Condition : (cnt#52 > 4) +Input [2]: [item_sk#52, cnt#53] +Condition : (cnt#53 > 4) (357) Project -Output [1]: [item_sk#51] -Input [2]: [item_sk#51, cnt#52] +Output [1]: [item_sk#52] +Input [2]: [item_sk#52, cnt#53] (358) Sort -Input [1]: [item_sk#51] -Arguments: [item_sk#51 ASC NULLS FIRST], false, 0 +Input [1]: [item_sk#52] +Arguments: [item_sk#52 ASC NULLS FIRST], false, 0 (359) SortMergeJoin -Left keys [1]: [ws_item_sk#43] -Right keys [1]: [item_sk#51] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Input [5]: [ws_sold_date_sk#42, ws_item_sk#43, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: hashpartitioning(ws_bill_customer_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=36] +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#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46] -Arguments: [ws_bill_customer_sk#44 ASC NULLS FIRST], false, 0 +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#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk)] ReadSchema: struct (364) Filter -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] -Condition : isnotnull(ss_customer_sk#53) +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#53, ss_quantity#54, ss_sales_price#55] -Arguments: hashpartitioning(ss_customer_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=37] +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#53, ss_quantity#54, ss_sales_price#55] -Arguments: [ss_customer_sk#53 ASC NULLS FIRST], false, 0 +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#56] +Output [1]: [c_customer_sk#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (368) Filter -Input [1]: [c_customer_sk#56] -Condition : isnotnull(c_customer_sk#56) +Input [1]: [c_customer_sk#57] +Condition : isnotnull(c_customer_sk#57) (369) Exchange -Input [1]: [c_customer_sk#56] -Arguments: hashpartitioning(c_customer_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=38] +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#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0 (371) SortMergeJoin -Left keys [1]: [ss_customer_sk#53] -Right keys [1]: [c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Input [4]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55, c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Keys [1]: [c_customer_sk#56] -Functions [1]: [partial_sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [2]: [sum#58, isEmpty#59] -Results [3]: [c_customer_sk#56, sum#80, isEmpty#81] +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#56, sum#80, isEmpty#81] -Keys [1]: [c_customer_sk#56] -Functions [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] -Results [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26 AS ssales#60] +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#56, ssales#60] -Condition : (isnotnull(ssales#60) AND (cast(ssales#60 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#82]))) +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#56] -Input [2]: [c_customer_sk#56, ssales#60] +Output [1]: [c_customer_sk#57] +Input [2]: [c_customer_sk#57, ssales#61] (377) Sort -Input [1]: [c_customer_sk#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false, 0 +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#44] -Right keys [1]: [c_customer_sk#56] +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#61, c_first_name#62, c_last_name#63] +Output [3]: [c_customer_sk#62, c_first_name#63, c_last_name#64] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (380) Filter -Input [3]: [c_customer_sk#61, c_first_name#62, c_last_name#63] -Condition : isnotnull(c_customer_sk#61) +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#61, c_first_name#62, c_last_name#63] -Arguments: hashpartitioning(c_customer_sk#61, 100), ENSURE_REQUIREMENTS, [plan_id=39] +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#61, c_first_name#62, c_last_name#63] -Arguments: [c_customer_sk#61 ASC NULLS FIRST], false, 0 +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#53, ss_quantity#54, ss_sales_price#55] +Output [3]: [ss_customer_sk#54, ss_quantity#55, ss_sales_price#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk)] ReadSchema: struct (384) Filter -Input [3]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55] -Condition : isnotnull(ss_customer_sk#53) +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#53, ss_quantity#54, ss_sales_price#55] -Arguments: hashpartitioning(ss_customer_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=40] +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#53, ss_quantity#54, ss_sales_price#55] -Arguments: [ss_customer_sk#53 ASC NULLS FIRST], false, 0 +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#56] +Output [1]: [c_customer_sk#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (388) Filter -Input [1]: [c_customer_sk#56] -Condition : isnotnull(c_customer_sk#56) +Input [1]: [c_customer_sk#57] +Condition : isnotnull(c_customer_sk#57) (389) Exchange -Input [1]: [c_customer_sk#56] -Arguments: hashpartitioning(c_customer_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=41] +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#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0 (391) SortMergeJoin -Left keys [1]: [ss_customer_sk#53] -Right keys [1]: [c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Input [4]: [ss_customer_sk#53, ss_quantity#54, ss_sales_price#55, c_customer_sk#56] +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#54, ss_sales_price#55, c_customer_sk#56] -Keys [1]: [c_customer_sk#56] -Functions [1]: [partial_sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [2]: [sum#58, isEmpty#59] -Results [3]: [c_customer_sk#56, sum#80, isEmpty#81] +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#56, sum#80, isEmpty#81] -Keys [1]: [c_customer_sk#56] -Functions [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26] -Results [2]: [c_customer_sk#56, sum((cast(ss_quantity#54 as decimal(10,0)) * ss_sales_price#55))#26 AS ssales#60] +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#56, ssales#60] -Condition : (isnotnull(ssales#60) AND (cast(ssales#60 as decimal(38,8)) > (0.500000 * Subquery subquery#28, [id=#83]))) +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#56] -Input [2]: [c_customer_sk#56, ssales#60] +Output [1]: [c_customer_sk#57] +Input [2]: [c_customer_sk#57, ssales#61] (397) Sort -Input [1]: [c_customer_sk#56] -Arguments: [c_customer_sk#56 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#57] +Arguments: [c_customer_sk#57 ASC NULLS FIRST], false, 0 (398) SortMergeJoin -Left keys [1]: [c_customer_sk#61] -Right keys [1]: [c_customer_sk#56] +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#44] -Right keys [1]: [c_customer_sk#61] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Input [7]: [ws_sold_date_sk#42, ws_bill_customer_sk#44, ws_quantity#45, ws_list_price#46, c_customer_sk#61, c_first_name#62, c_last_name#63] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Arguments: hashpartitioning(ws_sold_date_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=42] +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#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Arguments: [ws_sold_date_sk#42 ASC NULLS FIRST], false, 0 +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#65, d_year#84, d_moy#85] +Output [3]: [d_date_sk#66, d_year#85, d_moy#86] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (404) Filter -Input [3]: [d_date_sk#65, d_year#84, d_moy#85] -Condition : ((((isnotnull(d_year#84) AND isnotnull(d_moy#85)) AND (d_year#84 = 2000)) AND (d_moy#85 = 2)) AND isnotnull(d_date_sk#65)) +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#65] -Input [3]: [d_date_sk#65, d_year#84, d_moy#85] +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#65] -Arguments: hashpartitioning(d_date_sk#65, 100), ENSURE_REQUIREMENTS, [plan_id=43] +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#65] -Arguments: [d_date_sk#65 ASC NULLS FIRST], false, 0 +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#42] -Right keys [1]: [d_date_sk#65] +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#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Input [6]: [ws_sold_date_sk#42, ws_quantity#45, ws_list_price#46, c_first_name#62, c_last_name#63, d_date_sk#65] +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#45, ws_list_price#46, c_first_name#62, c_last_name#63] -Keys [2]: [c_last_name#63, c_first_name#62] -Functions [1]: [partial_sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))] -Aggregate Attributes [2]: [sum#67, isEmpty#68] -Results [4]: [c_last_name#63, c_first_name#62, sum#86, isEmpty#87] +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#63, c_first_name#62, sum#86, isEmpty#87] -Arguments: hashpartitioning(c_last_name#63, c_first_name#62, 100), ENSURE_REQUIREMENTS, [plan_id=44] +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#63, c_first_name#62, sum#86, isEmpty#87] -Keys [2]: [c_last_name#63, c_first_name#62] -Functions [1]: [sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))] -Aggregate Attributes [1]: [sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69] -Results [3]: [c_last_name#63, c_first_name#62, sum((cast(ws_quantity#45 as decimal(10,0)) * ws_list_price#46))#69 AS sales#70] +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#32, c_first_name#31, sales#41] -Arguments: X, [c_last_name#32 ASC NULLS FIRST, c_first_name#31 ASC NULLS FIRST, sales#41 ASC NULLS FIRST], [c_last_name#32, c_first_name#31, sales#41] +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#32, c_first_name#31, sales#41] +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#28, [id=#29] +Subquery:1 Hosting operator id = 78 Hosting Expression = Subquery subquery#29, [id=#30] AdaptiveSparkPlan (486) +- == Final Plan == NativeProject (460) @@ -2371,334 +2371,334 @@ AdaptiveSparkPlan (486) (461) Scan parquet -Output [4]: [ss_sold_date_sk#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] +Output [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (417) InputAdapter -Input [4]: [ss_sold_date_sk#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] -Arguments: [#88, #89, #90, #91] +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]: [#88#88, #89#89, #90#90, #91#91] -Condition : (isnotnull(ss_customer_sk#89) AND isnotnull(ss_sold_date_sk#88)) +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]: [#88#88, #89#89, #90#90, #91#91] -Arguments: hashpartitioning(ss_customer_sk#89, 100), ENSURE_REQUIREMENTS, [plan_id=45] +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]: [#88#88, #89#89, #90#90, #91#91] +Output [4]: [#89#89, #90#90, #91#91, #92#92] Arguments: X (421) AQEShuffleRead -Input [4]: [#88#88, #89#89, #90#90, #91#91] +Input [4]: [#89#89, #90#90, #91#91, #92#92] Arguments: coalesced (422) InputAdapter -Input [4]: [#88#88, #89#89, #90#90, #91#91] +Input [4]: [#89#89, #90#90, #91#91, #92#92] (423) NativeSort -Input [4]: [#88#88, #89#89, #90#90, #91#91] -Arguments: [ss_customer_sk#89 ASC NULLS FIRST], false +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#92] +Output [1]: [c_customer_sk#93] (425) ShuffleQueryStage -Output [1]: [c_customer_sk#92] +Output [1]: [c_customer_sk#93] Arguments: X (426) AQEShuffleRead -Input [1]: [c_customer_sk#92] +Input [1]: [c_customer_sk#93] Arguments: coalesced (427) InputAdapter -Input [1]: [c_customer_sk#92] -Arguments: [#92] +Input [1]: [c_customer_sk#93] +Arguments: [#93] (428) InputAdapter -Input [1]: [#92#92] +Input [1]: [#93#93] (429) NativeSort -Input [1]: [#92#92] -Arguments: [c_customer_sk#92 ASC NULLS FIRST], false +Input [1]: [#93#93] +Arguments: [c_customer_sk#93 ASC NULLS FIRST], false (430) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#89] -Right keys [1]: [c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Input [5]: [#88#88, #89#89, #90#90, #91#91, #92#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Arguments: hashpartitioning(ss_sold_date_sk#88, 100), ENSURE_REQUIREMENTS, [plan_id=46] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Arguments: [ss_sold_date_sk#88 ASC NULLS FIRST], false +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#93, d_year#94] +Output [2]: [d_date_sk#94, d_year#95] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (438) InputAdapter -Input [2]: [d_date_sk#93, d_year#94] -Arguments: [#93, #94] +Input [2]: [d_date_sk#94, d_year#95] +Arguments: [#94, #95] (439) NativeFilter -Input [2]: [#93#93, #94#94] -Condition : (d_year#94 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#93)) +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#93] -Input [2]: [#93#93, #94#94] +Output [1]: [d_date_sk#94] +Input [2]: [#94#94, #95#95] (441) NativeShuffleExchange -Input [1]: [d_date_sk#93] -Arguments: hashpartitioning(d_date_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=47] +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#93] +Output [1]: [d_date_sk#94] Arguments: X (443) AQEShuffleRead -Input [1]: [d_date_sk#93] +Input [1]: [d_date_sk#94] Arguments: coalesced (444) InputAdapter -Input [1]: [d_date_sk#93] +Input [1]: [d_date_sk#94] (445) NativeSort -Input [1]: [d_date_sk#93] -Arguments: [d_date_sk#93 ASC NULLS FIRST], false +Input [1]: [d_date_sk#94] +Arguments: [d_date_sk#94 ASC NULLS FIRST], false (446) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#88] -Right keys [1]: [d_date_sk#93] +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#90, ss_sales_price#91, c_customer_sk#92] -Input [5]: [ss_sold_date_sk#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92, d_date_sk#93] +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#92 AS c_customer_sk#92, (cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91) AS _c1#95] -Input [3]: [ss_quantity#90, ss_sales_price#91, c_customer_sk#92] +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#92, _c1#95] -Keys [1]: [c_customer_sk#92] -Functions [1]: [partial_sum(_c1#95)] -Aggregate Attributes [2]: [sum#96, isEmpty#97] -Results [2]: [c_customer_sk#92, #15#15] +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#92, #15#15] -Arguments: hashpartitioning(c_customer_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=48] +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#92, #15#15] +Output [2]: [c_customer_sk#93, #26] Arguments: X (452) AQEShuffleRead -Input [2]: [c_customer_sk#92, #15#15] +Input [2]: [c_customer_sk#93, #26] Arguments: coalesced (453) InputAdapter -Input [2]: [c_customer_sk#92, #15#15] +Input [2]: [c_customer_sk#93, #26] (454) NativeHashAggregate -Input [2]: [c_customer_sk#92, #15#15] -Keys [1]: [c_customer_sk#92] -Functions [1]: [sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))#98] -Results [2]: [c_customer_sk#92, sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))#98] +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#90 as decimal(10,0)) * ss_sales_price#91))#98 AS csales#99] -Input [2]: [c_customer_sk#92, sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))#98] +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#99] +Input [1]: [csales#100] Keys: [] -Functions [1]: [partial_max(csales#99)] -Aggregate Attributes [1]: [max#100] -Results [1]: [#15#15] +Functions [1]: [partial_max(csales#100)] +Aggregate Attributes [1]: [max#101] +Results [1]: [#26] (457) NativeShuffleExchange -Input [1]: [#15#15] +Input [1]: [#26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=49] (458) ShuffleQueryStage -Output [1]: [#15#15] +Output [1]: [#26] Arguments: X (459) NativeHashAggregate -Input [1]: [#15#15] +Input [1]: [#26] Keys: [] -Functions [1]: [max(csales#99)] -Aggregate Attributes [1]: [max(csales#99)#101] -Results [1]: [max(csales#99)#101] +Functions [1]: [max(csales#100)] +Aggregate Attributes [1]: [max(csales#100)#102] +Results [1]: [max(csales#100)#102] (460) NativeProject -Output [1]: [max(csales#99)#101 AS tpcds_cmax#102] -Input [1]: [max(csales#99)#101] +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#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] +Output [4]: [ss_sold_date_sk#89, ss_customer_sk#90, ss_quantity#91, ss_sales_price#92] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (462) Filter -Input [4]: [ss_sold_date_sk#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] -Condition : (isnotnull(ss_customer_sk#89) AND isnotnull(ss_sold_date_sk#88)) +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#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] -Arguments: hashpartitioning(ss_customer_sk#89, 100), ENSURE_REQUIREMENTS, [plan_id=50] +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#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91] -Arguments: [ss_customer_sk#89 ASC NULLS FIRST], false, 0 +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#92] +Output [1]: [c_customer_sk#93] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (466) Filter -Input [1]: [c_customer_sk#92] -Condition : isnotnull(c_customer_sk#92) +Input [1]: [c_customer_sk#93] +Condition : isnotnull(c_customer_sk#93) (467) Exchange -Input [1]: [c_customer_sk#92] -Arguments: hashpartitioning(c_customer_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=51] +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#92] -Arguments: [c_customer_sk#92 ASC NULLS FIRST], false, 0 +Input [1]: [c_customer_sk#93] +Arguments: [c_customer_sk#93 ASC NULLS FIRST], false, 0 (469) SortMergeJoin -Left keys [1]: [ss_customer_sk#89] -Right keys [1]: [c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Input [5]: [ss_sold_date_sk#88, ss_customer_sk#89, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Arguments: hashpartitioning(ss_sold_date_sk#88, 100), ENSURE_REQUIREMENTS, [plan_id=52] +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#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92] -Arguments: [ss_sold_date_sk#88 ASC NULLS FIRST], false, 0 +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#93, d_year#94] +Output [2]: [d_date_sk#94, d_year#95] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(d_year, [2000,2001,2002,2003]), IsNotNull(d_date_sk)] ReadSchema: struct (474) Filter -Input [2]: [d_date_sk#93, d_year#94] -Condition : (d_year#94 IN (2000,2001,2002,2003) AND isnotnull(d_date_sk#93)) +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#93] -Input [2]: [d_date_sk#93, d_year#94] +Output [1]: [d_date_sk#94] +Input [2]: [d_date_sk#94, d_year#95] (476) Exchange -Input [1]: [d_date_sk#93] -Arguments: hashpartitioning(d_date_sk#93, 100), ENSURE_REQUIREMENTS, [plan_id=53] +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#93] -Arguments: [d_date_sk#93 ASC NULLS FIRST], false, 0 +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#88] -Right keys [1]: [d_date_sk#93] +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#90, ss_sales_price#91, c_customer_sk#92] -Input [5]: [ss_sold_date_sk#88, ss_quantity#90, ss_sales_price#91, c_customer_sk#92, d_date_sk#93] +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#90, ss_sales_price#91, c_customer_sk#92] -Keys [1]: [c_customer_sk#92] -Functions [1]: [partial_sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))] -Aggregate Attributes [2]: [sum#96, isEmpty#97] -Results [3]: [c_customer_sk#92, sum#103, isEmpty#104] +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#92, sum#103, isEmpty#104] -Arguments: hashpartitioning(c_customer_sk#92, 100), ENSURE_REQUIREMENTS, [plan_id=54] +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#92, sum#103, isEmpty#104] -Keys [1]: [c_customer_sk#92] -Functions [1]: [sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))] -Aggregate Attributes [1]: [sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))#98] -Results [1]: [sum((cast(ss_quantity#90 as decimal(10,0)) * ss_sales_price#91))#98 AS csales#99] +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#99] +Input [1]: [csales#100] Keys: [] -Functions [1]: [partial_max(csales#99)] -Aggregate Attributes [1]: [max#100] -Results [1]: [max#105] +Functions [1]: [partial_max(csales#100)] +Aggregate Attributes [1]: [max#101] +Results [1]: [max#106] (484) Exchange -Input [1]: [max#105] +Input [1]: [max#106] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=55] (485) HashAggregate -Input [1]: [max#105] +Input [1]: [max#106] Keys: [] -Functions [1]: [max(csales#99)] -Aggregate Attributes [1]: [max(csales#99)#101] -Results [1]: [max(csales#99)#101 AS tpcds_cmax#102] +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#102] +Output [1]: [tpcds_cmax#103] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 108 Hosting Expression = ReusedSubquery Subquery subquery#28, [id=#29] +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#28, [id=#29] +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#28, [id=#29] +Subquery:4 Hosting operator id = 219 Hosting Expression = ReusedSubquery Subquery subquery#29, [id=#30] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24a.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24a.txt index b0fdbe803..d093bcec1 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24a.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24a.txt @@ -499,25 +499,25 @@ Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_sta Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [partial_sum(_c10#26)] Aggregate Attributes [1]: [sum#27] -Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] (82) NativeShuffleExchange -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, 100), ENSURE_REQUIREMENTS, [plan_id=11] (83) ShuffleQueryStage -Output [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Output [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: X (84) AQEShuffleRead -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: coalesced (85) InputAdapter -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] (86) NativeHashAggregate -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#5))#29] @@ -532,55 +532,55 @@ Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, netpaid#30] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [partial_sum(netpaid#30)] Aggregate Attributes [2]: [sum#31, isEmpty#32] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] (89) NativeShuffleExchange -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, 100), ENSURE_REQUIREMENTS, [plan_id=12] (90) ShuffleQueryStage -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: X (91) AQEShuffleRead -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: coalesced (92) InputAdapter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] (93) NativeHashAggregate -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [sum(netpaid#30)] -Aggregate Attributes [1]: [sum(netpaid#30)#33] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33] +Aggregate Attributes [1]: [sum(netpaid#30)#34] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34] (94) NativeProject -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33 AS paid#34] -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34 AS paid#35] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34] (95) NativeFilter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] -Condition : (isnotnull(paid#34) AND (cast(paid#34 as decimal(33,8)) > cast(Subquery subquery#35, [id=#36] as decimal(33,8)))) +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] +Condition : (isnotnull(paid#35) AND (cast(paid#35 as decimal(33,8)) > cast(Subquery subquery#36, [id=#37] as decimal(33,8)))) (96) NativeShuffleExchange -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: rangepartitioning(c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=13] (97) ShuffleQueryStage -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: X (98) AQEShuffleRead -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: coalesced (99) InputAdapter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] (100) NativeSort -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: [c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST], true (101) Scan parquet @@ -788,14 +788,14 @@ Input [11]: [ss_net_paid#5, s_store_name#9, s_state#11, i_current_price#14, i_si Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum#27] -Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] (145) Exchange -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, 100), ENSURE_REQUIREMENTS, [plan_id=24] (146) HashAggregate -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#5))#29] @@ -806,38 +806,38 @@ Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, netpaid#30] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [partial_sum(netpaid#30)] Aggregate Attributes [2]: [sum#31, isEmpty#32] -Results [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Results [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] (148) Exchange -Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, 100), ENSURE_REQUIREMENTS, [plan_id=25] (149) HashAggregate -Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [sum(netpaid#30)] -Aggregate Attributes [1]: [sum(netpaid#30)#33] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33 AS paid#34] +Aggregate Attributes [1]: [sum(netpaid#30)#34] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34 AS paid#35] (150) Filter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] -Condition : (isnotnull(paid#34) AND (cast(paid#34 as decimal(33,8)) > cast(Subquery subquery#35, [id=#36] as decimal(33,8)))) +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] +Condition : (isnotnull(paid#35) AND (cast(paid#35 as decimal(33,8)) > cast(Subquery subquery#36, [id=#37] as decimal(33,8)))) (151) Exchange -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: rangepartitioning(c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=26] (152) Sort -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: [c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST], true, 0 (153) AdaptiveSparkPlan -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 95 Hosting Expression = Subquery subquery#35, [id=#36] +Subquery:1 Hosting operator id = 95 Hosting Expression = Subquery subquery#36, [id=#37] AdaptiveSparkPlan (258) +- == Final Plan == NativeProject (208) @@ -948,474 +948,474 @@ AdaptiveSparkPlan (258) (154) ReusedExchange [Reuses operator id: 35] -Output [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] +Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] (155) ShuffleQueryStage -Output [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] +Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] Arguments: X (156) AQEShuffleRead -Input [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] +Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] Arguments: coalesced (157) InputAdapter -Input [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] -Arguments: [#40, #41, #42, #43, #44, #45] +Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Arguments: [#41, #42, #43, #44, #45, #46] (158) InputAdapter -Input [6]: [#40#40, #41#41, #42#42, #43#43, #44#44, #45#45] +Input [6]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46] (159) NativeSort -Input [6]: [#40#40, #41#41, #42#42, #43#43, #44#44, #45#45] -Arguments: [ss_item_sk#40 ASC NULLS FIRST], false +Input [6]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46] +Arguments: [ss_item_sk#41 ASC NULLS FIRST], false (230) Scan parquet -Output [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Output [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (161) InputAdapter -Input [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: [#46, #47, #48, #49, #50, #51] +Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: [#47, #48, #49, #50, #51, #52] (162) NativeFilter -Input [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] -Condition : isnotnull(i_item_sk#46) +Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Condition : isnotnull(i_item_sk#47) (163) NativeShuffleExchange -Input [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] -Arguments: hashpartitioning(i_item_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Arguments: hashpartitioning(i_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=27] (164) ShuffleQueryStage -Output [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] +Output [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] Arguments: X (165) AQEShuffleRead -Input [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] +Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] Arguments: coalesced (166) InputAdapter -Input [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] +Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] (167) NativeSort -Input [6]: [#46#46, #47#47, #48#48, #49#49, #50#50, #51#51] -Arguments: [i_item_sk#46 ASC NULLS FIRST], false +Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Arguments: [i_item_sk#47 ASC NULLS FIRST], false (168) NativeSortMergeJoin -Left keys [1]: [ss_item_sk#40] -Right keys [1]: [i_item_sk#46] +Left keys [1]: [ss_item_sk#41] +Right keys [1]: [i_item_sk#47] Join type: Inner Join condition: None (169) NativeProject -Output [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Input [12]: [#40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49, #50#50, #51#51] +Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Input [12]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49, #50#50, #51#51, #52#52] (170) NativeShuffleExchange -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: hashpartitioning(ss_customer_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: hashpartitioning(ss_customer_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=28] (171) ShuffleQueryStage -Output [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] Arguments: X (172) AQEShuffleRead -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] Arguments: coalesced (173) InputAdapter -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] (174) NativeSort -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: [ss_customer_sk#41 ASC NULLS FIRST], false +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: [ss_customer_sk#42 ASC NULLS FIRST], false (175) ReusedExchange [Reuses operator id: 58] -Output [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] +Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] (176) ShuffleQueryStage -Output [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] +Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] Arguments: X (177) AQEShuffleRead -Input [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] +Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] Arguments: coalesced (178) InputAdapter -Input [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: [#52, #53, #54, #55] +Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: [#53, #54, #55, #56] (179) InputAdapter -Input [4]: [#52#52, #53#53, #54#54, #55#55] +Input [4]: [#53#53, #54#54, #55#55, #56#56] (180) NativeSort -Input [4]: [#52#52, #53#53, #54#54, #55#55] -Arguments: [c_customer_sk#52 ASC NULLS FIRST], false +Input [4]: [#53#53, #54#54, #55#55, #56#56] +Arguments: [c_customer_sk#53 ASC NULLS FIRST], false (181) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#41] -Right keys [1]: [c_customer_sk#52] +Left keys [1]: [ss_customer_sk#42] +Right keys [1]: [c_customer_sk#53] Join type: Inner Join condition: None (182) NativeProject -Output [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Input [14]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, #52#52, #53#53, #54#54, #55#55] +Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Input [14]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, #53#53, #54#54, #55#55, #56#56] (183) NativeShuffleExchange -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: hashpartitioning(c_birth_country#55, s_zip#45, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: hashpartitioning(c_birth_country#56, s_zip#46, 100), ENSURE_REQUIREMENTS, [plan_id=29] (184) ShuffleQueryStage -Output [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] +Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] Arguments: X (185) AQEShuffleRead -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] Arguments: coalesced (186) InputAdapter -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] (187) NativeSort -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: [c_birth_country#55 ASC NULLS FIRST, s_zip#45 ASC NULLS FIRST], false +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: [c_birth_country#56 ASC NULLS FIRST, s_zip#46 ASC NULLS FIRST], false (188) ReusedExchange [Reuses operator id: 73] -Output [3]: [ca_state#56, ca_zip#57, ca_country#58] +Output [3]: [ca_state#57, ca_zip#58, ca_country#59] (189) ShuffleQueryStage -Output [3]: [ca_state#56, ca_zip#57, ca_country#58] +Output [3]: [ca_state#57, ca_zip#58, ca_country#59] Arguments: X (190) AQEShuffleRead -Input [3]: [ca_state#56, ca_zip#57, ca_country#58] +Input [3]: [ca_state#57, ca_zip#58, ca_country#59] Arguments: coalesced (191) InputAdapter -Input [3]: [ca_state#56, ca_zip#57, ca_country#58] -Arguments: [#56, #57, #58] +Input [3]: [ca_state#57, ca_zip#58, ca_country#59] +Arguments: [#57, #58, #59] (192) InputAdapter -Input [3]: [#56#56, #57#57, #58#58] +Input [3]: [#57#57, #58#58, #59#59] (193) NativeSort -Input [3]: [#56#56, #57#57, #58#58] -Arguments: [upper(ca_country#58) ASC NULLS FIRST, ca_zip#57 ASC NULLS FIRST], false +Input [3]: [#57#57, #58#58, #59#59] +Arguments: [upper(ca_country#59) ASC NULLS FIRST, ca_zip#58 ASC NULLS FIRST], false (194) NativeSortMergeJoin -Left keys [2]: [c_birth_country#55, s_zip#45] -Right keys [2]: [upper(ca_country#58), ca_zip#57] +Left keys [2]: [c_birth_country#56, s_zip#46] +Right keys [2]: [upper(ca_country#59), ca_zip#58] Join type: Inner Join condition: None (195) NativeProject -Output [11]: [ss_net_paid#42, s_store_name#43, s_state#44, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, ca_state#56] -Input [15]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55, #56#56, #57#57, #58#58] +Output [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] +Input [15]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56, #57#57, #58#58, #59#59] (196) NativeProject -Output [11]: [c_last_name#54 AS c_last_name#54, c_first_name#53 AS c_first_name#53, s_store_name#43 AS s_store_name#43, ca_state#56 AS ca_state#56, s_state#44 AS s_state#44, i_color#49 AS i_color#49, i_current_price#47 AS i_current_price#47, i_manager_id#51 AS i_manager_id#51, i_units#50 AS i_units#50, i_size#48 AS i_size#48, UnscaledValue(ss_net_paid#42) AS _c10#59] -Input [11]: [ss_net_paid#42, s_store_name#43, s_state#44, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, ca_state#56] +Output [11]: [c_last_name#55 AS c_last_name#55, c_first_name#54 AS c_first_name#54, s_store_name#44 AS s_store_name#44, ca_state#57 AS ca_state#57, s_state#45 AS s_state#45, i_color#50 AS i_color#50, i_current_price#48 AS i_current_price#48, i_manager_id#52 AS i_manager_id#52, i_units#51 AS i_units#51, i_size#49 AS i_size#49, UnscaledValue(ss_net_paid#43) AS _c10#60] +Input [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] (197) NativeHashAggregate -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, _c10#59] -Keys [10]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48] -Functions [1]: [partial_sum(_c10#59)] -Aggregate Attributes [1]: [sum#60] -Results [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, _c10#60] +Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] +Functions [1]: [partial_sum(_c10#60)] +Aggregate Attributes [1]: [sum#61] +Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] (198) NativeShuffleExchange -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] -Arguments: hashpartitioning(c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] +Arguments: hashpartitioning(c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, 100), ENSURE_REQUIREMENTS, [plan_id=30] (199) ShuffleQueryStage -Output [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] +Output [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] Arguments: X (200) AQEShuffleRead -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] Arguments: coalesced (201) InputAdapter -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] (202) NativeHashAggregate -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, #28#28] -Keys [10]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48] -Functions [1]: [sum(UnscaledValue(ss_net_paid#42))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#42))#29] -Results [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, sum(UnscaledValue(ss_net_paid#42))#29] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28] +Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] +Functions [1]: [sum(UnscaledValue(ss_net_paid#43))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#43))#29] +Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum(UnscaledValue(ss_net_paid#43))#29] (203) NativeProject -Output [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#42))#29,17,2) AS netpaid#61] -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, sum(UnscaledValue(ss_net_paid#42))#29] +Output [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#43))#29,17,2) AS netpaid#62] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum(UnscaledValue(ss_net_paid#43))#29] (204) NativeHashAggregate -Input [1]: [netpaid#61] +Input [1]: [netpaid#62] Keys: [] -Functions [1]: [partial_avg(netpaid#61)] -Aggregate Attributes [2]: [sum#62, count#63] -Results [1]: [#28#28] +Functions [1]: [partial_avg(netpaid#62)] +Aggregate Attributes [2]: [sum#63, count#64] +Results [2]: [#33, #28] (205) NativeShuffleExchange -Input [1]: [#28#28] +Input [2]: [#33, #28] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=31] (206) ShuffleQueryStage -Output [1]: [#28#28] +Output [2]: [#33, #28] Arguments: X (207) NativeHashAggregate -Input [1]: [#28#28] +Input [2]: [#33, #28] Keys: [] -Functions [1]: [avg(netpaid#61)] -Aggregate Attributes [1]: [avg(netpaid#61)#64] -Results [1]: [avg(netpaid#61)#64] +Functions [1]: [avg(netpaid#62)] +Aggregate Attributes [1]: [avg(netpaid#62)#65] +Results [1]: [avg(netpaid#62)#65] (208) NativeProject -Output [1]: [(0.05 * avg(netpaid#61)#64) AS (0.05 * avg(netpaid))#65] -Input [1]: [avg(netpaid#61)#64] +Output [1]: [(0.05 * avg(netpaid#62)#65) AS (0.05 * avg(netpaid))#66] +Input [1]: [avg(netpaid#62)#65] (209) Scan parquet -Output [5]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_ticket_number#67, ss_net_paid#42] +Output [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_ticket_number), IsNotNull(ss_item_sk), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk)] ReadSchema: struct (210) Filter -Input [5]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_ticket_number#67, ss_net_paid#42] -Condition : (((isnotnull(ss_ticket_number#67) AND isnotnull(ss_item_sk#40)) AND isnotnull(ss_store_sk#66)) AND isnotnull(ss_customer_sk#41)) +Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] +Condition : (((isnotnull(ss_ticket_number#68) AND isnotnull(ss_item_sk#41)) AND isnotnull(ss_store_sk#67)) AND isnotnull(ss_customer_sk#42)) (211) Exchange -Input [5]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_ticket_number#67, ss_net_paid#42] -Arguments: hashpartitioning(ss_ticket_number#67, ss_item_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] +Arguments: hashpartitioning(ss_ticket_number#68, ss_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=32] (212) Sort -Input [5]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_ticket_number#67, ss_net_paid#42] -Arguments: [ss_ticket_number#67 ASC NULLS FIRST, ss_item_sk#40 ASC NULLS FIRST], false, 0 +Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] +Arguments: [ss_ticket_number#68 ASC NULLS FIRST, ss_item_sk#41 ASC NULLS FIRST], false, 0 (213) Scan parquet -Output [2]: [sr_item_sk#68, sr_ticket_number#69] +Output [2]: [sr_item_sk#69, sr_ticket_number#70] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(sr_ticket_number), IsNotNull(sr_item_sk)] ReadSchema: struct (214) Filter -Input [2]: [sr_item_sk#68, sr_ticket_number#69] -Condition : (isnotnull(sr_ticket_number#69) AND isnotnull(sr_item_sk#68)) +Input [2]: [sr_item_sk#69, sr_ticket_number#70] +Condition : (isnotnull(sr_ticket_number#70) AND isnotnull(sr_item_sk#69)) (215) Exchange -Input [2]: [sr_item_sk#68, sr_ticket_number#69] -Arguments: hashpartitioning(sr_ticket_number#69, sr_item_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [2]: [sr_item_sk#69, sr_ticket_number#70] +Arguments: hashpartitioning(sr_ticket_number#70, sr_item_sk#69, 100), ENSURE_REQUIREMENTS, [plan_id=33] (216) Sort -Input [2]: [sr_item_sk#68, sr_ticket_number#69] -Arguments: [sr_ticket_number#69 ASC NULLS FIRST, sr_item_sk#68 ASC NULLS FIRST], false, 0 +Input [2]: [sr_item_sk#69, sr_ticket_number#70] +Arguments: [sr_ticket_number#70 ASC NULLS FIRST, sr_item_sk#69 ASC NULLS FIRST], false, 0 (217) SortMergeJoin -Left keys [2]: [ss_ticket_number#67, ss_item_sk#40] -Right keys [2]: [sr_ticket_number#69, sr_item_sk#68] +Left keys [2]: [ss_ticket_number#68, ss_item_sk#41] +Right keys [2]: [sr_ticket_number#70, sr_item_sk#69] Join type: Inner Join condition: None (218) Project -Output [4]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_net_paid#42] -Input [7]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_ticket_number#67, ss_net_paid#42, sr_item_sk#68, sr_ticket_number#69] +Output [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] +Input [7]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43, sr_item_sk#69, sr_ticket_number#70] (219) Exchange -Input [4]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_net_paid#42] -Arguments: hashpartitioning(ss_store_sk#66, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] +Arguments: hashpartitioning(ss_store_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=34] (220) Sort -Input [4]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_net_paid#42] -Arguments: [ss_store_sk#66 ASC NULLS FIRST], false, 0 +Input [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] +Arguments: [ss_store_sk#67 ASC NULLS FIRST], false, 0 (221) Scan parquet -Output [5]: [s_store_sk#70, s_store_name#43, s_market_id#71, s_state#44, s_zip#45] +Output [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_market_id), EqualTo(s_market_id,8), IsNotNull(s_store_sk), IsNotNull(s_zip)] ReadSchema: struct (222) Filter -Input [5]: [s_store_sk#70, s_store_name#43, s_market_id#71, s_state#44, s_zip#45] -Condition : (((isnotnull(s_market_id#71) AND (s_market_id#71 = 8)) AND isnotnull(s_store_sk#70)) AND isnotnull(s_zip#45)) +Input [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] +Condition : (((isnotnull(s_market_id#72) AND (s_market_id#72 = 8)) AND isnotnull(s_store_sk#71)) AND isnotnull(s_zip#46)) (223) Project -Output [4]: [s_store_sk#70, s_store_name#43, s_state#44, s_zip#45] -Input [5]: [s_store_sk#70, s_store_name#43, s_market_id#71, s_state#44, s_zip#45] +Output [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] +Input [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] (224) Exchange -Input [4]: [s_store_sk#70, s_store_name#43, s_state#44, s_zip#45] -Arguments: hashpartitioning(s_store_sk#70, 100), ENSURE_REQUIREMENTS, [plan_id=35] +Input [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] +Arguments: hashpartitioning(s_store_sk#71, 100), ENSURE_REQUIREMENTS, [plan_id=35] (225) Sort -Input [4]: [s_store_sk#70, s_store_name#43, s_state#44, s_zip#45] -Arguments: [s_store_sk#70 ASC NULLS FIRST], false, 0 +Input [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] +Arguments: [s_store_sk#71 ASC NULLS FIRST], false, 0 (226) SortMergeJoin -Left keys [1]: [ss_store_sk#66] -Right keys [1]: [s_store_sk#70] +Left keys [1]: [ss_store_sk#67] +Right keys [1]: [s_store_sk#71] Join type: Inner Join condition: None (227) Project -Output [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] -Input [8]: [ss_item_sk#40, ss_customer_sk#41, ss_store_sk#66, ss_net_paid#42, s_store_sk#70, s_store_name#43, s_state#44, s_zip#45] +Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Input [8]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43, s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] (228) Exchange -Input [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] -Arguments: hashpartitioning(ss_item_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=36] +Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Arguments: hashpartitioning(ss_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=36] (229) Sort -Input [6]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45] -Arguments: [ss_item_sk#40 ASC NULLS FIRST], false, 0 +Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Arguments: [ss_item_sk#41 ASC NULLS FIRST], false, 0 (230) Scan parquet -Output [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Output [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (231) Filter -Input [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Condition : isnotnull(i_item_sk#46) +Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Condition : isnotnull(i_item_sk#47) (232) Exchange -Input [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: hashpartitioning(i_item_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=37] +Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: hashpartitioning(i_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=37] (233) Sort -Input [6]: [i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: [i_item_sk#46 ASC NULLS FIRST], false, 0 +Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: [i_item_sk#47 ASC NULLS FIRST], false, 0 (234) SortMergeJoin -Left keys [1]: [ss_item_sk#40] -Right keys [1]: [i_item_sk#46] +Left keys [1]: [ss_item_sk#41] +Right keys [1]: [i_item_sk#47] Join type: Inner Join condition: None (235) Project -Output [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Input [12]: [ss_item_sk#40, ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_item_sk#46, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] +Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Input [12]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] (236) Exchange -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: hashpartitioning(ss_customer_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=38] +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: hashpartitioning(ss_customer_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=38] (237) Sort -Input [10]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51] -Arguments: [ss_customer_sk#41 ASC NULLS FIRST], false, 0 +Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Arguments: [ss_customer_sk#42 ASC NULLS FIRST], false, 0 (238) Scan parquet -Output [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] +Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_birth_country)] ReadSchema: struct (239) Filter -Input [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] -Condition : (isnotnull(c_customer_sk#52) AND isnotnull(c_birth_country#55)) +Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Condition : (isnotnull(c_customer_sk#53) AND isnotnull(c_birth_country#56)) (240) Exchange -Input [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: hashpartitioning(c_customer_sk#52, 100), ENSURE_REQUIREMENTS, [plan_id=39] +Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: hashpartitioning(c_customer_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=39] (241) Sort -Input [4]: [c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: [c_customer_sk#52 ASC NULLS FIRST], false, 0 +Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: [c_customer_sk#53 ASC NULLS FIRST], false, 0 (242) SortMergeJoin -Left keys [1]: [ss_customer_sk#41] -Right keys [1]: [c_customer_sk#52] +Left keys [1]: [ss_customer_sk#42] +Right keys [1]: [c_customer_sk#53] Join type: Inner Join condition: None (243) Project -Output [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Input [14]: [ss_customer_sk#41, ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_customer_sk#52, c_first_name#53, c_last_name#54, c_birth_country#55] +Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Input [14]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] (244) Exchange -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: hashpartitioning(c_birth_country#55, s_zip#45, 100), ENSURE_REQUIREMENTS, [plan_id=40] +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: hashpartitioning(c_birth_country#56, s_zip#46, 100), ENSURE_REQUIREMENTS, [plan_id=40] (245) Sort -Input [12]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55] -Arguments: [c_birth_country#55 ASC NULLS FIRST, s_zip#45 ASC NULLS FIRST], false, 0 +Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Arguments: [c_birth_country#56 ASC NULLS FIRST, s_zip#46 ASC NULLS FIRST], false, 0 (246) Scan parquet -Output [3]: [ca_state#56, ca_zip#57, ca_country#58] +Output [3]: [ca_state#57, ca_zip#58, ca_country#59] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_country), IsNotNull(ca_zip)] ReadSchema: struct (247) Filter -Input [3]: [ca_state#56, ca_zip#57, ca_country#58] -Condition : (isnotnull(ca_country#58) AND isnotnull(ca_zip#57)) +Input [3]: [ca_state#57, ca_zip#58, ca_country#59] +Condition : (isnotnull(ca_country#59) AND isnotnull(ca_zip#58)) (248) Exchange -Input [3]: [ca_state#56, ca_zip#57, ca_country#58] -Arguments: hashpartitioning(upper(ca_country#58), ca_zip#57, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [3]: [ca_state#57, ca_zip#58, ca_country#59] +Arguments: hashpartitioning(upper(ca_country#59), ca_zip#58, 100), ENSURE_REQUIREMENTS, [plan_id=41] (249) Sort -Input [3]: [ca_state#56, ca_zip#57, ca_country#58] -Arguments: [upper(ca_country#58) ASC NULLS FIRST, ca_zip#57 ASC NULLS FIRST], false, 0 +Input [3]: [ca_state#57, ca_zip#58, ca_country#59] +Arguments: [upper(ca_country#59) ASC NULLS FIRST, ca_zip#58 ASC NULLS FIRST], false, 0 (250) SortMergeJoin -Left keys [2]: [c_birth_country#55, s_zip#45] -Right keys [2]: [upper(ca_country#58), ca_zip#57] +Left keys [2]: [c_birth_country#56, s_zip#46] +Right keys [2]: [upper(ca_country#59), ca_zip#58] Join type: Inner Join condition: None (251) Project -Output [11]: [ss_net_paid#42, s_store_name#43, s_state#44, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, ca_state#56] -Input [15]: [ss_net_paid#42, s_store_name#43, s_state#44, s_zip#45, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, c_birth_country#55, ca_state#56, ca_zip#57, ca_country#58] +Output [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] +Input [15]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56, ca_state#57, ca_zip#58, ca_country#59] (252) HashAggregate -Input [11]: [ss_net_paid#42, s_store_name#43, s_state#44, i_current_price#47, i_size#48, i_color#49, i_units#50, i_manager_id#51, c_first_name#53, c_last_name#54, ca_state#56] -Keys [10]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48] -Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#42))] -Aggregate Attributes [1]: [sum#60] -Results [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, sum#72] +Input [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] +Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] +Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#43))] +Aggregate Attributes [1]: [sum#61] +Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] (253) Exchange -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, sum#72] -Arguments: hashpartitioning(c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, 100), ENSURE_REQUIREMENTS, [plan_id=42] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] +Arguments: hashpartitioning(c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, 100), ENSURE_REQUIREMENTS, [plan_id=42] (254) HashAggregate -Input [11]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48, sum#72] -Keys [10]: [c_last_name#54, c_first_name#53, s_store_name#43, ca_state#56, s_state#44, i_color#49, i_current_price#47, i_manager_id#51, i_units#50, i_size#48] -Functions [1]: [sum(UnscaledValue(ss_net_paid#42))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#42))#29] -Results [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#42))#29,17,2) AS netpaid#61] +Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] +Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] +Functions [1]: [sum(UnscaledValue(ss_net_paid#43))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#43))#29] +Results [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#43))#29,17,2) AS netpaid#62] (255) HashAggregate -Input [1]: [netpaid#61] +Input [1]: [netpaid#62] Keys: [] -Functions [1]: [partial_avg(netpaid#61)] -Aggregate Attributes [2]: [sum#62, count#63] -Results [2]: [sum#73, count#74] +Functions [1]: [partial_avg(netpaid#62)] +Aggregate Attributes [2]: [sum#63, count#64] +Results [2]: [sum#74, count#75] (256) Exchange -Input [2]: [sum#73, count#74] +Input [2]: [sum#74, count#75] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=43] (257) HashAggregate -Input [2]: [sum#73, count#74] +Input [2]: [sum#74, count#75] Keys: [] -Functions [1]: [avg(netpaid#61)] -Aggregate Attributes [1]: [avg(netpaid#61)#64] -Results [1]: [(0.05 * avg(netpaid#61)#64) AS (0.05 * avg(netpaid))#65] +Functions [1]: [avg(netpaid#62)] +Aggregate Attributes [1]: [avg(netpaid#62)#65] +Results [1]: [(0.05 * avg(netpaid#62)#65) AS (0.05 * avg(netpaid))#66] (258) AdaptiveSparkPlan -Output [1]: [(0.05 * avg(netpaid))#65] +Output [1]: [(0.05 * avg(netpaid))#66] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24b.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24b.txt index e5253a6c6..622821968 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24b.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q24b.txt @@ -494,25 +494,25 @@ Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_sta Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [partial_sum(_c10#26)] Aggregate Attributes [1]: [sum#27] -Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] (82) NativeShuffleExchange -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, 100), ENSURE_REQUIREMENTS, [plan_id=11] (83) ShuffleQueryStage -Output [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Output [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: X (84) AQEShuffleRead -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Arguments: coalesced (85) InputAdapter -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] (86) NativeHashAggregate -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28#28] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, #28] Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#5))#29] @@ -527,37 +527,37 @@ Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, netpaid#30] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [partial_sum(netpaid#30)] Aggregate Attributes [2]: [sum#31, isEmpty#32] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] (89) NativeShuffleExchange -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, 100), ENSURE_REQUIREMENTS, [plan_id=12] (90) ShuffleQueryStage -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: X (91) AQEShuffleRead -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Arguments: coalesced (92) InputAdapter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] (93) NativeHashAggregate -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #28#28] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, #33] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [sum(netpaid#30)] -Aggregate Attributes [1]: [sum(netpaid#30)#33] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33] +Aggregate Attributes [1]: [sum(netpaid#30)#34] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34] (94) NativeProject -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33 AS paid#34] -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34 AS paid#35] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34] (95) NativeFilter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] -Condition : (isnotnull(paid#34) AND (cast(paid#34 as decimal(33,8)) > cast(Subquery subquery#35, [id=#36] as decimal(33,8)))) +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] +Condition : (isnotnull(paid#35) AND (cast(paid#35 as decimal(33,8)) > cast(Subquery subquery#36, [id=#37] as decimal(33,8)))) (96) Scan parquet Output [5]: [ss_item_sk#1, ss_customer_sk#2, ss_store_sk#3, ss_ticket_number#4, ss_net_paid#5] @@ -764,14 +764,14 @@ Input [11]: [ss_net_paid#5, s_store_name#9, s_state#11, i_current_price#14, i_si Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum#27] -Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Results [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] (140) Exchange -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, 100), ENSURE_REQUIREMENTS, [plan_id=23] (141) HashAggregate -Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#37] +Input [11]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15, sum#38] Keys [10]: [c_last_name#21, c_first_name#20, s_store_name#9, ca_state#23, s_state#11, i_color#16, i_current_price#14, i_manager_id#18, i_units#17, i_size#15] Functions [1]: [sum(UnscaledValue(ss_net_paid#5))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#5))#29] @@ -782,38 +782,38 @@ Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, netpaid#30] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [partial_sum(netpaid#30)] Aggregate Attributes [2]: [sum#31, isEmpty#32] -Results [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Results [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] (143) Exchange -Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] Arguments: hashpartitioning(c_last_name#21, c_first_name#20, s_store_name#9, 100), ENSURE_REQUIREMENTS, [plan_id=24] (144) HashAggregate -Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#38, isEmpty#39] +Input [5]: [c_last_name#21, c_first_name#20, s_store_name#9, sum#39, isEmpty#40] Keys [3]: [c_last_name#21, c_first_name#20, s_store_name#9] Functions [1]: [sum(netpaid#30)] -Aggregate Attributes [1]: [sum(netpaid#30)#33] -Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#33 AS paid#34] +Aggregate Attributes [1]: [sum(netpaid#30)#34] +Results [4]: [c_last_name#21, c_first_name#20, s_store_name#9, sum(netpaid#30)#34 AS paid#35] (145) Filter -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] -Condition : (isnotnull(paid#34) AND (cast(paid#34 as decimal(33,8)) > cast(Subquery subquery#35, [id=#40] as decimal(33,8)))) +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] +Condition : (isnotnull(paid#35) AND (cast(paid#35 as decimal(33,8)) > cast(Subquery subquery#36, [id=#41] as decimal(33,8)))) (146) Exchange -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: rangepartitioning(c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=25] (147) Sort -Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Input [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: [c_last_name#21 ASC NULLS FIRST, c_first_name#20 ASC NULLS FIRST, s_store_name#9 ASC NULLS FIRST], true, 0 (148) AdaptiveSparkPlan -Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#34] +Output [4]: [c_last_name#21, c_first_name#20, s_store_name#9, paid#35] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 95 Hosting Expression = Subquery subquery#35, [id=#36] +Subquery:1 Hosting operator id = 95 Hosting Expression = Subquery subquery#36, [id=#37] AdaptiveSparkPlan (253) +- == Final Plan == NativeProject (203) @@ -924,474 +924,474 @@ AdaptiveSparkPlan (253) (149) ReusedExchange [Reuses operator id: 35] -Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Output [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] (150) ShuffleQueryStage -Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Output [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] Arguments: X (151) AQEShuffleRead -Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] +Input [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] Arguments: coalesced (152) InputAdapter -Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] -Arguments: [#41, #42, #43, #44, #45, #46] +Input [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] +Arguments: [#42, #43, #44, #45, #46, #47] (153) InputAdapter -Input [6]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46] +Input [6]: [#42#42, #43#43, #44#44, #45#45, #46#46, #47#47] (154) NativeSort -Input [6]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46] -Arguments: [ss_item_sk#41 ASC NULLS FIRST], false +Input [6]: [#42#42, #43#43, #44#44, #45#45, #46#46, #47#47] +Arguments: [ss_item_sk#42 ASC NULLS FIRST], false (225) Scan parquet -Output [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Output [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (156) InputAdapter -Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: [#47, #48, #49, #50, #51, #52] +Input [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: [#48, #49, #50, #51, #52, #53] (157) NativeFilter -Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] -Condition : isnotnull(i_item_sk#47) +Input [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] +Condition : isnotnull(i_item_sk#48) (158) NativeShuffleExchange -Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] -Arguments: hashpartitioning(i_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] +Arguments: hashpartitioning(i_item_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=26] (159) ShuffleQueryStage -Output [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Output [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] Arguments: X (160) AQEShuffleRead -Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Input [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] Arguments: coalesced (161) InputAdapter -Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Input [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] (162) NativeSort -Input [6]: [#47#47, #48#48, #49#49, #50#50, #51#51, #52#52] -Arguments: [i_item_sk#47 ASC NULLS FIRST], false +Input [6]: [#48#48, #49#49, #50#50, #51#51, #52#52, #53#53] +Arguments: [i_item_sk#48 ASC NULLS FIRST], false (163) NativeSortMergeJoin -Left keys [1]: [ss_item_sk#41] -Right keys [1]: [i_item_sk#47] +Left keys [1]: [ss_item_sk#42] +Right keys [1]: [i_item_sk#48] Join type: Inner Join condition: None (164) NativeProject -Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Input [12]: [#41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49, #50#50, #51#51, #52#52] +Output [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Input [12]: [#42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49, #50#50, #51#51, #52#52, #53#53] (165) NativeShuffleExchange -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: hashpartitioning(ss_customer_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: hashpartitioning(ss_customer_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=27] (166) ShuffleQueryStage -Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Output [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] Arguments: X (167) AQEShuffleRead -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] Arguments: coalesced (168) InputAdapter -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] (169) NativeSort -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: [ss_customer_sk#42 ASC NULLS FIRST], false +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: [ss_customer_sk#43 ASC NULLS FIRST], false (170) ReusedExchange [Reuses operator id: 58] -Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Output [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] (171) ShuffleQueryStage -Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Output [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] Arguments: X (172) AQEShuffleRead -Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Input [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] Arguments: coalesced (173) InputAdapter -Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: [#53, #54, #55, #56] +Input [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: [#54, #55, #56, #57] (174) InputAdapter -Input [4]: [#53#53, #54#54, #55#55, #56#56] +Input [4]: [#54#54, #55#55, #56#56, #57#57] (175) NativeSort -Input [4]: [#53#53, #54#54, #55#55, #56#56] -Arguments: [c_customer_sk#53 ASC NULLS FIRST], false +Input [4]: [#54#54, #55#55, #56#56, #57#57] +Arguments: [c_customer_sk#54 ASC NULLS FIRST], false (176) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#42] -Right keys [1]: [c_customer_sk#53] +Left keys [1]: [ss_customer_sk#43] +Right keys [1]: [c_customer_sk#54] Join type: Inner Join condition: None (177) NativeProject -Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Input [14]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, #53#53, #54#54, #55#55, #56#56] +Output [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Input [14]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, #54#54, #55#55, #56#56, #57#57] (178) NativeShuffleExchange -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: hashpartitioning(c_birth_country#56, s_zip#46, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: hashpartitioning(c_birth_country#57, s_zip#47, 100), ENSURE_REQUIREMENTS, [plan_id=28] (179) ShuffleQueryStage -Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Output [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] Arguments: X (180) AQEShuffleRead -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] Arguments: coalesced (181) InputAdapter -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] (182) NativeSort -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: [c_birth_country#56 ASC NULLS FIRST, s_zip#46 ASC NULLS FIRST], false +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: [c_birth_country#57 ASC NULLS FIRST, s_zip#47 ASC NULLS FIRST], false (183) ReusedExchange [Reuses operator id: 73] -Output [3]: [ca_state#57, ca_zip#58, ca_country#59] +Output [3]: [ca_state#58, ca_zip#59, ca_country#60] (184) ShuffleQueryStage -Output [3]: [ca_state#57, ca_zip#58, ca_country#59] +Output [3]: [ca_state#58, ca_zip#59, ca_country#60] Arguments: X (185) AQEShuffleRead -Input [3]: [ca_state#57, ca_zip#58, ca_country#59] +Input [3]: [ca_state#58, ca_zip#59, ca_country#60] Arguments: coalesced (186) InputAdapter -Input [3]: [ca_state#57, ca_zip#58, ca_country#59] -Arguments: [#57, #58, #59] +Input [3]: [ca_state#58, ca_zip#59, ca_country#60] +Arguments: [#58, #59, #60] (187) InputAdapter -Input [3]: [#57#57, #58#58, #59#59] +Input [3]: [#58#58, #59#59, #60#60] (188) NativeSort -Input [3]: [#57#57, #58#58, #59#59] -Arguments: [upper(ca_country#59) ASC NULLS FIRST, ca_zip#58 ASC NULLS FIRST], false +Input [3]: [#58#58, #59#59, #60#60] +Arguments: [upper(ca_country#60) ASC NULLS FIRST, ca_zip#59 ASC NULLS FIRST], false (189) NativeSortMergeJoin -Left keys [2]: [c_birth_country#56, s_zip#46] -Right keys [2]: [upper(ca_country#59), ca_zip#58] +Left keys [2]: [c_birth_country#57, s_zip#47] +Right keys [2]: [upper(ca_country#60), ca_zip#59] Join type: Inner Join condition: None (190) NativeProject -Output [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] -Input [15]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56, #57#57, #58#58, #59#59] +Output [11]: [ss_net_paid#44, s_store_name#45, s_state#46, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, ca_state#58] +Input [15]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57, #58#58, #59#59, #60#60] (191) NativeProject -Output [11]: [c_last_name#55 AS c_last_name#55, c_first_name#54 AS c_first_name#54, s_store_name#44 AS s_store_name#44, ca_state#57 AS ca_state#57, s_state#45 AS s_state#45, i_color#50 AS i_color#50, i_current_price#48 AS i_current_price#48, i_manager_id#52 AS i_manager_id#52, i_units#51 AS i_units#51, i_size#49 AS i_size#49, UnscaledValue(ss_net_paid#43) AS _c10#60] -Input [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] +Output [11]: [c_last_name#56 AS c_last_name#56, c_first_name#55 AS c_first_name#55, s_store_name#45 AS s_store_name#45, ca_state#58 AS ca_state#58, s_state#46 AS s_state#46, i_color#51 AS i_color#51, i_current_price#49 AS i_current_price#49, i_manager_id#53 AS i_manager_id#53, i_units#52 AS i_units#52, i_size#50 AS i_size#50, UnscaledValue(ss_net_paid#44) AS _c10#61] +Input [11]: [ss_net_paid#44, s_store_name#45, s_state#46, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, ca_state#58] (192) NativeHashAggregate -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, _c10#60] -Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] -Functions [1]: [partial_sum(_c10#60)] -Aggregate Attributes [1]: [sum#61] -Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, _c10#61] +Keys [10]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50] +Functions [1]: [partial_sum(_c10#61)] +Aggregate Attributes [1]: [sum#62] +Results [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] (193) NativeShuffleExchange -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] -Arguments: hashpartitioning(c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] +Arguments: hashpartitioning(c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, 100), ENSURE_REQUIREMENTS, [plan_id=29] (194) ShuffleQueryStage -Output [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] +Output [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] Arguments: X (195) AQEShuffleRead -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] Arguments: coalesced (196) InputAdapter -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] (197) NativeHashAggregate -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, #28#28] -Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] -Functions [1]: [sum(UnscaledValue(ss_net_paid#43))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#43))#29] -Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum(UnscaledValue(ss_net_paid#43))#29] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, #28] +Keys [10]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50] +Functions [1]: [sum(UnscaledValue(ss_net_paid#44))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#44))#29] +Results [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, sum(UnscaledValue(ss_net_paid#44))#29] (198) NativeProject -Output [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#43))#29,17,2) AS netpaid#62] -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum(UnscaledValue(ss_net_paid#43))#29] +Output [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#44))#29,17,2) AS netpaid#63] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, sum(UnscaledValue(ss_net_paid#44))#29] (199) NativeHashAggregate -Input [1]: [netpaid#62] +Input [1]: [netpaid#63] Keys: [] -Functions [1]: [partial_avg(netpaid#62)] -Aggregate Attributes [2]: [sum#63, count#64] -Results [1]: [#28#28] +Functions [1]: [partial_avg(netpaid#63)] +Aggregate Attributes [2]: [sum#64, count#65] +Results [2]: [#33, #28] (200) NativeShuffleExchange -Input [1]: [#28#28] +Input [2]: [#33, #28] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=30] (201) ShuffleQueryStage -Output [1]: [#28#28] +Output [2]: [#33, #28] Arguments: X (202) NativeHashAggregate -Input [1]: [#28#28] +Input [2]: [#33, #28] Keys: [] -Functions [1]: [avg(netpaid#62)] -Aggregate Attributes [1]: [avg(netpaid#62)#65] -Results [1]: [avg(netpaid#62)#65] +Functions [1]: [avg(netpaid#63)] +Aggregate Attributes [1]: [avg(netpaid#63)#66] +Results [1]: [avg(netpaid#63)#66] (203) NativeProject -Output [1]: [(0.05 * avg(netpaid#62)#65) AS (0.05 * avg(netpaid))#66] -Input [1]: [avg(netpaid#62)#65] +Output [1]: [(0.05 * avg(netpaid#63)#66) AS (0.05 * avg(netpaid))#67] +Input [1]: [avg(netpaid#63)#66] (204) Scan parquet -Output [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] +Output [5]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_ticket_number#69, ss_net_paid#44] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_ticket_number), IsNotNull(ss_item_sk), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk)] ReadSchema: struct (205) Filter -Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] -Condition : (((isnotnull(ss_ticket_number#68) AND isnotnull(ss_item_sk#41)) AND isnotnull(ss_store_sk#67)) AND isnotnull(ss_customer_sk#42)) +Input [5]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_ticket_number#69, ss_net_paid#44] +Condition : (((isnotnull(ss_ticket_number#69) AND isnotnull(ss_item_sk#42)) AND isnotnull(ss_store_sk#68)) AND isnotnull(ss_customer_sk#43)) (206) Exchange -Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] -Arguments: hashpartitioning(ss_ticket_number#68, ss_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [5]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_ticket_number#69, ss_net_paid#44] +Arguments: hashpartitioning(ss_ticket_number#69, ss_item_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=31] (207) Sort -Input [5]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43] -Arguments: [ss_ticket_number#68 ASC NULLS FIRST, ss_item_sk#41 ASC NULLS FIRST], false, 0 +Input [5]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_ticket_number#69, ss_net_paid#44] +Arguments: [ss_ticket_number#69 ASC NULLS FIRST, ss_item_sk#42 ASC NULLS FIRST], false, 0 (208) Scan parquet -Output [2]: [sr_item_sk#69, sr_ticket_number#70] +Output [2]: [sr_item_sk#70, sr_ticket_number#71] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(sr_ticket_number), IsNotNull(sr_item_sk)] ReadSchema: struct (209) Filter -Input [2]: [sr_item_sk#69, sr_ticket_number#70] -Condition : (isnotnull(sr_ticket_number#70) AND isnotnull(sr_item_sk#69)) +Input [2]: [sr_item_sk#70, sr_ticket_number#71] +Condition : (isnotnull(sr_ticket_number#71) AND isnotnull(sr_item_sk#70)) (210) Exchange -Input [2]: [sr_item_sk#69, sr_ticket_number#70] -Arguments: hashpartitioning(sr_ticket_number#70, sr_item_sk#69, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [2]: [sr_item_sk#70, sr_ticket_number#71] +Arguments: hashpartitioning(sr_ticket_number#71, sr_item_sk#70, 100), ENSURE_REQUIREMENTS, [plan_id=32] (211) Sort -Input [2]: [sr_item_sk#69, sr_ticket_number#70] -Arguments: [sr_ticket_number#70 ASC NULLS FIRST, sr_item_sk#69 ASC NULLS FIRST], false, 0 +Input [2]: [sr_item_sk#70, sr_ticket_number#71] +Arguments: [sr_ticket_number#71 ASC NULLS FIRST, sr_item_sk#70 ASC NULLS FIRST], false, 0 (212) SortMergeJoin -Left keys [2]: [ss_ticket_number#68, ss_item_sk#41] -Right keys [2]: [sr_ticket_number#70, sr_item_sk#69] +Left keys [2]: [ss_ticket_number#69, ss_item_sk#42] +Right keys [2]: [sr_ticket_number#71, sr_item_sk#70] Join type: Inner Join condition: None (213) Project -Output [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] -Input [7]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_ticket_number#68, ss_net_paid#43, sr_item_sk#69, sr_ticket_number#70] +Output [4]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_net_paid#44] +Input [7]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_ticket_number#69, ss_net_paid#44, sr_item_sk#70, sr_ticket_number#71] (214) Exchange -Input [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] -Arguments: hashpartitioning(ss_store_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [4]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_net_paid#44] +Arguments: hashpartitioning(ss_store_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=33] (215) Sort -Input [4]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43] -Arguments: [ss_store_sk#67 ASC NULLS FIRST], false, 0 +Input [4]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_net_paid#44] +Arguments: [ss_store_sk#68 ASC NULLS FIRST], false, 0 (216) Scan parquet -Output [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] +Output [5]: [s_store_sk#72, s_store_name#45, s_market_id#73, s_state#46, s_zip#47] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_market_id), EqualTo(s_market_id,8), IsNotNull(s_store_sk), IsNotNull(s_zip)] ReadSchema: struct (217) Filter -Input [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] -Condition : (((isnotnull(s_market_id#72) AND (s_market_id#72 = 8)) AND isnotnull(s_store_sk#71)) AND isnotnull(s_zip#46)) +Input [5]: [s_store_sk#72, s_store_name#45, s_market_id#73, s_state#46, s_zip#47] +Condition : (((isnotnull(s_market_id#73) AND (s_market_id#73 = 8)) AND isnotnull(s_store_sk#72)) AND isnotnull(s_zip#47)) (218) Project -Output [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] -Input [5]: [s_store_sk#71, s_store_name#44, s_market_id#72, s_state#45, s_zip#46] +Output [4]: [s_store_sk#72, s_store_name#45, s_state#46, s_zip#47] +Input [5]: [s_store_sk#72, s_store_name#45, s_market_id#73, s_state#46, s_zip#47] (219) Exchange -Input [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] -Arguments: hashpartitioning(s_store_sk#71, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [4]: [s_store_sk#72, s_store_name#45, s_state#46, s_zip#47] +Arguments: hashpartitioning(s_store_sk#72, 100), ENSURE_REQUIREMENTS, [plan_id=34] (220) Sort -Input [4]: [s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] -Arguments: [s_store_sk#71 ASC NULLS FIRST], false, 0 +Input [4]: [s_store_sk#72, s_store_name#45, s_state#46, s_zip#47] +Arguments: [s_store_sk#72 ASC NULLS FIRST], false, 0 (221) SortMergeJoin -Left keys [1]: [ss_store_sk#67] -Right keys [1]: [s_store_sk#71] +Left keys [1]: [ss_store_sk#68] +Right keys [1]: [s_store_sk#72] Join type: Inner Join condition: None (222) Project -Output [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] -Input [8]: [ss_item_sk#41, ss_customer_sk#42, ss_store_sk#67, ss_net_paid#43, s_store_sk#71, s_store_name#44, s_state#45, s_zip#46] +Output [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] +Input [8]: [ss_item_sk#42, ss_customer_sk#43, ss_store_sk#68, ss_net_paid#44, s_store_sk#72, s_store_name#45, s_state#46, s_zip#47] (223) Exchange -Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] -Arguments: hashpartitioning(ss_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=35] +Input [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] +Arguments: hashpartitioning(ss_item_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=35] (224) Sort -Input [6]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46] -Arguments: [ss_item_sk#41 ASC NULLS FIRST], false, 0 +Input [6]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47] +Arguments: [ss_item_sk#42 ASC NULLS FIRST], false, 0 (225) Scan parquet -Output [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Output [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (226) Filter -Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Condition : isnotnull(i_item_sk#47) +Input [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Condition : isnotnull(i_item_sk#48) (227) Exchange -Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: hashpartitioning(i_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=36] +Input [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: hashpartitioning(i_item_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=36] (228) Sort -Input [6]: [i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: [i_item_sk#47 ASC NULLS FIRST], false, 0 +Input [6]: [i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: [i_item_sk#48 ASC NULLS FIRST], false, 0 (229) SortMergeJoin -Left keys [1]: [ss_item_sk#41] -Right keys [1]: [i_item_sk#47] +Left keys [1]: [ss_item_sk#42] +Right keys [1]: [i_item_sk#48] Join type: Inner Join condition: None (230) Project -Output [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Input [12]: [ss_item_sk#41, ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_item_sk#47, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] +Output [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Input [12]: [ss_item_sk#42, ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_item_sk#48, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] (231) Exchange -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: hashpartitioning(ss_customer_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=37] +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: hashpartitioning(ss_customer_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=37] (232) Sort -Input [10]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52] -Arguments: [ss_customer_sk#42 ASC NULLS FIRST], false, 0 +Input [10]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53] +Arguments: [ss_customer_sk#43 ASC NULLS FIRST], false, 0 (233) Scan parquet -Output [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Output [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_birth_country)] ReadSchema: struct (234) Filter -Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] -Condition : (isnotnull(c_customer_sk#53) AND isnotnull(c_birth_country#56)) +Input [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] +Condition : (isnotnull(c_customer_sk#54) AND isnotnull(c_birth_country#57)) (235) Exchange -Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: hashpartitioning(c_customer_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=38] +Input [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: hashpartitioning(c_customer_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=38] (236) Sort -Input [4]: [c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: [c_customer_sk#53 ASC NULLS FIRST], false, 0 +Input [4]: [c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: [c_customer_sk#54 ASC NULLS FIRST], false, 0 (237) SortMergeJoin -Left keys [1]: [ss_customer_sk#42] -Right keys [1]: [c_customer_sk#53] +Left keys [1]: [ss_customer_sk#43] +Right keys [1]: [c_customer_sk#54] Join type: Inner Join condition: None (238) Project -Output [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Input [14]: [ss_customer_sk#42, ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_customer_sk#53, c_first_name#54, c_last_name#55, c_birth_country#56] +Output [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Input [14]: [ss_customer_sk#43, ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_customer_sk#54, c_first_name#55, c_last_name#56, c_birth_country#57] (239) Exchange -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: hashpartitioning(c_birth_country#56, s_zip#46, 100), ENSURE_REQUIREMENTS, [plan_id=39] +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: hashpartitioning(c_birth_country#57, s_zip#47, 100), ENSURE_REQUIREMENTS, [plan_id=39] (240) Sort -Input [12]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56] -Arguments: [c_birth_country#56 ASC NULLS FIRST, s_zip#46 ASC NULLS FIRST], false, 0 +Input [12]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57] +Arguments: [c_birth_country#57 ASC NULLS FIRST, s_zip#47 ASC NULLS FIRST], false, 0 (241) Scan parquet -Output [3]: [ca_state#57, ca_zip#58, ca_country#59] +Output [3]: [ca_state#58, ca_zip#59, ca_country#60] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_country), IsNotNull(ca_zip)] ReadSchema: struct (242) Filter -Input [3]: [ca_state#57, ca_zip#58, ca_country#59] -Condition : (isnotnull(ca_country#59) AND isnotnull(ca_zip#58)) +Input [3]: [ca_state#58, ca_zip#59, ca_country#60] +Condition : (isnotnull(ca_country#60) AND isnotnull(ca_zip#59)) (243) Exchange -Input [3]: [ca_state#57, ca_zip#58, ca_country#59] -Arguments: hashpartitioning(upper(ca_country#59), ca_zip#58, 100), ENSURE_REQUIREMENTS, [plan_id=40] +Input [3]: [ca_state#58, ca_zip#59, ca_country#60] +Arguments: hashpartitioning(upper(ca_country#60), ca_zip#59, 100), ENSURE_REQUIREMENTS, [plan_id=40] (244) Sort -Input [3]: [ca_state#57, ca_zip#58, ca_country#59] -Arguments: [upper(ca_country#59) ASC NULLS FIRST, ca_zip#58 ASC NULLS FIRST], false, 0 +Input [3]: [ca_state#58, ca_zip#59, ca_country#60] +Arguments: [upper(ca_country#60) ASC NULLS FIRST, ca_zip#59 ASC NULLS FIRST], false, 0 (245) SortMergeJoin -Left keys [2]: [c_birth_country#56, s_zip#46] -Right keys [2]: [upper(ca_country#59), ca_zip#58] +Left keys [2]: [c_birth_country#57, s_zip#47] +Right keys [2]: [upper(ca_country#60), ca_zip#59] Join type: Inner Join condition: None (246) Project -Output [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] -Input [15]: [ss_net_paid#43, s_store_name#44, s_state#45, s_zip#46, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, c_birth_country#56, ca_state#57, ca_zip#58, ca_country#59] +Output [11]: [ss_net_paid#44, s_store_name#45, s_state#46, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, ca_state#58] +Input [15]: [ss_net_paid#44, s_store_name#45, s_state#46, s_zip#47, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, c_birth_country#57, ca_state#58, ca_zip#59, ca_country#60] (247) HashAggregate -Input [11]: [ss_net_paid#43, s_store_name#44, s_state#45, i_current_price#48, i_size#49, i_color#50, i_units#51, i_manager_id#52, c_first_name#54, c_last_name#55, ca_state#57] -Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] -Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#43))] -Aggregate Attributes [1]: [sum#61] -Results [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] +Input [11]: [ss_net_paid#44, s_store_name#45, s_state#46, i_current_price#49, i_size#50, i_color#51, i_units#52, i_manager_id#53, c_first_name#55, c_last_name#56, ca_state#58] +Keys [10]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50] +Functions [1]: [partial_sum(UnscaledValue(ss_net_paid#44))] +Aggregate Attributes [1]: [sum#62] +Results [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, sum#74] (248) Exchange -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] -Arguments: hashpartitioning(c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, sum#74] +Arguments: hashpartitioning(c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, 100), ENSURE_REQUIREMENTS, [plan_id=41] (249) HashAggregate -Input [11]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49, sum#73] -Keys [10]: [c_last_name#55, c_first_name#54, s_store_name#44, ca_state#57, s_state#45, i_color#50, i_current_price#48, i_manager_id#52, i_units#51, i_size#49] -Functions [1]: [sum(UnscaledValue(ss_net_paid#43))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#43))#29] -Results [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#43))#29,17,2) AS netpaid#62] +Input [11]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50, sum#74] +Keys [10]: [c_last_name#56, c_first_name#55, s_store_name#45, ca_state#58, s_state#46, i_color#51, i_current_price#49, i_manager_id#53, i_units#52, i_size#50] +Functions [1]: [sum(UnscaledValue(ss_net_paid#44))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#44))#29] +Results [1]: [MakeDecimal(sum(UnscaledValue(ss_net_paid#44))#29,17,2) AS netpaid#63] (250) HashAggregate -Input [1]: [netpaid#62] +Input [1]: [netpaid#63] Keys: [] -Functions [1]: [partial_avg(netpaid#62)] -Aggregate Attributes [2]: [sum#63, count#64] -Results [2]: [sum#74, count#75] +Functions [1]: [partial_avg(netpaid#63)] +Aggregate Attributes [2]: [sum#64, count#65] +Results [2]: [sum#75, count#76] (251) Exchange -Input [2]: [sum#74, count#75] +Input [2]: [sum#75, count#76] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=42] (252) HashAggregate -Input [2]: [sum#74, count#75] +Input [2]: [sum#75, count#76] Keys: [] -Functions [1]: [avg(netpaid#62)] -Aggregate Attributes [1]: [avg(netpaid#62)#65] -Results [1]: [(0.05 * avg(netpaid#62)#65) AS (0.05 * avg(netpaid))#66] +Functions [1]: [avg(netpaid#63)] +Aggregate Attributes [1]: [avg(netpaid#63)#66] +Results [1]: [(0.05 * avg(netpaid#63)#66) AS (0.05 * avg(netpaid))#67] (253) AdaptiveSparkPlan -Output [1]: [(0.05 * avg(netpaid))#66] +Output [1]: [(0.05 * avg(netpaid))#67] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q25.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q25.txt index 196c8646b..2d35cbf5a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q25.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q25.txt @@ -646,25 +646,25 @@ Input [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, _c4#29 Keys [4]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25] Functions [3]: [partial_sum(_c4#29), partial_sum(_c5#30), partial_sum(_c6#31)] Aggregate Attributes [3]: [sum#32, sum#33, sum#34] -Results [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Results [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] (111) NativeShuffleExchange -Input [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Input [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] Arguments: hashpartitioning(i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, 100), ENSURE_REQUIREMENTS, [plan_id=14] (112) ShuffleQueryStage -Output [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Output [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] Arguments: X (113) AQEShuffleRead -Input [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Input [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] Arguments: coalesced (114) InputAdapter -Input [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Input [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] (115) NativeHashAggregate -Input [5]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35#35] +Input [7]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25, #35, #35, #35] Keys [4]: [i_item_id#27, i_item_desc#28, s_store_id#24, s_store_name#25] Functions [3]: [sum(UnscaledValue(ss_net_profit#6)), sum(UnscaledValue(sr_net_loss#11)), sum(UnscaledValue(cs_net_profit#15))] Aggregate Attributes [3]: [sum(UnscaledValue(ss_net_profit#6))#36, sum(UnscaledValue(sr_net_loss#11))#37, sum(UnscaledValue(cs_net_profit#15))#38] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q26.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q26.txt index 408954e3b..49eb29bd9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q26.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q26.txt @@ -408,36 +408,36 @@ Input [5]: [i_item_id#16, _c1#20, _c2#21, _c3#22, _c4#23] Keys [1]: [i_item_id#16] Functions [4]: [partial_avg(_c1#20), partial_avg(_c2#21), partial_avg(_c3#22), partial_avg(_c4#23)] Aggregate Attributes [8]: [sum#24, count#25, sum#26, count#27, sum#28, count#29, sum#30, count#31] -Results [2]: [i_item_id#16, #32#32] +Results [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] (69) NativeShuffleExchange -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: hashpartitioning(i_item_id#16, 100), ENSURE_REQUIREMENTS, [plan_id=9] (70) ShuffleQueryStage -Output [2]: [i_item_id#16, #32#32] +Output [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: X (71) AQEShuffleRead -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: coalesced (72) InputAdapter -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] (73) NativeHashAggregate -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Keys [1]: [i_item_id#16] Functions [4]: [avg(cs_quantity#5), avg(UnscaledValue(cs_list_price#6)), avg(UnscaledValue(cs_coupon_amt#8)), avg(UnscaledValue(cs_sales_price#7))] -Aggregate Attributes [4]: [avg(cs_quantity#5)#33, avg(UnscaledValue(cs_list_price#6))#34, avg(UnscaledValue(cs_coupon_amt#8))#35, avg(UnscaledValue(cs_sales_price#7))#36] -Results [5]: [i_item_id#16, avg(cs_quantity#5)#33, avg(UnscaledValue(cs_list_price#6))#34, avg(UnscaledValue(cs_coupon_amt#8))#35, avg(UnscaledValue(cs_sales_price#7))#36] +Aggregate Attributes [4]: [avg(cs_quantity#5)#34, avg(UnscaledValue(cs_list_price#6))#35, avg(UnscaledValue(cs_coupon_amt#8))#36, avg(UnscaledValue(cs_sales_price#7))#37] +Results [5]: [i_item_id#16, avg(cs_quantity#5)#34, avg(UnscaledValue(cs_list_price#6))#35, avg(UnscaledValue(cs_coupon_amt#8))#36, avg(UnscaledValue(cs_sales_price#7))#37] (74) NativeProject -Output [5]: [i_item_id#16, avg(cs_quantity#5)#33 AS agg1#37, cast((avg(UnscaledValue(cs_list_price#6))#34 / 100.0) as decimal(11,6)) AS agg2#38, cast((avg(UnscaledValue(cs_coupon_amt#8))#35 / 100.0) as decimal(11,6)) AS agg3#39, cast((avg(UnscaledValue(cs_sales_price#7))#36 / 100.0) as decimal(11,6)) AS agg4#40] -Input [5]: [i_item_id#16, avg(cs_quantity#5)#33, avg(UnscaledValue(cs_list_price#6))#34, avg(UnscaledValue(cs_coupon_amt#8))#35, avg(UnscaledValue(cs_sales_price#7))#36] +Output [5]: [i_item_id#16, avg(cs_quantity#5)#34 AS agg1#38, cast((avg(UnscaledValue(cs_list_price#6))#35 / 100.0) as decimal(11,6)) AS agg2#39, cast((avg(UnscaledValue(cs_coupon_amt#8))#36 / 100.0) as decimal(11,6)) AS agg3#40, cast((avg(UnscaledValue(cs_sales_price#7))#37 / 100.0) as decimal(11,6)) AS agg4#41] +Input [5]: [i_item_id#16, avg(cs_quantity#5)#34, avg(UnscaledValue(cs_list_price#6))#35, avg(UnscaledValue(cs_coupon_amt#8))#36, avg(UnscaledValue(cs_sales_price#7))#37] (75) NativeTakeOrdered -Input [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Input [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] Arguments: X, [i_item_id#16 ASC NULLS FIRST] (76) Scan parquet @@ -616,24 +616,24 @@ Input [5]: [cs_quantity#5, cs_list_price#6, cs_sales_price#7, cs_coupon_amt#8, i Keys [1]: [i_item_id#16] Functions [4]: [partial_avg(cs_quantity#5), partial_avg(UnscaledValue(cs_list_price#6)), partial_avg(UnscaledValue(cs_coupon_amt#8)), partial_avg(UnscaledValue(cs_sales_price#7))] Aggregate Attributes [8]: [sum#24, count#25, sum#26, count#27, sum#28, count#29, sum#30, count#31] -Results [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Results [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] (114) Exchange -Input [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Input [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] Arguments: hashpartitioning(i_item_id#16, 100), ENSURE_REQUIREMENTS, [plan_id=18] (115) HashAggregate -Input [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Input [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] Keys [1]: [i_item_id#16] Functions [4]: [avg(cs_quantity#5), avg(UnscaledValue(cs_list_price#6)), avg(UnscaledValue(cs_coupon_amt#8)), avg(UnscaledValue(cs_sales_price#7))] -Aggregate Attributes [4]: [avg(cs_quantity#5)#33, avg(UnscaledValue(cs_list_price#6))#34, avg(UnscaledValue(cs_coupon_amt#8))#35, avg(UnscaledValue(cs_sales_price#7))#36] -Results [5]: [i_item_id#16, avg(cs_quantity#5)#33 AS agg1#37, cast((avg(UnscaledValue(cs_list_price#6))#34 / 100.0) as decimal(11,6)) AS agg2#38, cast((avg(UnscaledValue(cs_coupon_amt#8))#35 / 100.0) as decimal(11,6)) AS agg3#39, cast((avg(UnscaledValue(cs_sales_price#7))#36 / 100.0) as decimal(11,6)) AS agg4#40] +Aggregate Attributes [4]: [avg(cs_quantity#5)#34, avg(UnscaledValue(cs_list_price#6))#35, avg(UnscaledValue(cs_coupon_amt#8))#36, avg(UnscaledValue(cs_sales_price#7))#37] +Results [5]: [i_item_id#16, avg(cs_quantity#5)#34 AS agg1#38, cast((avg(UnscaledValue(cs_list_price#6))#35 / 100.0) as decimal(11,6)) AS agg2#39, cast((avg(UnscaledValue(cs_coupon_amt#8))#36 / 100.0) as decimal(11,6)) AS agg3#40, cast((avg(UnscaledValue(cs_sales_price#7))#37 / 100.0) as decimal(11,6)) AS agg4#41] (116) TakeOrderedAndProject -Input [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] -Arguments: X, [i_item_id#16 ASC NULLS FIRST], [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Input [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] +Arguments: X, [i_item_id#16 ASC NULLS FIRST], [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] (117) AdaptiveSparkPlan -Output [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Output [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q27.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q27.txt index 961e4007c..3f33d9874 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q27.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q27.txt @@ -408,36 +408,36 @@ Input [7]: [i_item_id#19, s_state#20, spark_grouping_id#21, _c3#22, _c4#23, _c5# Keys [3]: [i_item_id#19, s_state#20, spark_grouping_id#21] Functions [4]: [partial_avg(_c3#22), partial_avg(_c4#23), partial_avg(_c5#24), partial_avg(_c6#25)] Aggregate Attributes [8]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32, count#33] -Results [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Results [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] (69) NativeShuffleExchange -Input [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] Arguments: hashpartitioning(i_item_id#19, s_state#20, spark_grouping_id#21, 100), ENSURE_REQUIREMENTS, [plan_id=9] (70) ShuffleQueryStage -Output [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Output [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] Arguments: X (71) AQEShuffleRead -Input [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] Arguments: coalesced (72) InputAdapter -Input [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] (73) NativeHashAggregate -Input [4]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34#34] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, #34, #35, #34, #35, #34, #35, #34, #35] Keys [3]: [i_item_id#19, s_state#20, spark_grouping_id#21] Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_list_price#6)), avg(UnscaledValue(ss_coupon_amt#8)), avg(UnscaledValue(ss_sales_price#7))] -Aggregate Attributes [4]: [avg(ss_quantity#5)#35, avg(UnscaledValue(ss_list_price#6))#36, avg(UnscaledValue(ss_coupon_amt#8))#37, avg(UnscaledValue(ss_sales_price#7))#38] -Results [7]: [i_item_id#19, s_state#20, spark_grouping_id#21, avg(ss_quantity#5)#35, avg(UnscaledValue(ss_list_price#6))#36, avg(UnscaledValue(ss_coupon_amt#8))#37, avg(UnscaledValue(ss_sales_price#7))#38] +Aggregate Attributes [4]: [avg(ss_quantity#5)#36, avg(UnscaledValue(ss_list_price#6))#37, avg(UnscaledValue(ss_coupon_amt#8))#38, avg(UnscaledValue(ss_sales_price#7))#39] +Results [7]: [i_item_id#19, s_state#20, spark_grouping_id#21, avg(ss_quantity#5)#36, avg(UnscaledValue(ss_list_price#6))#37, avg(UnscaledValue(ss_coupon_amt#8))#38, avg(UnscaledValue(ss_sales_price#7))#39] (74) NativeProject -Output [7]: [i_item_id#19, s_state#20, cast((shiftright(spark_grouping_id#21, 0) & 1) as tinyint) AS g_state#39, avg(ss_quantity#5)#35 AS agg1#40, cast((avg(UnscaledValue(ss_list_price#6))#36 / 100.0) as decimal(11,6)) AS agg2#41, cast((avg(UnscaledValue(ss_coupon_amt#8))#37 / 100.0) as decimal(11,6)) AS agg3#42, cast((avg(UnscaledValue(ss_sales_price#7))#38 / 100.0) as decimal(11,6)) AS agg4#43] -Input [7]: [i_item_id#19, s_state#20, spark_grouping_id#21, avg(ss_quantity#5)#35, avg(UnscaledValue(ss_list_price#6))#36, avg(UnscaledValue(ss_coupon_amt#8))#37, avg(UnscaledValue(ss_sales_price#7))#38] +Output [7]: [i_item_id#19, s_state#20, cast((shiftright(spark_grouping_id#21, 0) & 1) as tinyint) AS g_state#40, avg(ss_quantity#5)#36 AS agg1#41, cast((avg(UnscaledValue(ss_list_price#6))#37 / 100.0) as decimal(11,6)) AS agg2#42, cast((avg(UnscaledValue(ss_coupon_amt#8))#38 / 100.0) as decimal(11,6)) AS agg3#43, cast((avg(UnscaledValue(ss_sales_price#7))#39 / 100.0) as decimal(11,6)) AS agg4#44] +Input [7]: [i_item_id#19, s_state#20, spark_grouping_id#21, avg(ss_quantity#5)#36, avg(UnscaledValue(ss_list_price#6))#37, avg(UnscaledValue(ss_coupon_amt#8))#38, avg(UnscaledValue(ss_sales_price#7))#39] (75) NativeTakeOrdered -Input [7]: [i_item_id#19, s_state#20, g_state#39, agg1#40, agg2#41, agg3#42, agg4#43] +Input [7]: [i_item_id#19, s_state#20, g_state#40, agg1#41, agg2#42, agg3#43, agg4#44] Arguments: X, [i_item_id#19 ASC NULLS FIRST, s_state#20 ASC NULLS FIRST] (76) Scan parquet @@ -616,24 +616,24 @@ Input [7]: [ss_quantity#5, ss_list_price#6, ss_sales_price#7, ss_coupon_amt#8, i Keys [3]: [i_item_id#19, s_state#20, spark_grouping_id#21] Functions [4]: [partial_avg(ss_quantity#5), partial_avg(UnscaledValue(ss_list_price#6)), partial_avg(UnscaledValue(ss_coupon_amt#8)), partial_avg(UnscaledValue(ss_sales_price#7))] Aggregate Attributes [8]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32, count#33] -Results [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51] +Results [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#45, count#46, sum#47, count#48, sum#49, count#50, sum#51, count#52] (114) Exchange -Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#45, count#46, sum#47, count#48, sum#49, count#50, sum#51, count#52] Arguments: hashpartitioning(i_item_id#19, s_state#20, spark_grouping_id#21, 100), ENSURE_REQUIREMENTS, [plan_id=18] (115) HashAggregate -Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#44, count#45, sum#46, count#47, sum#48, count#49, sum#50, count#51] +Input [11]: [i_item_id#19, s_state#20, spark_grouping_id#21, sum#45, count#46, sum#47, count#48, sum#49, count#50, sum#51, count#52] Keys [3]: [i_item_id#19, s_state#20, spark_grouping_id#21] Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_list_price#6)), avg(UnscaledValue(ss_coupon_amt#8)), avg(UnscaledValue(ss_sales_price#7))] -Aggregate Attributes [4]: [avg(ss_quantity#5)#35, avg(UnscaledValue(ss_list_price#6))#36, avg(UnscaledValue(ss_coupon_amt#8))#37, avg(UnscaledValue(ss_sales_price#7))#38] -Results [7]: [i_item_id#19, s_state#20, cast((shiftright(spark_grouping_id#21, 0) & 1) as tinyint) AS g_state#39, avg(ss_quantity#5)#35 AS agg1#40, cast((avg(UnscaledValue(ss_list_price#6))#36 / 100.0) as decimal(11,6)) AS agg2#41, cast((avg(UnscaledValue(ss_coupon_amt#8))#37 / 100.0) as decimal(11,6)) AS agg3#42, cast((avg(UnscaledValue(ss_sales_price#7))#38 / 100.0) as decimal(11,6)) AS agg4#43] +Aggregate Attributes [4]: [avg(ss_quantity#5)#36, avg(UnscaledValue(ss_list_price#6))#37, avg(UnscaledValue(ss_coupon_amt#8))#38, avg(UnscaledValue(ss_sales_price#7))#39] +Results [7]: [i_item_id#19, s_state#20, cast((shiftright(spark_grouping_id#21, 0) & 1) as tinyint) AS g_state#40, avg(ss_quantity#5)#36 AS agg1#41, cast((avg(UnscaledValue(ss_list_price#6))#37 / 100.0) as decimal(11,6)) AS agg2#42, cast((avg(UnscaledValue(ss_coupon_amt#8))#38 / 100.0) as decimal(11,6)) AS agg3#43, cast((avg(UnscaledValue(ss_sales_price#7))#39 / 100.0) as decimal(11,6)) AS agg4#44] (116) TakeOrderedAndProject -Input [7]: [i_item_id#19, s_state#20, g_state#39, agg1#40, agg2#41, agg3#42, agg4#43] -Arguments: X, [i_item_id#19 ASC NULLS FIRST, s_state#20 ASC NULLS FIRST], [i_item_id#19, s_state#20, g_state#39, agg1#40, agg2#41, agg3#42, agg4#43] +Input [7]: [i_item_id#19, s_state#20, g_state#40, agg1#41, agg2#42, agg3#43, agg4#44] +Arguments: X, [i_item_id#19 ASC NULLS FIRST, s_state#20 ASC NULLS FIRST], [i_item_id#19, s_state#20, g_state#40, agg1#41, agg2#42, agg3#43, agg4#44] (117) AdaptiveSparkPlan -Output [7]: [i_item_id#19, s_state#20, g_state#39, agg1#40, agg2#41, agg3#42, agg4#43] +Output [7]: [i_item_id#19, s_state#20, g_state#40, agg1#41, agg2#42, agg3#43, agg4#44] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q28.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q28.txt index 6b8b7124f..8d37aecc1 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q28.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q28.txt @@ -192,461 +192,461 @@ Input [2]: [ss_list_price#3, _c1#5] Keys [1]: [ss_list_price#3] Functions [2]: [partial_avg(_c1#5), partial_count(ss_list_price#3)] Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7] -Results [2]: [ss_list_price#3, #8#8] +Results [4]: [ss_list_price#3, #8, #9, #9] (7) NativeShuffleExchange -Input [2]: [ss_list_price#3, #8#8] +Input [4]: [ss_list_price#3, #8, #9, #9] Arguments: hashpartitioning(ss_list_price#3, 100), ENSURE_REQUIREMENTS, [plan_id=1] (8) ShuffleQueryStage -Output [2]: [ss_list_price#3, #8#8] +Output [4]: [ss_list_price#3, #8, #9, #9] Arguments: X (9) AQEShuffleRead -Input [2]: [ss_list_price#3, #8#8] +Input [4]: [ss_list_price#3, #8, #9, #9] Arguments: coalesced (10) InputAdapter -Input [2]: [ss_list_price#3, #8#8] +Input [4]: [ss_list_price#3, #8, #9, #9] (11) NativeHashAggregate -Input [2]: [ss_list_price#3, #8#8] +Input [4]: [ss_list_price#3, #8, #9, #9] Keys [1]: [ss_list_price#3] Functions [2]: [merge_avg(UnscaledValue(ss_list_price#3)), merge_count(ss_list_price#3)] Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7] -Results [2]: [ss_list_price#3, #8#8] +Results [4]: [ss_list_price#3, #8, #9, #9] (12) NativeHashAggregate -Input [2]: [ss_list_price#3, #8#8] +Input [4]: [ss_list_price#3, #8, #9, #9] Keys: [] Functions [3]: [merge_avg(UnscaledValue(ss_list_price#3)), merge_count(ss_list_price#3), partial_count(distinct ss_list_price#3)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] -Results [1]: [#8#8] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] +Results [4]: [#8, #9, #9, #9] (13) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2] (14) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (15) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] Functions [3]: [avg(UnscaledValue(ss_list_price#3)), count(ss_list_price#3), count(distinct ss_list_price#3)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] -Results [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] +Results [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] (16) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#3))#6 / 100.0) as decimal(11,6)) AS B1_LP#10, count(ss_list_price#3)#7 AS B1_CNT#11, count(ss_list_price#3)#9 AS B1_CNTD#12] -Input [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#3))#6 / 100.0) as decimal(11,6)) AS B1_LP#11, count(ss_list_price#3)#7 AS B1_CNT#12, count(ss_list_price#3)#10 AS B1_CNTD#13] +Input [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] (111) Scan parquet -Output [4]: [ss_quantity#13, ss_wholesale_cost#14, ss_list_price#15, ss_coupon_amt#16] +Output [4]: [ss_quantity#14, ss_wholesale_cost#15, ss_list_price#16, ss_coupon_amt#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,6), LessThanOrEqual(ss_quantity,10), Or(Or(And(GreaterThanOrEqual(ss_list_price,90.00),LessThanOrEqual(ss_list_price,100.00)),And(GreaterThanOrEqual(ss_coupon_amt,2323.00),LessThanOrEqual(ss_coupon_amt,3323.00))),And(GreaterThanOrEqual(ss_wholesale_cost,31.00),LessThanOrEqual(ss_wholesale_cost,51.00)))] ReadSchema: struct (18) InputAdapter -Input [4]: [ss_quantity#13, ss_wholesale_cost#14, ss_list_price#15, ss_coupon_amt#16] -Arguments: [#13, #14, #15, #16] +Input [4]: [ss_quantity#14, ss_wholesale_cost#15, ss_list_price#16, ss_coupon_amt#17] +Arguments: [#14, #15, #16, #17] (19) NativeFilter -Input [4]: [#13#13, #14#14, #15#15, #16#16] -Condition : (((isnotnull(ss_quantity#13) AND (ss_quantity#13 >= 6)) AND (ss_quantity#13 <= 10)) AND ((((ss_list_price#15 >= 90.00) AND (ss_list_price#15 <= 100.00)) OR ((ss_coupon_amt#16 >= 2323.00) AND (ss_coupon_amt#16 <= 3323.00))) OR ((ss_wholesale_cost#14 >= 31.00) AND (ss_wholesale_cost#14 <= 51.00)))) +Input [4]: [#14#14, #15#15, #16#16, #17#17] +Condition : (((isnotnull(ss_quantity#14) AND (ss_quantity#14 >= 6)) AND (ss_quantity#14 <= 10)) AND ((((ss_list_price#16 >= 90.00) AND (ss_list_price#16 <= 100.00)) OR ((ss_coupon_amt#17 >= 2323.00) AND (ss_coupon_amt#17 <= 3323.00))) OR ((ss_wholesale_cost#15 >= 31.00) AND (ss_wholesale_cost#15 <= 51.00)))) (20) NativeProject -Output [1]: [ss_list_price#15] -Input [4]: [#13#13, #14#14, #15#15, #16#16] +Output [1]: [ss_list_price#16] +Input [4]: [#14#14, #15#15, #16#16, #17#17] (21) NativeProject -Output [2]: [ss_list_price#15 AS ss_list_price#15, UnscaledValue(ss_list_price#15) AS _c1#17] -Input [1]: [ss_list_price#15] +Output [2]: [ss_list_price#16 AS ss_list_price#16, UnscaledValue(ss_list_price#16) AS _c1#18] +Input [1]: [ss_list_price#16] (22) NativeHashAggregate -Input [2]: [ss_list_price#15, _c1#17] -Keys [1]: [ss_list_price#15] -Functions [2]: [partial_avg(_c1#17), partial_count(ss_list_price#15)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19] -Results [2]: [ss_list_price#15, #8#8] +Input [2]: [ss_list_price#16, _c1#18] +Keys [1]: [ss_list_price#16] +Functions [2]: [partial_avg(_c1#18), partial_count(ss_list_price#16)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20] +Results [4]: [ss_list_price#16, #8, #9, #9] (23) NativeShuffleExchange -Input [2]: [ss_list_price#15, #8#8] -Arguments: hashpartitioning(ss_list_price#15, 100), ENSURE_REQUIREMENTS, [plan_id=3] +Input [4]: [ss_list_price#16, #8, #9, #9] +Arguments: hashpartitioning(ss_list_price#16, 100), ENSURE_REQUIREMENTS, [plan_id=3] (24) ShuffleQueryStage -Output [2]: [ss_list_price#15, #8#8] +Output [4]: [ss_list_price#16, #8, #9, #9] Arguments: X (25) AQEShuffleRead -Input [2]: [ss_list_price#15, #8#8] +Input [4]: [ss_list_price#16, #8, #9, #9] Arguments: coalesced (26) InputAdapter -Input [2]: [ss_list_price#15, #8#8] +Input [4]: [ss_list_price#16, #8, #9, #9] (27) NativeHashAggregate -Input [2]: [ss_list_price#15, #8#8] -Keys [1]: [ss_list_price#15] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#15)), merge_count(ss_list_price#15)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19] -Results [2]: [ss_list_price#15, #8#8] +Input [4]: [ss_list_price#16, #8, #9, #9] +Keys [1]: [ss_list_price#16] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#16)), merge_count(ss_list_price#16)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20] +Results [4]: [ss_list_price#16, #8, #9, #9] (28) NativeHashAggregate -Input [2]: [ss_list_price#15, #8#8] +Input [4]: [ss_list_price#16, #8, #9, #9] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#15)), merge_count(ss_list_price#15), partial_count(distinct ss_list_price#15)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] -Results [1]: [#8#8] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#16)), merge_count(ss_list_price#16), partial_count(distinct ss_list_price#16)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] +Results [4]: [#8, #9, #9, #9] (29) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=4] (30) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (31) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#15)), count(ss_list_price#15), count(distinct ss_list_price#15)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] -Results [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] +Functions [3]: [avg(UnscaledValue(ss_list_price#16)), count(ss_list_price#16), count(distinct ss_list_price#16)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] +Results [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] (32) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#15))#18 / 100.0) as decimal(11,6)) AS B2_LP#21, count(ss_list_price#15)#19 AS B2_CNT#22, count(ss_list_price#15)#20 AS B2_CNTD#23] -Input [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#16))#19 / 100.0) as decimal(11,6)) AS B2_LP#22, count(ss_list_price#16)#20 AS B2_CNT#23, count(ss_list_price#16)#21 AS B2_CNTD#24] +Input [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] (33) CartesianProduct Join type: Inner Join condition: None (121) Scan parquet -Output [4]: [ss_quantity#24, ss_wholesale_cost#25, ss_list_price#26, ss_coupon_amt#27] +Output [4]: [ss_quantity#25, ss_wholesale_cost#26, ss_list_price#27, ss_coupon_amt#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,11), LessThanOrEqual(ss_quantity,15), Or(Or(And(GreaterThanOrEqual(ss_list_price,142.00),LessThanOrEqual(ss_list_price,152.00)),And(GreaterThanOrEqual(ss_coupon_amt,12214.00),LessThanOrEqual(ss_coupon_amt,13214.00))),And(GreaterThanOrEqual(ss_wholesale_cost,79.00),LessThanOrEqual(ss_wholesale_cost,99.00)))] ReadSchema: struct (35) InputAdapter -Input [4]: [ss_quantity#24, ss_wholesale_cost#25, ss_list_price#26, ss_coupon_amt#27] -Arguments: [#24, #25, #26, #27] +Input [4]: [ss_quantity#25, ss_wholesale_cost#26, ss_list_price#27, ss_coupon_amt#28] +Arguments: [#25, #26, #27, #28] (36) NativeFilter -Input [4]: [#24#24, #25#25, #26#26, #27#27] -Condition : (((isnotnull(ss_quantity#24) AND (ss_quantity#24 >= 11)) AND (ss_quantity#24 <= 15)) AND ((((ss_list_price#26 >= 142.00) AND (ss_list_price#26 <= 152.00)) OR ((ss_coupon_amt#27 >= 12214.00) AND (ss_coupon_amt#27 <= 13214.00))) OR ((ss_wholesale_cost#25 >= 79.00) AND (ss_wholesale_cost#25 <= 99.00)))) +Input [4]: [#25#25, #26#26, #27#27, #28#28] +Condition : (((isnotnull(ss_quantity#25) AND (ss_quantity#25 >= 11)) AND (ss_quantity#25 <= 15)) AND ((((ss_list_price#27 >= 142.00) AND (ss_list_price#27 <= 152.00)) OR ((ss_coupon_amt#28 >= 12214.00) AND (ss_coupon_amt#28 <= 13214.00))) OR ((ss_wholesale_cost#26 >= 79.00) AND (ss_wholesale_cost#26 <= 99.00)))) (37) NativeProject -Output [1]: [ss_list_price#26] -Input [4]: [#24#24, #25#25, #26#26, #27#27] +Output [1]: [ss_list_price#27] +Input [4]: [#25#25, #26#26, #27#27, #28#28] (38) NativeProject -Output [2]: [ss_list_price#26 AS ss_list_price#26, UnscaledValue(ss_list_price#26) AS _c1#28] -Input [1]: [ss_list_price#26] +Output [2]: [ss_list_price#27 AS ss_list_price#27, UnscaledValue(ss_list_price#27) AS _c1#29] +Input [1]: [ss_list_price#27] (39) NativeHashAggregate -Input [2]: [ss_list_price#26, _c1#28] -Keys [1]: [ss_list_price#26] -Functions [2]: [partial_avg(_c1#28), partial_count(ss_list_price#26)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30] -Results [2]: [ss_list_price#26, #8#8] +Input [2]: [ss_list_price#27, _c1#29] +Keys [1]: [ss_list_price#27] +Functions [2]: [partial_avg(_c1#29), partial_count(ss_list_price#27)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31] +Results [4]: [ss_list_price#27, #8, #9, #9] (40) NativeShuffleExchange -Input [2]: [ss_list_price#26, #8#8] -Arguments: hashpartitioning(ss_list_price#26, 100), ENSURE_REQUIREMENTS, [plan_id=5] +Input [4]: [ss_list_price#27, #8, #9, #9] +Arguments: hashpartitioning(ss_list_price#27, 100), ENSURE_REQUIREMENTS, [plan_id=5] (41) ShuffleQueryStage -Output [2]: [ss_list_price#26, #8#8] +Output [4]: [ss_list_price#27, #8, #9, #9] Arguments: X (42) AQEShuffleRead -Input [2]: [ss_list_price#26, #8#8] +Input [4]: [ss_list_price#27, #8, #9, #9] Arguments: coalesced (43) InputAdapter -Input [2]: [ss_list_price#26, #8#8] +Input [4]: [ss_list_price#27, #8, #9, #9] (44) NativeHashAggregate -Input [2]: [ss_list_price#26, #8#8] -Keys [1]: [ss_list_price#26] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#26)), merge_count(ss_list_price#26)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30] -Results [2]: [ss_list_price#26, #8#8] +Input [4]: [ss_list_price#27, #8, #9, #9] +Keys [1]: [ss_list_price#27] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#27)), merge_count(ss_list_price#27)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31] +Results [4]: [ss_list_price#27, #8, #9, #9] (45) NativeHashAggregate -Input [2]: [ss_list_price#26, #8#8] +Input [4]: [ss_list_price#27, #8, #9, #9] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#26)), merge_count(ss_list_price#26), partial_count(distinct ss_list_price#26)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] -Results [1]: [#8#8] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#27)), merge_count(ss_list_price#27), partial_count(distinct ss_list_price#27)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] +Results [4]: [#8, #9, #9, #9] (46) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6] (47) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (48) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#26)), count(ss_list_price#26), count(distinct ss_list_price#26)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] -Results [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] +Functions [3]: [avg(UnscaledValue(ss_list_price#27)), count(ss_list_price#27), count(distinct ss_list_price#27)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] +Results [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] (49) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#26))#29 / 100.0) as decimal(11,6)) AS B3_LP#32, count(ss_list_price#26)#30 AS B3_CNT#33, count(ss_list_price#26)#31 AS B3_CNTD#34] -Input [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#27))#30 / 100.0) as decimal(11,6)) AS B3_LP#33, count(ss_list_price#27)#31 AS B3_CNT#34, count(ss_list_price#27)#32 AS B3_CNTD#35] +Input [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] (50) CartesianProduct Join type: Inner Join condition: None (131) Scan parquet -Output [4]: [ss_quantity#35, ss_wholesale_cost#36, ss_list_price#37, ss_coupon_amt#38] +Output [4]: [ss_quantity#36, ss_wholesale_cost#37, ss_list_price#38, ss_coupon_amt#39] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,16), LessThanOrEqual(ss_quantity,20), Or(Or(And(GreaterThanOrEqual(ss_list_price,135.00),LessThanOrEqual(ss_list_price,145.00)),And(GreaterThanOrEqual(ss_coupon_amt,6071.00),LessThanOrEqual(ss_coupon_amt,7071.00))),And(GreaterThanOrEqual(ss_wholesale_cost,38.00),LessThanOrEqual(ss_wholesale_cost,58.00)))] ReadSchema: struct (52) InputAdapter -Input [4]: [ss_quantity#35, ss_wholesale_cost#36, ss_list_price#37, ss_coupon_amt#38] -Arguments: [#35, #36, #37, #38] +Input [4]: [ss_quantity#36, ss_wholesale_cost#37, ss_list_price#38, ss_coupon_amt#39] +Arguments: [#36, #37, #38, #39] (53) NativeFilter -Input [4]: [#35#35, #36#36, #37#37, #38#38] -Condition : (((isnotnull(ss_quantity#35) AND (ss_quantity#35 >= 16)) AND (ss_quantity#35 <= 20)) AND ((((ss_list_price#37 >= 135.00) AND (ss_list_price#37 <= 145.00)) OR ((ss_coupon_amt#38 >= 6071.00) AND (ss_coupon_amt#38 <= 7071.00))) OR ((ss_wholesale_cost#36 >= 38.00) AND (ss_wholesale_cost#36 <= 58.00)))) +Input [4]: [#36#36, #37#37, #38#38, #39#39] +Condition : (((isnotnull(ss_quantity#36) AND (ss_quantity#36 >= 16)) AND (ss_quantity#36 <= 20)) AND ((((ss_list_price#38 >= 135.00) AND (ss_list_price#38 <= 145.00)) OR ((ss_coupon_amt#39 >= 6071.00) AND (ss_coupon_amt#39 <= 7071.00))) OR ((ss_wholesale_cost#37 >= 38.00) AND (ss_wholesale_cost#37 <= 58.00)))) (54) NativeProject -Output [1]: [ss_list_price#37] -Input [4]: [#35#35, #36#36, #37#37, #38#38] +Output [1]: [ss_list_price#38] +Input [4]: [#36#36, #37#37, #38#38, #39#39] (55) NativeProject -Output [2]: [ss_list_price#37 AS ss_list_price#37, UnscaledValue(ss_list_price#37) AS _c1#39] -Input [1]: [ss_list_price#37] +Output [2]: [ss_list_price#38 AS ss_list_price#38, UnscaledValue(ss_list_price#38) AS _c1#40] +Input [1]: [ss_list_price#38] (56) NativeHashAggregate -Input [2]: [ss_list_price#37, _c1#39] -Keys [1]: [ss_list_price#37] -Functions [2]: [partial_avg(_c1#39), partial_count(ss_list_price#37)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41] -Results [2]: [ss_list_price#37, #8#8] +Input [2]: [ss_list_price#38, _c1#40] +Keys [1]: [ss_list_price#38] +Functions [2]: [partial_avg(_c1#40), partial_count(ss_list_price#38)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42] +Results [4]: [ss_list_price#38, #8, #9, #9] (57) NativeShuffleExchange -Input [2]: [ss_list_price#37, #8#8] -Arguments: hashpartitioning(ss_list_price#37, 100), ENSURE_REQUIREMENTS, [plan_id=7] +Input [4]: [ss_list_price#38, #8, #9, #9] +Arguments: hashpartitioning(ss_list_price#38, 100), ENSURE_REQUIREMENTS, [plan_id=7] (58) ShuffleQueryStage -Output [2]: [ss_list_price#37, #8#8] +Output [4]: [ss_list_price#38, #8, #9, #9] Arguments: X (59) AQEShuffleRead -Input [2]: [ss_list_price#37, #8#8] +Input [4]: [ss_list_price#38, #8, #9, #9] Arguments: coalesced (60) InputAdapter -Input [2]: [ss_list_price#37, #8#8] +Input [4]: [ss_list_price#38, #8, #9, #9] (61) NativeHashAggregate -Input [2]: [ss_list_price#37, #8#8] -Keys [1]: [ss_list_price#37] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#37)), merge_count(ss_list_price#37)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41] -Results [2]: [ss_list_price#37, #8#8] +Input [4]: [ss_list_price#38, #8, #9, #9] +Keys [1]: [ss_list_price#38] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#38)), merge_count(ss_list_price#38)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42] +Results [4]: [ss_list_price#38, #8, #9, #9] (62) NativeHashAggregate -Input [2]: [ss_list_price#37, #8#8] +Input [4]: [ss_list_price#38, #8, #9, #9] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#37)), merge_count(ss_list_price#37), partial_count(distinct ss_list_price#37)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] -Results [1]: [#8#8] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#38)), merge_count(ss_list_price#38), partial_count(distinct ss_list_price#38)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] +Results [4]: [#8, #9, #9, #9] (63) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=8] (64) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (65) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#37)), count(ss_list_price#37), count(distinct ss_list_price#37)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] -Results [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] +Functions [3]: [avg(UnscaledValue(ss_list_price#38)), count(ss_list_price#38), count(distinct ss_list_price#38)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] +Results [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] (66) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#37))#40 / 100.0) as decimal(11,6)) AS B4_LP#43, count(ss_list_price#37)#41 AS B4_CNT#44, count(ss_list_price#37)#42 AS B4_CNTD#45] -Input [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#38))#41 / 100.0) as decimal(11,6)) AS B4_LP#44, count(ss_list_price#38)#42 AS B4_CNT#45, count(ss_list_price#38)#43 AS B4_CNTD#46] +Input [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] (67) CartesianProduct Join type: Inner Join condition: None (141) Scan parquet -Output [4]: [ss_quantity#46, ss_wholesale_cost#47, ss_list_price#48, ss_coupon_amt#49] +Output [4]: [ss_quantity#47, ss_wholesale_cost#48, ss_list_price#49, ss_coupon_amt#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,21), LessThanOrEqual(ss_quantity,25), Or(Or(And(GreaterThanOrEqual(ss_list_price,122.00),LessThanOrEqual(ss_list_price,132.00)),And(GreaterThanOrEqual(ss_coupon_amt,836.00),LessThanOrEqual(ss_coupon_amt,1836.00))),And(GreaterThanOrEqual(ss_wholesale_cost,17.00),LessThanOrEqual(ss_wholesale_cost,37.00)))] ReadSchema: struct (69) InputAdapter -Input [4]: [ss_quantity#46, ss_wholesale_cost#47, ss_list_price#48, ss_coupon_amt#49] -Arguments: [#46, #47, #48, #49] +Input [4]: [ss_quantity#47, ss_wholesale_cost#48, ss_list_price#49, ss_coupon_amt#50] +Arguments: [#47, #48, #49, #50] (70) NativeFilter -Input [4]: [#46#46, #47#47, #48#48, #49#49] -Condition : (((isnotnull(ss_quantity#46) AND (ss_quantity#46 >= 21)) AND (ss_quantity#46 <= 25)) AND ((((ss_list_price#48 >= 122.00) AND (ss_list_price#48 <= 132.00)) OR ((ss_coupon_amt#49 >= 836.00) AND (ss_coupon_amt#49 <= 1836.00))) OR ((ss_wholesale_cost#47 >= 17.00) AND (ss_wholesale_cost#47 <= 37.00)))) +Input [4]: [#47#47, #48#48, #49#49, #50#50] +Condition : (((isnotnull(ss_quantity#47) AND (ss_quantity#47 >= 21)) AND (ss_quantity#47 <= 25)) AND ((((ss_list_price#49 >= 122.00) AND (ss_list_price#49 <= 132.00)) OR ((ss_coupon_amt#50 >= 836.00) AND (ss_coupon_amt#50 <= 1836.00))) OR ((ss_wholesale_cost#48 >= 17.00) AND (ss_wholesale_cost#48 <= 37.00)))) (71) NativeProject -Output [1]: [ss_list_price#48] -Input [4]: [#46#46, #47#47, #48#48, #49#49] +Output [1]: [ss_list_price#49] +Input [4]: [#47#47, #48#48, #49#49, #50#50] (72) NativeProject -Output [2]: [ss_list_price#48 AS ss_list_price#48, UnscaledValue(ss_list_price#48) AS _c1#50] -Input [1]: [ss_list_price#48] +Output [2]: [ss_list_price#49 AS ss_list_price#49, UnscaledValue(ss_list_price#49) AS _c1#51] +Input [1]: [ss_list_price#49] (73) NativeHashAggregate -Input [2]: [ss_list_price#48, _c1#50] -Keys [1]: [ss_list_price#48] -Functions [2]: [partial_avg(_c1#50), partial_count(ss_list_price#48)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52] -Results [2]: [ss_list_price#48, #8#8] +Input [2]: [ss_list_price#49, _c1#51] +Keys [1]: [ss_list_price#49] +Functions [2]: [partial_avg(_c1#51), partial_count(ss_list_price#49)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53] +Results [4]: [ss_list_price#49, #8, #9, #9] (74) NativeShuffleExchange -Input [2]: [ss_list_price#48, #8#8] -Arguments: hashpartitioning(ss_list_price#48, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [4]: [ss_list_price#49, #8, #9, #9] +Arguments: hashpartitioning(ss_list_price#49, 100), ENSURE_REQUIREMENTS, [plan_id=9] (75) ShuffleQueryStage -Output [2]: [ss_list_price#48, #8#8] +Output [4]: [ss_list_price#49, #8, #9, #9] Arguments: X (76) AQEShuffleRead -Input [2]: [ss_list_price#48, #8#8] +Input [4]: [ss_list_price#49, #8, #9, #9] Arguments: coalesced (77) InputAdapter -Input [2]: [ss_list_price#48, #8#8] +Input [4]: [ss_list_price#49, #8, #9, #9] (78) NativeHashAggregate -Input [2]: [ss_list_price#48, #8#8] -Keys [1]: [ss_list_price#48] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#48)), merge_count(ss_list_price#48)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52] -Results [2]: [ss_list_price#48, #8#8] +Input [4]: [ss_list_price#49, #8, #9, #9] +Keys [1]: [ss_list_price#49] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#49)), merge_count(ss_list_price#49)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53] +Results [4]: [ss_list_price#49, #8, #9, #9] (79) NativeHashAggregate -Input [2]: [ss_list_price#48, #8#8] +Input [4]: [ss_list_price#49, #8, #9, #9] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#48)), merge_count(ss_list_price#48), partial_count(distinct ss_list_price#48)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] -Results [1]: [#8#8] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#49)), merge_count(ss_list_price#49), partial_count(distinct ss_list_price#49)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] +Results [4]: [#8, #9, #9, #9] (80) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (81) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (82) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#48)), count(ss_list_price#48), count(distinct ss_list_price#48)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] -Results [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] +Functions [3]: [avg(UnscaledValue(ss_list_price#49)), count(ss_list_price#49), count(distinct ss_list_price#49)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] +Results [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] (83) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#48))#51 / 100.0) as decimal(11,6)) AS B5_LP#54, count(ss_list_price#48)#52 AS B5_CNT#55, count(ss_list_price#48)#53 AS B5_CNTD#56] -Input [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#49))#52 / 100.0) as decimal(11,6)) AS B5_LP#55, count(ss_list_price#49)#53 AS B5_CNT#56, count(ss_list_price#49)#54 AS B5_CNTD#57] +Input [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] (84) CartesianProduct Join type: Inner Join condition: None (151) Scan parquet -Output [4]: [ss_quantity#57, ss_wholesale_cost#58, ss_list_price#59, ss_coupon_amt#60] +Output [4]: [ss_quantity#58, ss_wholesale_cost#59, ss_list_price#60, ss_coupon_amt#61] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,26), LessThanOrEqual(ss_quantity,30), Or(Or(And(GreaterThanOrEqual(ss_list_price,154.00),LessThanOrEqual(ss_list_price,164.00)),And(GreaterThanOrEqual(ss_coupon_amt,7326.00),LessThanOrEqual(ss_coupon_amt,8326.00))),And(GreaterThanOrEqual(ss_wholesale_cost,7.00),LessThanOrEqual(ss_wholesale_cost,27.00)))] ReadSchema: struct (86) InputAdapter -Input [4]: [ss_quantity#57, ss_wholesale_cost#58, ss_list_price#59, ss_coupon_amt#60] -Arguments: [#57, #58, #59, #60] +Input [4]: [ss_quantity#58, ss_wholesale_cost#59, ss_list_price#60, ss_coupon_amt#61] +Arguments: [#58, #59, #60, #61] (87) NativeFilter -Input [4]: [#57#57, #58#58, #59#59, #60#60] -Condition : (((isnotnull(ss_quantity#57) AND (ss_quantity#57 >= 26)) AND (ss_quantity#57 <= 30)) AND ((((ss_list_price#59 >= 154.00) AND (ss_list_price#59 <= 164.00)) OR ((ss_coupon_amt#60 >= 7326.00) AND (ss_coupon_amt#60 <= 8326.00))) OR ((ss_wholesale_cost#58 >= 7.00) AND (ss_wholesale_cost#58 <= 27.00)))) +Input [4]: [#58#58, #59#59, #60#60, #61#61] +Condition : (((isnotnull(ss_quantity#58) AND (ss_quantity#58 >= 26)) AND (ss_quantity#58 <= 30)) AND ((((ss_list_price#60 >= 154.00) AND (ss_list_price#60 <= 164.00)) OR ((ss_coupon_amt#61 >= 7326.00) AND (ss_coupon_amt#61 <= 8326.00))) OR ((ss_wholesale_cost#59 >= 7.00) AND (ss_wholesale_cost#59 <= 27.00)))) (88) NativeProject -Output [1]: [ss_list_price#59] -Input [4]: [#57#57, #58#58, #59#59, #60#60] +Output [1]: [ss_list_price#60] +Input [4]: [#58#58, #59#59, #60#60, #61#61] (89) NativeProject -Output [2]: [ss_list_price#59 AS ss_list_price#59, UnscaledValue(ss_list_price#59) AS _c1#61] -Input [1]: [ss_list_price#59] +Output [2]: [ss_list_price#60 AS ss_list_price#60, UnscaledValue(ss_list_price#60) AS _c1#62] +Input [1]: [ss_list_price#60] (90) NativeHashAggregate -Input [2]: [ss_list_price#59, _c1#61] -Keys [1]: [ss_list_price#59] -Functions [2]: [partial_avg(_c1#61), partial_count(ss_list_price#59)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63] -Results [2]: [ss_list_price#59, #8#8] +Input [2]: [ss_list_price#60, _c1#62] +Keys [1]: [ss_list_price#60] +Functions [2]: [partial_avg(_c1#62), partial_count(ss_list_price#60)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64] +Results [4]: [ss_list_price#60, #8, #9, #9] (91) NativeShuffleExchange -Input [2]: [ss_list_price#59, #8#8] -Arguments: hashpartitioning(ss_list_price#59, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [4]: [ss_list_price#60, #8, #9, #9] +Arguments: hashpartitioning(ss_list_price#60, 100), ENSURE_REQUIREMENTS, [plan_id=11] (92) ShuffleQueryStage -Output [2]: [ss_list_price#59, #8#8] +Output [4]: [ss_list_price#60, #8, #9, #9] Arguments: X (93) AQEShuffleRead -Input [2]: [ss_list_price#59, #8#8] +Input [4]: [ss_list_price#60, #8, #9, #9] Arguments: coalesced (94) InputAdapter -Input [2]: [ss_list_price#59, #8#8] +Input [4]: [ss_list_price#60, #8, #9, #9] (95) NativeHashAggregate -Input [2]: [ss_list_price#59, #8#8] -Keys [1]: [ss_list_price#59] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#59)), merge_count(ss_list_price#59)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63] -Results [2]: [ss_list_price#59, #8#8] +Input [4]: [ss_list_price#60, #8, #9, #9] +Keys [1]: [ss_list_price#60] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#60)), merge_count(ss_list_price#60)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64] +Results [4]: [ss_list_price#60, #8, #9, #9] (96) NativeHashAggregate -Input [2]: [ss_list_price#59, #8#8] +Input [4]: [ss_list_price#60, #8, #9, #9] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#59)), merge_count(ss_list_price#59), partial_count(distinct ss_list_price#59)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] -Results [1]: [#8#8] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#60)), merge_count(ss_list_price#60), partial_count(distinct ss_list_price#60)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] +Results [4]: [#8, #9, #9, #9] (97) NativeShuffleExchange -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=12] (98) ShuffleQueryStage -Output [1]: [#8#8] +Output [4]: [#8, #9, #9, #9] Arguments: X (99) NativeHashAggregate -Input [1]: [#8#8] +Input [4]: [#8, #9, #9, #9] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#59)), count(ss_list_price#59), count(distinct ss_list_price#59)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] -Results [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] +Functions [3]: [avg(UnscaledValue(ss_list_price#60)), count(ss_list_price#60), count(distinct ss_list_price#60)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] +Results [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] (100) NativeProject -Output [3]: [cast((avg(UnscaledValue(ss_list_price#59))#62 / 100.0) as decimal(11,6)) AS B6_LP#65, count(ss_list_price#59)#63 AS B6_CNT#66, count(ss_list_price#59)#64 AS B6_CNTD#67] -Input [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] +Output [3]: [cast((avg(UnscaledValue(ss_list_price#60))#63 / 100.0) as decimal(11,6)) AS B6_LP#66, count(ss_list_price#60)#64 AS B6_CNT#67, count(ss_list_price#60)#65 AS B6_CNTD#68] +Input [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] (101) CartesianProduct Join type: Inner @@ -672,313 +672,313 @@ Input [1]: [ss_list_price#3] Keys [1]: [ss_list_price#3] Functions [2]: [partial_avg(UnscaledValue(ss_list_price#3)), partial_count(ss_list_price#3)] Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7] -Results [4]: [ss_list_price#3, sum#68, count#69, count#70] +Results [4]: [ss_list_price#3, sum#69, count#70, count#71] (106) Exchange -Input [4]: [ss_list_price#3, sum#68, count#69, count#70] +Input [4]: [ss_list_price#3, sum#69, count#70, count#71] Arguments: hashpartitioning(ss_list_price#3, 100), ENSURE_REQUIREMENTS, [plan_id=13] (107) HashAggregate -Input [4]: [ss_list_price#3, sum#68, count#69, count#70] +Input [4]: [ss_list_price#3, sum#69, count#70, count#71] Keys [1]: [ss_list_price#3] Functions [2]: [merge_avg(UnscaledValue(ss_list_price#3)), merge_count(ss_list_price#3)] Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7] -Results [4]: [ss_list_price#3, sum#68, count#69, count#70] +Results [4]: [ss_list_price#3, sum#69, count#70, count#71] (108) HashAggregate -Input [4]: [ss_list_price#3, sum#68, count#69, count#70] +Input [4]: [ss_list_price#3, sum#69, count#70, count#71] Keys: [] Functions [3]: [merge_avg(UnscaledValue(ss_list_price#3)), merge_count(ss_list_price#3), partial_count(distinct ss_list_price#3)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] -Results [4]: [sum#68, count#69, count#70, count#71] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] +Results [4]: [sum#69, count#70, count#71, count#72] (109) Exchange -Input [4]: [sum#68, count#69, count#70, count#71] +Input [4]: [sum#69, count#70, count#71, count#72] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=14] (110) HashAggregate -Input [4]: [sum#68, count#69, count#70, count#71] +Input [4]: [sum#69, count#70, count#71, count#72] Keys: [] Functions [3]: [avg(UnscaledValue(ss_list_price#3)), count(ss_list_price#3), count(distinct ss_list_price#3)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#9] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#3))#6 / 100.0) as decimal(11,6)) AS B1_LP#10, count(ss_list_price#3)#7 AS B1_CNT#11, count(ss_list_price#3)#9 AS B1_CNTD#12] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#3))#6, count(ss_list_price#3)#7, count(ss_list_price#3)#10] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#3))#6 / 100.0) as decimal(11,6)) AS B1_LP#11, count(ss_list_price#3)#7 AS B1_CNT#12, count(ss_list_price#3)#10 AS B1_CNTD#13] (111) Scan parquet -Output [4]: [ss_quantity#13, ss_wholesale_cost#14, ss_list_price#15, ss_coupon_amt#16] +Output [4]: [ss_quantity#14, ss_wholesale_cost#15, ss_list_price#16, ss_coupon_amt#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,6), LessThanOrEqual(ss_quantity,10), Or(Or(And(GreaterThanOrEqual(ss_list_price,90.00),LessThanOrEqual(ss_list_price,100.00)),And(GreaterThanOrEqual(ss_coupon_amt,2323.00),LessThanOrEqual(ss_coupon_amt,3323.00))),And(GreaterThanOrEqual(ss_wholesale_cost,31.00),LessThanOrEqual(ss_wholesale_cost,51.00)))] ReadSchema: struct (112) Filter -Input [4]: [ss_quantity#13, ss_wholesale_cost#14, ss_list_price#15, ss_coupon_amt#16] -Condition : (((isnotnull(ss_quantity#13) AND (ss_quantity#13 >= 6)) AND (ss_quantity#13 <= 10)) AND ((((ss_list_price#15 >= 90.00) AND (ss_list_price#15 <= 100.00)) OR ((ss_coupon_amt#16 >= 2323.00) AND (ss_coupon_amt#16 <= 3323.00))) OR ((ss_wholesale_cost#14 >= 31.00) AND (ss_wholesale_cost#14 <= 51.00)))) +Input [4]: [ss_quantity#14, ss_wholesale_cost#15, ss_list_price#16, ss_coupon_amt#17] +Condition : (((isnotnull(ss_quantity#14) AND (ss_quantity#14 >= 6)) AND (ss_quantity#14 <= 10)) AND ((((ss_list_price#16 >= 90.00) AND (ss_list_price#16 <= 100.00)) OR ((ss_coupon_amt#17 >= 2323.00) AND (ss_coupon_amt#17 <= 3323.00))) OR ((ss_wholesale_cost#15 >= 31.00) AND (ss_wholesale_cost#15 <= 51.00)))) (113) Project -Output [1]: [ss_list_price#15] -Input [4]: [ss_quantity#13, ss_wholesale_cost#14, ss_list_price#15, ss_coupon_amt#16] +Output [1]: [ss_list_price#16] +Input [4]: [ss_quantity#14, ss_wholesale_cost#15, ss_list_price#16, ss_coupon_amt#17] (114) HashAggregate -Input [1]: [ss_list_price#15] -Keys [1]: [ss_list_price#15] -Functions [2]: [partial_avg(UnscaledValue(ss_list_price#15)), partial_count(ss_list_price#15)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19] -Results [4]: [ss_list_price#15, sum#72, count#73, count#74] +Input [1]: [ss_list_price#16] +Keys [1]: [ss_list_price#16] +Functions [2]: [partial_avg(UnscaledValue(ss_list_price#16)), partial_count(ss_list_price#16)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20] +Results [4]: [ss_list_price#16, sum#73, count#74, count#75] (115) Exchange -Input [4]: [ss_list_price#15, sum#72, count#73, count#74] -Arguments: hashpartitioning(ss_list_price#15, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [4]: [ss_list_price#16, sum#73, count#74, count#75] +Arguments: hashpartitioning(ss_list_price#16, 100), ENSURE_REQUIREMENTS, [plan_id=15] (116) HashAggregate -Input [4]: [ss_list_price#15, sum#72, count#73, count#74] -Keys [1]: [ss_list_price#15] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#15)), merge_count(ss_list_price#15)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19] -Results [4]: [ss_list_price#15, sum#72, count#73, count#74] +Input [4]: [ss_list_price#16, sum#73, count#74, count#75] +Keys [1]: [ss_list_price#16] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#16)), merge_count(ss_list_price#16)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20] +Results [4]: [ss_list_price#16, sum#73, count#74, count#75] (117) HashAggregate -Input [4]: [ss_list_price#15, sum#72, count#73, count#74] +Input [4]: [ss_list_price#16, sum#73, count#74, count#75] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#15)), merge_count(ss_list_price#15), partial_count(distinct ss_list_price#15)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] -Results [4]: [sum#72, count#73, count#74, count#75] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#16)), merge_count(ss_list_price#16), partial_count(distinct ss_list_price#16)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] +Results [4]: [sum#73, count#74, count#75, count#76] (118) Exchange -Input [4]: [sum#72, count#73, count#74, count#75] +Input [4]: [sum#73, count#74, count#75, count#76] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=16] (119) HashAggregate -Input [4]: [sum#72, count#73, count#74, count#75] +Input [4]: [sum#73, count#74, count#75, count#76] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#15)), count(ss_list_price#15), count(distinct ss_list_price#15)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#15))#18, count(ss_list_price#15)#19, count(ss_list_price#15)#20] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#15))#18 / 100.0) as decimal(11,6)) AS B2_LP#21, count(ss_list_price#15)#19 AS B2_CNT#22, count(ss_list_price#15)#20 AS B2_CNTD#23] +Functions [3]: [avg(UnscaledValue(ss_list_price#16)), count(ss_list_price#16), count(distinct ss_list_price#16)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#16))#19, count(ss_list_price#16)#20, count(ss_list_price#16)#21] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#16))#19 / 100.0) as decimal(11,6)) AS B2_LP#22, count(ss_list_price#16)#20 AS B2_CNT#23, count(ss_list_price#16)#21 AS B2_CNTD#24] (120) CartesianProduct Join type: Inner Join condition: None (121) Scan parquet -Output [4]: [ss_quantity#24, ss_wholesale_cost#25, ss_list_price#26, ss_coupon_amt#27] +Output [4]: [ss_quantity#25, ss_wholesale_cost#26, ss_list_price#27, ss_coupon_amt#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,11), LessThanOrEqual(ss_quantity,15), Or(Or(And(GreaterThanOrEqual(ss_list_price,142.00),LessThanOrEqual(ss_list_price,152.00)),And(GreaterThanOrEqual(ss_coupon_amt,12214.00),LessThanOrEqual(ss_coupon_amt,13214.00))),And(GreaterThanOrEqual(ss_wholesale_cost,79.00),LessThanOrEqual(ss_wholesale_cost,99.00)))] ReadSchema: struct (122) Filter -Input [4]: [ss_quantity#24, ss_wholesale_cost#25, ss_list_price#26, ss_coupon_amt#27] -Condition : (((isnotnull(ss_quantity#24) AND (ss_quantity#24 >= 11)) AND (ss_quantity#24 <= 15)) AND ((((ss_list_price#26 >= 142.00) AND (ss_list_price#26 <= 152.00)) OR ((ss_coupon_amt#27 >= 12214.00) AND (ss_coupon_amt#27 <= 13214.00))) OR ((ss_wholesale_cost#25 >= 79.00) AND (ss_wholesale_cost#25 <= 99.00)))) +Input [4]: [ss_quantity#25, ss_wholesale_cost#26, ss_list_price#27, ss_coupon_amt#28] +Condition : (((isnotnull(ss_quantity#25) AND (ss_quantity#25 >= 11)) AND (ss_quantity#25 <= 15)) AND ((((ss_list_price#27 >= 142.00) AND (ss_list_price#27 <= 152.00)) OR ((ss_coupon_amt#28 >= 12214.00) AND (ss_coupon_amt#28 <= 13214.00))) OR ((ss_wholesale_cost#26 >= 79.00) AND (ss_wholesale_cost#26 <= 99.00)))) (123) Project -Output [1]: [ss_list_price#26] -Input [4]: [ss_quantity#24, ss_wholesale_cost#25, ss_list_price#26, ss_coupon_amt#27] +Output [1]: [ss_list_price#27] +Input [4]: [ss_quantity#25, ss_wholesale_cost#26, ss_list_price#27, ss_coupon_amt#28] (124) HashAggregate -Input [1]: [ss_list_price#26] -Keys [1]: [ss_list_price#26] -Functions [2]: [partial_avg(UnscaledValue(ss_list_price#26)), partial_count(ss_list_price#26)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30] -Results [4]: [ss_list_price#26, sum#76, count#77, count#78] +Input [1]: [ss_list_price#27] +Keys [1]: [ss_list_price#27] +Functions [2]: [partial_avg(UnscaledValue(ss_list_price#27)), partial_count(ss_list_price#27)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31] +Results [4]: [ss_list_price#27, sum#77, count#78, count#79] (125) Exchange -Input [4]: [ss_list_price#26, sum#76, count#77, count#78] -Arguments: hashpartitioning(ss_list_price#26, 100), ENSURE_REQUIREMENTS, [plan_id=17] +Input [4]: [ss_list_price#27, sum#77, count#78, count#79] +Arguments: hashpartitioning(ss_list_price#27, 100), ENSURE_REQUIREMENTS, [plan_id=17] (126) HashAggregate -Input [4]: [ss_list_price#26, sum#76, count#77, count#78] -Keys [1]: [ss_list_price#26] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#26)), merge_count(ss_list_price#26)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30] -Results [4]: [ss_list_price#26, sum#76, count#77, count#78] +Input [4]: [ss_list_price#27, sum#77, count#78, count#79] +Keys [1]: [ss_list_price#27] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#27)), merge_count(ss_list_price#27)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31] +Results [4]: [ss_list_price#27, sum#77, count#78, count#79] (127) HashAggregate -Input [4]: [ss_list_price#26, sum#76, count#77, count#78] +Input [4]: [ss_list_price#27, sum#77, count#78, count#79] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#26)), merge_count(ss_list_price#26), partial_count(distinct ss_list_price#26)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] -Results [4]: [sum#76, count#77, count#78, count#79] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#27)), merge_count(ss_list_price#27), partial_count(distinct ss_list_price#27)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] +Results [4]: [sum#77, count#78, count#79, count#80] (128) Exchange -Input [4]: [sum#76, count#77, count#78, count#79] +Input [4]: [sum#77, count#78, count#79, count#80] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=18] (129) HashAggregate -Input [4]: [sum#76, count#77, count#78, count#79] +Input [4]: [sum#77, count#78, count#79, count#80] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#26)), count(ss_list_price#26), count(distinct ss_list_price#26)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#26))#29, count(ss_list_price#26)#30, count(ss_list_price#26)#31] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#26))#29 / 100.0) as decimal(11,6)) AS B3_LP#32, count(ss_list_price#26)#30 AS B3_CNT#33, count(ss_list_price#26)#31 AS B3_CNTD#34] +Functions [3]: [avg(UnscaledValue(ss_list_price#27)), count(ss_list_price#27), count(distinct ss_list_price#27)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#27))#30, count(ss_list_price#27)#31, count(ss_list_price#27)#32] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#27))#30 / 100.0) as decimal(11,6)) AS B3_LP#33, count(ss_list_price#27)#31 AS B3_CNT#34, count(ss_list_price#27)#32 AS B3_CNTD#35] (130) CartesianProduct Join type: Inner Join condition: None (131) Scan parquet -Output [4]: [ss_quantity#35, ss_wholesale_cost#36, ss_list_price#37, ss_coupon_amt#38] +Output [4]: [ss_quantity#36, ss_wholesale_cost#37, ss_list_price#38, ss_coupon_amt#39] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,16), LessThanOrEqual(ss_quantity,20), Or(Or(And(GreaterThanOrEqual(ss_list_price,135.00),LessThanOrEqual(ss_list_price,145.00)),And(GreaterThanOrEqual(ss_coupon_amt,6071.00),LessThanOrEqual(ss_coupon_amt,7071.00))),And(GreaterThanOrEqual(ss_wholesale_cost,38.00),LessThanOrEqual(ss_wholesale_cost,58.00)))] ReadSchema: struct (132) Filter -Input [4]: [ss_quantity#35, ss_wholesale_cost#36, ss_list_price#37, ss_coupon_amt#38] -Condition : (((isnotnull(ss_quantity#35) AND (ss_quantity#35 >= 16)) AND (ss_quantity#35 <= 20)) AND ((((ss_list_price#37 >= 135.00) AND (ss_list_price#37 <= 145.00)) OR ((ss_coupon_amt#38 >= 6071.00) AND (ss_coupon_amt#38 <= 7071.00))) OR ((ss_wholesale_cost#36 >= 38.00) AND (ss_wholesale_cost#36 <= 58.00)))) +Input [4]: [ss_quantity#36, ss_wholesale_cost#37, ss_list_price#38, ss_coupon_amt#39] +Condition : (((isnotnull(ss_quantity#36) AND (ss_quantity#36 >= 16)) AND (ss_quantity#36 <= 20)) AND ((((ss_list_price#38 >= 135.00) AND (ss_list_price#38 <= 145.00)) OR ((ss_coupon_amt#39 >= 6071.00) AND (ss_coupon_amt#39 <= 7071.00))) OR ((ss_wholesale_cost#37 >= 38.00) AND (ss_wholesale_cost#37 <= 58.00)))) (133) Project -Output [1]: [ss_list_price#37] -Input [4]: [ss_quantity#35, ss_wholesale_cost#36, ss_list_price#37, ss_coupon_amt#38] +Output [1]: [ss_list_price#38] +Input [4]: [ss_quantity#36, ss_wholesale_cost#37, ss_list_price#38, ss_coupon_amt#39] (134) HashAggregate -Input [1]: [ss_list_price#37] -Keys [1]: [ss_list_price#37] -Functions [2]: [partial_avg(UnscaledValue(ss_list_price#37)), partial_count(ss_list_price#37)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41] -Results [4]: [ss_list_price#37, sum#80, count#81, count#82] +Input [1]: [ss_list_price#38] +Keys [1]: [ss_list_price#38] +Functions [2]: [partial_avg(UnscaledValue(ss_list_price#38)), partial_count(ss_list_price#38)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42] +Results [4]: [ss_list_price#38, sum#81, count#82, count#83] (135) Exchange -Input [4]: [ss_list_price#37, sum#80, count#81, count#82] -Arguments: hashpartitioning(ss_list_price#37, 100), ENSURE_REQUIREMENTS, [plan_id=19] +Input [4]: [ss_list_price#38, sum#81, count#82, count#83] +Arguments: hashpartitioning(ss_list_price#38, 100), ENSURE_REQUIREMENTS, [plan_id=19] (136) HashAggregate -Input [4]: [ss_list_price#37, sum#80, count#81, count#82] -Keys [1]: [ss_list_price#37] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#37)), merge_count(ss_list_price#37)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41] -Results [4]: [ss_list_price#37, sum#80, count#81, count#82] +Input [4]: [ss_list_price#38, sum#81, count#82, count#83] +Keys [1]: [ss_list_price#38] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#38)), merge_count(ss_list_price#38)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42] +Results [4]: [ss_list_price#38, sum#81, count#82, count#83] (137) HashAggregate -Input [4]: [ss_list_price#37, sum#80, count#81, count#82] +Input [4]: [ss_list_price#38, sum#81, count#82, count#83] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#37)), merge_count(ss_list_price#37), partial_count(distinct ss_list_price#37)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] -Results [4]: [sum#80, count#81, count#82, count#83] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#38)), merge_count(ss_list_price#38), partial_count(distinct ss_list_price#38)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] +Results [4]: [sum#81, count#82, count#83, count#84] (138) Exchange -Input [4]: [sum#80, count#81, count#82, count#83] +Input [4]: [sum#81, count#82, count#83, count#84] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=20] (139) HashAggregate -Input [4]: [sum#80, count#81, count#82, count#83] +Input [4]: [sum#81, count#82, count#83, count#84] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#37)), count(ss_list_price#37), count(distinct ss_list_price#37)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#37))#40, count(ss_list_price#37)#41, count(ss_list_price#37)#42] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#37))#40 / 100.0) as decimal(11,6)) AS B4_LP#43, count(ss_list_price#37)#41 AS B4_CNT#44, count(ss_list_price#37)#42 AS B4_CNTD#45] +Functions [3]: [avg(UnscaledValue(ss_list_price#38)), count(ss_list_price#38), count(distinct ss_list_price#38)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#38))#41, count(ss_list_price#38)#42, count(ss_list_price#38)#43] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#38))#41 / 100.0) as decimal(11,6)) AS B4_LP#44, count(ss_list_price#38)#42 AS B4_CNT#45, count(ss_list_price#38)#43 AS B4_CNTD#46] (140) CartesianProduct Join type: Inner Join condition: None (141) Scan parquet -Output [4]: [ss_quantity#46, ss_wholesale_cost#47, ss_list_price#48, ss_coupon_amt#49] +Output [4]: [ss_quantity#47, ss_wholesale_cost#48, ss_list_price#49, ss_coupon_amt#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,21), LessThanOrEqual(ss_quantity,25), Or(Or(And(GreaterThanOrEqual(ss_list_price,122.00),LessThanOrEqual(ss_list_price,132.00)),And(GreaterThanOrEqual(ss_coupon_amt,836.00),LessThanOrEqual(ss_coupon_amt,1836.00))),And(GreaterThanOrEqual(ss_wholesale_cost,17.00),LessThanOrEqual(ss_wholesale_cost,37.00)))] ReadSchema: struct (142) Filter -Input [4]: [ss_quantity#46, ss_wholesale_cost#47, ss_list_price#48, ss_coupon_amt#49] -Condition : (((isnotnull(ss_quantity#46) AND (ss_quantity#46 >= 21)) AND (ss_quantity#46 <= 25)) AND ((((ss_list_price#48 >= 122.00) AND (ss_list_price#48 <= 132.00)) OR ((ss_coupon_amt#49 >= 836.00) AND (ss_coupon_amt#49 <= 1836.00))) OR ((ss_wholesale_cost#47 >= 17.00) AND (ss_wholesale_cost#47 <= 37.00)))) +Input [4]: [ss_quantity#47, ss_wholesale_cost#48, ss_list_price#49, ss_coupon_amt#50] +Condition : (((isnotnull(ss_quantity#47) AND (ss_quantity#47 >= 21)) AND (ss_quantity#47 <= 25)) AND ((((ss_list_price#49 >= 122.00) AND (ss_list_price#49 <= 132.00)) OR ((ss_coupon_amt#50 >= 836.00) AND (ss_coupon_amt#50 <= 1836.00))) OR ((ss_wholesale_cost#48 >= 17.00) AND (ss_wholesale_cost#48 <= 37.00)))) (143) Project -Output [1]: [ss_list_price#48] -Input [4]: [ss_quantity#46, ss_wholesale_cost#47, ss_list_price#48, ss_coupon_amt#49] +Output [1]: [ss_list_price#49] +Input [4]: [ss_quantity#47, ss_wholesale_cost#48, ss_list_price#49, ss_coupon_amt#50] (144) HashAggregate -Input [1]: [ss_list_price#48] -Keys [1]: [ss_list_price#48] -Functions [2]: [partial_avg(UnscaledValue(ss_list_price#48)), partial_count(ss_list_price#48)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52] -Results [4]: [ss_list_price#48, sum#84, count#85, count#86] +Input [1]: [ss_list_price#49] +Keys [1]: [ss_list_price#49] +Functions [2]: [partial_avg(UnscaledValue(ss_list_price#49)), partial_count(ss_list_price#49)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53] +Results [4]: [ss_list_price#49, sum#85, count#86, count#87] (145) Exchange -Input [4]: [ss_list_price#48, sum#84, count#85, count#86] -Arguments: hashpartitioning(ss_list_price#48, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [4]: [ss_list_price#49, sum#85, count#86, count#87] +Arguments: hashpartitioning(ss_list_price#49, 100), ENSURE_REQUIREMENTS, [plan_id=21] (146) HashAggregate -Input [4]: [ss_list_price#48, sum#84, count#85, count#86] -Keys [1]: [ss_list_price#48] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#48)), merge_count(ss_list_price#48)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52] -Results [4]: [ss_list_price#48, sum#84, count#85, count#86] +Input [4]: [ss_list_price#49, sum#85, count#86, count#87] +Keys [1]: [ss_list_price#49] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#49)), merge_count(ss_list_price#49)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53] +Results [4]: [ss_list_price#49, sum#85, count#86, count#87] (147) HashAggregate -Input [4]: [ss_list_price#48, sum#84, count#85, count#86] +Input [4]: [ss_list_price#49, sum#85, count#86, count#87] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#48)), merge_count(ss_list_price#48), partial_count(distinct ss_list_price#48)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] -Results [4]: [sum#84, count#85, count#86, count#87] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#49)), merge_count(ss_list_price#49), partial_count(distinct ss_list_price#49)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] +Results [4]: [sum#85, count#86, count#87, count#88] (148) Exchange -Input [4]: [sum#84, count#85, count#86, count#87] +Input [4]: [sum#85, count#86, count#87, count#88] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=22] (149) HashAggregate -Input [4]: [sum#84, count#85, count#86, count#87] +Input [4]: [sum#85, count#86, count#87, count#88] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#48)), count(ss_list_price#48), count(distinct ss_list_price#48)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#48))#51, count(ss_list_price#48)#52, count(ss_list_price#48)#53] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#48))#51 / 100.0) as decimal(11,6)) AS B5_LP#54, count(ss_list_price#48)#52 AS B5_CNT#55, count(ss_list_price#48)#53 AS B5_CNTD#56] +Functions [3]: [avg(UnscaledValue(ss_list_price#49)), count(ss_list_price#49), count(distinct ss_list_price#49)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#49))#52, count(ss_list_price#49)#53, count(ss_list_price#49)#54] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#49))#52 / 100.0) as decimal(11,6)) AS B5_LP#55, count(ss_list_price#49)#53 AS B5_CNT#56, count(ss_list_price#49)#54 AS B5_CNTD#57] (150) CartesianProduct Join type: Inner Join condition: None (151) Scan parquet -Output [4]: [ss_quantity#57, ss_wholesale_cost#58, ss_list_price#59, ss_coupon_amt#60] +Output [4]: [ss_quantity#58, ss_wholesale_cost#59, ss_list_price#60, ss_coupon_amt#61] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,26), LessThanOrEqual(ss_quantity,30), Or(Or(And(GreaterThanOrEqual(ss_list_price,154.00),LessThanOrEqual(ss_list_price,164.00)),And(GreaterThanOrEqual(ss_coupon_amt,7326.00),LessThanOrEqual(ss_coupon_amt,8326.00))),And(GreaterThanOrEqual(ss_wholesale_cost,7.00),LessThanOrEqual(ss_wholesale_cost,27.00)))] ReadSchema: struct (152) Filter -Input [4]: [ss_quantity#57, ss_wholesale_cost#58, ss_list_price#59, ss_coupon_amt#60] -Condition : (((isnotnull(ss_quantity#57) AND (ss_quantity#57 >= 26)) AND (ss_quantity#57 <= 30)) AND ((((ss_list_price#59 >= 154.00) AND (ss_list_price#59 <= 164.00)) OR ((ss_coupon_amt#60 >= 7326.00) AND (ss_coupon_amt#60 <= 8326.00))) OR ((ss_wholesale_cost#58 >= 7.00) AND (ss_wholesale_cost#58 <= 27.00)))) +Input [4]: [ss_quantity#58, ss_wholesale_cost#59, ss_list_price#60, ss_coupon_amt#61] +Condition : (((isnotnull(ss_quantity#58) AND (ss_quantity#58 >= 26)) AND (ss_quantity#58 <= 30)) AND ((((ss_list_price#60 >= 154.00) AND (ss_list_price#60 <= 164.00)) OR ((ss_coupon_amt#61 >= 7326.00) AND (ss_coupon_amt#61 <= 8326.00))) OR ((ss_wholesale_cost#59 >= 7.00) AND (ss_wholesale_cost#59 <= 27.00)))) (153) Project -Output [1]: [ss_list_price#59] -Input [4]: [ss_quantity#57, ss_wholesale_cost#58, ss_list_price#59, ss_coupon_amt#60] +Output [1]: [ss_list_price#60] +Input [4]: [ss_quantity#58, ss_wholesale_cost#59, ss_list_price#60, ss_coupon_amt#61] (154) HashAggregate -Input [1]: [ss_list_price#59] -Keys [1]: [ss_list_price#59] -Functions [2]: [partial_avg(UnscaledValue(ss_list_price#59)), partial_count(ss_list_price#59)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63] -Results [4]: [ss_list_price#59, sum#88, count#89, count#90] +Input [1]: [ss_list_price#60] +Keys [1]: [ss_list_price#60] +Functions [2]: [partial_avg(UnscaledValue(ss_list_price#60)), partial_count(ss_list_price#60)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64] +Results [4]: [ss_list_price#60, sum#89, count#90, count#91] (155) Exchange -Input [4]: [ss_list_price#59, sum#88, count#89, count#90] -Arguments: hashpartitioning(ss_list_price#59, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [4]: [ss_list_price#60, sum#89, count#90, count#91] +Arguments: hashpartitioning(ss_list_price#60, 100), ENSURE_REQUIREMENTS, [plan_id=23] (156) HashAggregate -Input [4]: [ss_list_price#59, sum#88, count#89, count#90] -Keys [1]: [ss_list_price#59] -Functions [2]: [merge_avg(UnscaledValue(ss_list_price#59)), merge_count(ss_list_price#59)] -Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63] -Results [4]: [ss_list_price#59, sum#88, count#89, count#90] +Input [4]: [ss_list_price#60, sum#89, count#90, count#91] +Keys [1]: [ss_list_price#60] +Functions [2]: [merge_avg(UnscaledValue(ss_list_price#60)), merge_count(ss_list_price#60)] +Aggregate Attributes [2]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64] +Results [4]: [ss_list_price#60, sum#89, count#90, count#91] (157) HashAggregate -Input [4]: [ss_list_price#59, sum#88, count#89, count#90] +Input [4]: [ss_list_price#60, sum#89, count#90, count#91] Keys: [] -Functions [3]: [merge_avg(UnscaledValue(ss_list_price#59)), merge_count(ss_list_price#59), partial_count(distinct ss_list_price#59)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] -Results [4]: [sum#88, count#89, count#90, count#91] +Functions [3]: [merge_avg(UnscaledValue(ss_list_price#60)), merge_count(ss_list_price#60), partial_count(distinct ss_list_price#60)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] +Results [4]: [sum#89, count#90, count#91, count#92] (158) Exchange -Input [4]: [sum#88, count#89, count#90, count#91] +Input [4]: [sum#89, count#90, count#91, count#92] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=24] (159) HashAggregate -Input [4]: [sum#88, count#89, count#90, count#91] +Input [4]: [sum#89, count#90, count#91, count#92] Keys: [] -Functions [3]: [avg(UnscaledValue(ss_list_price#59)), count(ss_list_price#59), count(distinct ss_list_price#59)] -Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#59))#62, count(ss_list_price#59)#63, count(ss_list_price#59)#64] -Results [3]: [cast((avg(UnscaledValue(ss_list_price#59))#62 / 100.0) as decimal(11,6)) AS B6_LP#65, count(ss_list_price#59)#63 AS B6_CNT#66, count(ss_list_price#59)#64 AS B6_CNTD#67] +Functions [3]: [avg(UnscaledValue(ss_list_price#60)), count(ss_list_price#60), count(distinct ss_list_price#60)] +Aggregate Attributes [3]: [avg(UnscaledValue(ss_list_price#60))#63, count(ss_list_price#60)#64, count(ss_list_price#60)#65] +Results [3]: [cast((avg(UnscaledValue(ss_list_price#60))#63 / 100.0) as decimal(11,6)) AS B6_LP#66, count(ss_list_price#60)#64 AS B6_CNT#67, count(ss_list_price#60)#65 AS B6_CNTD#68] (160) CartesianProduct Join type: Inner Join condition: None (161) AdaptiveSparkPlan -Output [18]: [B1_LP#10, B1_CNT#11, B1_CNTD#12, B2_LP#21, B2_CNT#22, B2_CNTD#23, B3_LP#32, B3_CNT#33, B3_CNTD#34, B4_LP#43, B4_CNT#44, B4_CNTD#45, B5_LP#54, B5_CNT#55, B5_CNTD#56, B6_LP#65, B6_CNT#66, B6_CNTD#67] +Output [18]: [B1_LP#11, B1_CNT#12, B1_CNTD#13, B2_LP#22, B2_CNT#23, B2_CNTD#24, B3_LP#33, B3_CNT#34, B3_CNTD#35, B4_LP#44, B4_CNT#45, B4_CNTD#46, B5_LP#55, B5_CNT#56, B5_CNTD#57, B6_LP#66, B6_CNT#67, B6_CNTD#68] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q29.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q29.txt index 3029e7a5f..6d7aa1d52 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q29.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q29.txt @@ -660,25 +660,25 @@ Input [7]: [ss_quantity#6, sr_return_quantity#11, cs_quantity#15, s_store_id#25, Keys [4]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26] Functions [3]: [partial_sum(ss_quantity#6), partial_sum(sr_return_quantity#11), partial_sum(cs_quantity#15)] Aggregate Attributes [3]: [sum#30, sum#31, sum#32] -Results [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Results [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] (113) NativeShuffleExchange -Input [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Input [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] Arguments: hashpartitioning(i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, 100), ENSURE_REQUIREMENTS, [plan_id=15] (114) ShuffleQueryStage -Output [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Output [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] Arguments: X (115) AQEShuffleRead -Input [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Input [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] Arguments: coalesced (116) InputAdapter -Input [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Input [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] (117) NativeHashAggregate -Input [5]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33#33] +Input [7]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26, #33, #33, #33] Keys [4]: [i_item_id#28, i_item_desc#29, s_store_id#25, s_store_name#26] Functions [3]: [sum(ss_quantity#6), sum(sr_return_quantity#11), sum(cs_quantity#15)] Aggregate Attributes [3]: [sum(ss_quantity#6)#34, sum(sr_return_quantity#11)#35, sum(cs_quantity#15)#36] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q3.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q3.txt index 1e1c2ada6..085e6b277 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q3.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q3.txt @@ -230,25 +230,25 @@ Input [4]: [d_year#2, i_brand#9, i_brand_id#8, _c3#11] Keys [3]: [d_year#2, i_brand#9, i_brand_id#8] Functions [1]: [partial_sum(_c3#11)] Aggregate Attributes [1]: [sum#12] -Results [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Results [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] (38) NativeShuffleExchange -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: hashpartitioning(d_year#2, i_brand#9, i_brand_id#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Output [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: X (40) AQEShuffleRead -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: coalesced (41) InputAdapter -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] (42) NativeHashAggregate -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Keys [3]: [d_year#2, i_brand#9, i_brand_id#8] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#6))#14] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt index aef8ca2ee..903eec46f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt @@ -359,25 +359,25 @@ Input [3]: [wr_returning_customer_sk#2, ca_state#8, _c2#9] Keys [2]: [wr_returning_customer_sk#2, ca_state#8] Functions [1]: [partial_sum(_c2#9)] Aggregate Attributes [1]: [sum#10] -Results [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Results [3]: [wr_returning_customer_sk#2, ca_state#8, #11] (37) NativeShuffleExchange -Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11] Arguments: hashpartitioning(wr_returning_customer_sk#2, ca_state#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Output [3]: [wr_returning_customer_sk#2, ca_state#8, #11] Arguments: X (39) AQEShuffleRead -Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11] Arguments: coalesced (40) InputAdapter -Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11] (41) NativeHashAggregate -Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, #11] Keys [2]: [wr_returning_customer_sk#2, ca_state#8] Functions [1]: [sum(UnscaledValue(wr_return_amt#4))] Aggregate Attributes [1]: [sum(UnscaledValue(wr_return_amt#4))#12] @@ -536,25 +536,25 @@ Input [3]: [wr_returning_customer_sk#17, ca_state#22, _c2#23] Keys [2]: [wr_returning_customer_sk#17, ca_state#22] Functions [1]: [partial_sum(_c2#23)] Aggregate Attributes [1]: [sum#24] -Results [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Results [3]: [wr_returning_customer_sk#17, ca_state#22, #11] (80) NativeShuffleExchange -Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11] Arguments: hashpartitioning(wr_returning_customer_sk#17, ca_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=9] (81) ShuffleQueryStage -Output [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Output [3]: [wr_returning_customer_sk#17, ca_state#22, #11] Arguments: X (82) AQEShuffleRead -Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11] Arguments: coalesced (83) InputAdapter -Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11] (84) NativeHashAggregate -Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, #11] Keys [2]: [wr_returning_customer_sk#17, ca_state#22] Functions [1]: [sum(UnscaledValue(wr_return_amt#19))] Aggregate Attributes [1]: [sum(UnscaledValue(wr_return_amt#19))#12] @@ -569,51 +569,51 @@ Input [2]: [ctr_state#25, ctr_total_return#26] Keys [1]: [ctr_state#25] Functions [1]: [partial_avg(ctr_total_return#26)] Aggregate Attributes [2]: [sum#27, count#28] -Results [2]: [ctr_state#25, #11#11] +Results [3]: [ctr_state#25, #29, #11] (87) NativeShuffleExchange -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Arguments: hashpartitioning(ctr_state#25, 100), ENSURE_REQUIREMENTS, [plan_id=10] (88) ShuffleQueryStage -Output [2]: [ctr_state#25, #11#11] +Output [3]: [ctr_state#25, #29, #11] Arguments: X (89) AQEShuffleRead -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Arguments: coalesced (90) InputAdapter -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] (91) NativeHashAggregate -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Keys [1]: [ctr_state#25] Functions [1]: [avg(ctr_total_return#26)] -Aggregate Attributes [1]: [avg(ctr_total_return#26)#29] -Results [2]: [ctr_state#25, avg(ctr_total_return#26)#29] +Aggregate Attributes [1]: [avg(ctr_total_return#26)#30] +Results [2]: [ctr_state#25, avg(ctr_total_return#26)#30] (92) NativeProject -Output [2]: [(avg(ctr_total_return#26)#29 * 1.2) AS (avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Input [2]: [ctr_state#25, avg(ctr_total_return#26)#29] +Output [2]: [(avg(ctr_total_return#26)#30 * 1.2) AS (avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Input [2]: [ctr_state#25, avg(ctr_total_return#26)#30] (93) NativeFilter -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#31) (94) NativeSort -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false (95) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner -Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) +Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#31) (96) Project [codegen id : X] Output [2]: [ctr_customer_sk#13, ctr_total_return#15] -Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (97) ConvertToNative Input [2]: [ctr_customer_sk#13, ctr_total_return#15] @@ -638,119 +638,119 @@ Input [2]: [ctr_customer_sk#13, ctr_total_return#15] Arguments: [ctr_customer_sk#13 ASC NULLS FIRST], false (186) Scan parquet -Output [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Output [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (104) InputAdapter -Input [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: [#31, #32, #33, #34, #35, #36, #37, #38, #39, #40, #41, #42, #43, #44] +Input [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: [#32, #33, #34, #35, #36, #37, #38, #39, #40, #41, #42, #43, #44, #45] (105) NativeFilter -Input [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] -Condition : (isnotnull(c_customer_sk#31) AND isnotnull(c_current_addr_sk#33)) +Input [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] +Condition : (isnotnull(c_customer_sk#32) AND isnotnull(c_current_addr_sk#34)) (106) NativeShuffleExchange -Input [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] -Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] +Arguments: hashpartitioning(c_customer_sk#32, 100), ENSURE_REQUIREMENTS, [plan_id=12] (107) ShuffleQueryStage -Output [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Output [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] Arguments: X (108) AQEShuffleRead -Input [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Input [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] Arguments: coalesced (109) InputAdapter -Input [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Input [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] (110) NativeSort -Input [14]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] -Arguments: [c_customer_sk#31 ASC NULLS FIRST], false +Input [14]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] +Arguments: [c_customer_sk#32 ASC NULLS FIRST], false (111) NativeSortMergeJoin Left keys [1]: [ctr_customer_sk#13] -Right keys [1]: [c_customer_sk#31] +Right keys [1]: [c_customer_sk#32] Join type: Inner Join condition: None (112) NativeProject -Output [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Input [16]: [ctr_customer_sk#13, ctr_total_return#15, #31#31, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Output [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Input [16]: [ctr_customer_sk#13, ctr_total_return#15, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45] (113) NativeShuffleExchange -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: hashpartitioning(c_current_addr_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: hashpartitioning(c_current_addr_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=13] (114) ShuffleQueryStage -Output [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Output [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] Arguments: X (115) AQEShuffleRead -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] Arguments: coalesced (116) InputAdapter -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] (117) NativeSort -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: [c_current_addr_sk#33 ASC NULLS FIRST], false +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: [c_current_addr_sk#34 ASC NULLS FIRST], false (194) Scan parquet -Output [2]: [ca_address_sk#45, ca_state#46] +Output [2]: [ca_address_sk#46, ca_state#47] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_state), EqualTo(ca_state,GA), IsNotNull(ca_address_sk)] ReadSchema: struct (119) InputAdapter -Input [2]: [ca_address_sk#45, ca_state#46] -Arguments: [#45, #46] +Input [2]: [ca_address_sk#46, ca_state#47] +Arguments: [#46, #47] (120) NativeFilter -Input [2]: [#45#45, #46#46] -Condition : ((isnotnull(ca_state#46) AND (ca_state#46 = GA)) AND isnotnull(ca_address_sk#45)) +Input [2]: [#46#46, #47#47] +Condition : ((isnotnull(ca_state#47) AND (ca_state#47 = GA)) AND isnotnull(ca_address_sk#46)) (121) NativeProject -Output [1]: [ca_address_sk#45] -Input [2]: [#45#45, #46#46] +Output [1]: [ca_address_sk#46] +Input [2]: [#46#46, #47#47] (122) NativeShuffleExchange -Input [1]: [ca_address_sk#45] -Arguments: hashpartitioning(ca_address_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [1]: [ca_address_sk#46] +Arguments: hashpartitioning(ca_address_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=14] (123) ShuffleQueryStage -Output [1]: [ca_address_sk#45] +Output [1]: [ca_address_sk#46] Arguments: X (124) AQEShuffleRead -Input [1]: [ca_address_sk#45] +Input [1]: [ca_address_sk#46] Arguments: coalesced (125) InputAdapter -Input [1]: [ca_address_sk#45] +Input [1]: [ca_address_sk#46] (126) NativeSort -Input [1]: [ca_address_sk#45] -Arguments: [ca_address_sk#45 ASC NULLS FIRST], false +Input [1]: [ca_address_sk#46] +Arguments: [ca_address_sk#46 ASC NULLS FIRST], false (127) NativeSortMergeJoin -Left keys [1]: [c_current_addr_sk#33] -Right keys [1]: [ca_address_sk#45] +Left keys [1]: [c_current_addr_sk#34] +Right keys [1]: [ca_address_sk#46] Join type: Inner Join condition: None (128) NativeProject -Output [13]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] -Input [15]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ca_address_sk#45] +Output [13]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] +Input [15]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ca_address_sk#46] (129) NativeTakeOrdered -Input [13]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] -Arguments: X, [c_customer_id#32 ASC NULLS FIRST, c_salutation#34 ASC NULLS FIRST, c_first_name#35 ASC NULLS FIRST, c_last_name#36 ASC NULLS FIRST, c_preferred_cust_flag#37 ASC NULLS FIRST, c_birth_day#38 ASC NULLS FIRST, c_birth_month#39 ASC NULLS FIRST, c_birth_year#40 ASC NULLS FIRST, c_birth_country#41 ASC NULLS FIRST, c_login#42 ASC NULLS FIRST, c_email_address#43 ASC NULLS FIRST, c_last_review_date_sk#44 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST] +Input [13]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] +Arguments: X, [c_customer_id#33 ASC NULLS FIRST, c_salutation#35 ASC NULLS FIRST, c_first_name#36 ASC NULLS FIRST, c_last_name#37 ASC NULLS FIRST, c_preferred_cust_flag#38 ASC NULLS FIRST, c_birth_day#39 ASC NULLS FIRST, c_birth_month#40 ASC NULLS FIRST, c_birth_year#41 ASC NULLS FIRST, c_birth_country#42 ASC NULLS FIRST, c_login#43 ASC NULLS FIRST, c_email_address#44 ASC NULLS FIRST, c_last_review_date_sk#45 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST] (130) Scan parquet Output [4]: [wr_returned_date_sk#1, wr_returning_customer_sk#2, wr_returning_addr_sk#3, wr_return_amt#4] @@ -846,14 +846,14 @@ Input [3]: [wr_returning_customer_sk#2, wr_return_amt#4, ca_state#8] Keys [2]: [wr_returning_customer_sk#2, ca_state#8] Functions [1]: [partial_sum(UnscaledValue(wr_return_amt#4))] Aggregate Attributes [1]: [sum#10] -Results [3]: [wr_returning_customer_sk#2, ca_state#8, sum#47] +Results [3]: [wr_returning_customer_sk#2, ca_state#8, sum#48] (150) Exchange -Input [3]: [wr_returning_customer_sk#2, ca_state#8, sum#47] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, sum#48] Arguments: hashpartitioning(wr_returning_customer_sk#2, ca_state#8, 100), ENSURE_REQUIREMENTS, [plan_id=19] (151) HashAggregate -Input [3]: [wr_returning_customer_sk#2, ca_state#8, sum#47] +Input [3]: [wr_returning_customer_sk#2, ca_state#8, sum#48] Keys [2]: [wr_returning_customer_sk#2, ca_state#8] Functions [1]: [sum(UnscaledValue(wr_return_amt#4))] Aggregate Attributes [1]: [sum(UnscaledValue(wr_return_amt#4))#12] @@ -891,19 +891,19 @@ Input [4]: [wr_returned_date_sk#16, wr_returning_customer_sk#17, wr_returning_ad Arguments: [wr_returned_date_sk#16 ASC NULLS FIRST], false, 0 (159) Scan parquet -Output [2]: [d_date_sk#20, d_year#48] +Output [2]: [d_date_sk#20, d_year#49] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)] ReadSchema: struct (160) Filter -Input [2]: [d_date_sk#20, d_year#48] -Condition : ((isnotnull(d_year#48) AND (d_year#48 = 2002)) AND isnotnull(d_date_sk#20)) +Input [2]: [d_date_sk#20, d_year#49] +Condition : ((isnotnull(d_year#49) AND (d_year#49 = 2002)) AND isnotnull(d_date_sk#20)) (161) Project Output [1]: [d_date_sk#20] -Input [2]: [d_date_sk#20, d_year#48] +Input [2]: [d_date_sk#20, d_year#49] (162) Exchange Input [1]: [d_date_sk#20] @@ -965,14 +965,14 @@ Input [3]: [wr_returning_customer_sk#17, wr_return_amt#19, ca_state#22] Keys [2]: [wr_returning_customer_sk#17, ca_state#22] Functions [1]: [partial_sum(UnscaledValue(wr_return_amt#19))] Aggregate Attributes [1]: [sum#24] -Results [3]: [wr_returning_customer_sk#17, ca_state#22, sum#49] +Results [3]: [wr_returning_customer_sk#17, ca_state#22, sum#50] (175) Exchange -Input [3]: [wr_returning_customer_sk#17, ca_state#22, sum#49] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, sum#50] Arguments: hashpartitioning(wr_returning_customer_sk#17, ca_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=25] (176) HashAggregate -Input [3]: [wr_returning_customer_sk#17, ca_state#22, sum#49] +Input [3]: [wr_returning_customer_sk#17, ca_state#22, sum#50] Keys [2]: [wr_returning_customer_sk#17, ca_state#22] Functions [1]: [sum(UnscaledValue(wr_return_amt#19))] Aggregate Attributes [1]: [sum(UnscaledValue(wr_return_amt#19))#12] @@ -983,36 +983,36 @@ Input [2]: [ctr_state#25, ctr_total_return#26] Keys [1]: [ctr_state#25] Functions [1]: [partial_avg(ctr_total_return#26)] Aggregate Attributes [2]: [sum#27, count#28] -Results [3]: [ctr_state#25, sum#50, count#51] +Results [3]: [ctr_state#25, sum#51, count#52] (178) Exchange -Input [3]: [ctr_state#25, sum#50, count#51] +Input [3]: [ctr_state#25, sum#51, count#52] Arguments: hashpartitioning(ctr_state#25, 100), ENSURE_REQUIREMENTS, [plan_id=26] (179) HashAggregate -Input [3]: [ctr_state#25, sum#50, count#51] +Input [3]: [ctr_state#25, sum#51, count#52] Keys [1]: [ctr_state#25] Functions [1]: [avg(ctr_total_return#26)] -Aggregate Attributes [1]: [avg(ctr_total_return#26)#29] -Results [2]: [(avg(ctr_total_return#26)#29 * 1.2) AS (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Aggregate Attributes [1]: [avg(ctr_total_return#26)#30] +Results [2]: [(avg(ctr_total_return#26)#30 * 1.2) AS (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (180) Filter -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#31) (181) Sort -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false, 0 (182) SortMergeJoin Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner -Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) +Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#31) (183) Project Output [2]: [ctr_customer_sk#13, ctr_total_return#15] -Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (184) Exchange Input [2]: [ctr_customer_sk#13, ctr_total_return#15] @@ -1023,80 +1023,80 @@ Input [2]: [ctr_customer_sk#13, ctr_total_return#15] Arguments: [ctr_customer_sk#13 ASC NULLS FIRST], false, 0 (186) Scan parquet -Output [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Output [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (187) Filter -Input [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Condition : (isnotnull(c_customer_sk#31) AND isnotnull(c_current_addr_sk#33)) +Input [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Condition : (isnotnull(c_customer_sk#32) AND isnotnull(c_current_addr_sk#34)) (188) Exchange -Input [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: hashpartitioning(c_customer_sk#32, 100), ENSURE_REQUIREMENTS, [plan_id=28] (189) Sort -Input [14]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: [c_customer_sk#31 ASC NULLS FIRST], false, 0 +Input [14]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: [c_customer_sk#32 ASC NULLS FIRST], false, 0 (190) SortMergeJoin Left keys [1]: [ctr_customer_sk#13] -Right keys [1]: [c_customer_sk#31] +Right keys [1]: [c_customer_sk#32] Join type: Inner Join condition: None (191) Project -Output [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Input [16]: [ctr_customer_sk#13, ctr_total_return#15, c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] +Output [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Input [16]: [ctr_customer_sk#13, ctr_total_return#15, c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] (192) Exchange -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: hashpartitioning(c_current_addr_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: hashpartitioning(c_current_addr_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=29] (193) Sort -Input [14]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44] -Arguments: [c_current_addr_sk#33 ASC NULLS FIRST], false, 0 +Input [14]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45] +Arguments: [c_current_addr_sk#34 ASC NULLS FIRST], false, 0 (194) Scan parquet -Output [2]: [ca_address_sk#45, ca_state#46] +Output [2]: [ca_address_sk#46, ca_state#47] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_state), EqualTo(ca_state,GA), IsNotNull(ca_address_sk)] ReadSchema: struct (195) Filter -Input [2]: [ca_address_sk#45, ca_state#46] -Condition : ((isnotnull(ca_state#46) AND (ca_state#46 = GA)) AND isnotnull(ca_address_sk#45)) +Input [2]: [ca_address_sk#46, ca_state#47] +Condition : ((isnotnull(ca_state#47) AND (ca_state#47 = GA)) AND isnotnull(ca_address_sk#46)) (196) Project -Output [1]: [ca_address_sk#45] -Input [2]: [ca_address_sk#45, ca_state#46] +Output [1]: [ca_address_sk#46] +Input [2]: [ca_address_sk#46, ca_state#47] (197) Exchange -Input [1]: [ca_address_sk#45] -Arguments: hashpartitioning(ca_address_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [1]: [ca_address_sk#46] +Arguments: hashpartitioning(ca_address_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=30] (198) Sort -Input [1]: [ca_address_sk#45] -Arguments: [ca_address_sk#45 ASC NULLS FIRST], false, 0 +Input [1]: [ca_address_sk#46] +Arguments: [ca_address_sk#46 ASC NULLS FIRST], false, 0 (199) SortMergeJoin -Left keys [1]: [c_current_addr_sk#33] -Right keys [1]: [ca_address_sk#45] +Left keys [1]: [c_current_addr_sk#34] +Right keys [1]: [ca_address_sk#46] Join type: Inner Join condition: None (200) Project -Output [13]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] -Input [15]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ca_address_sk#45] +Output [13]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] +Input [15]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ca_address_sk#46] (201) TakeOrderedAndProject -Input [13]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] -Arguments: X, [c_customer_id#32 ASC NULLS FIRST, c_salutation#34 ASC NULLS FIRST, c_first_name#35 ASC NULLS FIRST, c_last_name#36 ASC NULLS FIRST, c_preferred_cust_flag#37 ASC NULLS FIRST, c_birth_day#38 ASC NULLS FIRST, c_birth_month#39 ASC NULLS FIRST, c_birth_year#40 ASC NULLS FIRST, c_birth_country#41 ASC NULLS FIRST, c_login#42 ASC NULLS FIRST, c_email_address#43 ASC NULLS FIRST, c_last_review_date_sk#44 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST], [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] +Input [13]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] +Arguments: X, [c_customer_id#33 ASC NULLS FIRST, c_salutation#35 ASC NULLS FIRST, c_first_name#36 ASC NULLS FIRST, c_last_name#37 ASC NULLS FIRST, c_preferred_cust_flag#38 ASC NULLS FIRST, c_birth_day#39 ASC NULLS FIRST, c_birth_month#40 ASC NULLS FIRST, c_birth_year#41 ASC NULLS FIRST, c_birth_country#42 ASC NULLS FIRST, c_login#43 ASC NULLS FIRST, c_email_address#44 ASC NULLS FIRST, c_last_review_date_sk#45 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST], [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] (202) AdaptiveSparkPlan -Output [13]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, c_preferred_cust_flag#37, c_birth_day#38, c_birth_month#39, c_birth_year#40, c_birth_country#41, c_login#42, c_email_address#43, c_last_review_date_sk#44, ctr_total_return#15] +Output [13]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, c_preferred_cust_flag#38, c_birth_day#39, c_birth_month#40, c_birth_year#41, c_birth_country#42, c_login#43, c_email_address#44, c_last_review_date_sk#45, ctr_total_return#15] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt index d4188dece..6a00e14da 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt @@ -568,25 +568,25 @@ Input [4]: [ca_county#8, d_qoy#6, d_year#5, _c3#9] Keys [3]: [ca_county#8, d_qoy#6, d_year#5] Functions [1]: [partial_sum(_c3#9)] Aggregate Attributes [1]: [sum#10] -Results [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Results [4]: [ca_county#8, d_qoy#6, d_year#5, #11] (36) NativeShuffleExchange -Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11] Arguments: hashpartitioning(ca_county#8, d_qoy#6, d_year#5, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Output [4]: [ca_county#8, d_qoy#6, d_year#5, #11] Arguments: X (38) AQEShuffleRead -Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11] Arguments: coalesced (39) InputAdapter -Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11] (40) NativeHashAggregate -Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11#11] +Input [4]: [ca_county#8, d_qoy#6, d_year#5, #11] Keys [3]: [ca_county#8, d_qoy#6, d_year#5] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#3))#12] @@ -741,25 +741,25 @@ Input [4]: [ca_county#21, d_qoy#19, d_year#18, _c3#22] Keys [3]: [ca_county#21, d_qoy#19, d_year#18] Functions [1]: [partial_sum(_c3#22)] Aggregate Attributes [1]: [sum#23] -Results [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Results [4]: [ca_county#21, d_qoy#19, d_year#18, #11] (78) NativeShuffleExchange -Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11] Arguments: hashpartitioning(ca_county#21, d_qoy#19, d_year#18, 100), ENSURE_REQUIREMENTS, [plan_id=9] (79) ShuffleQueryStage -Output [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Output [4]: [ca_county#21, d_qoy#19, d_year#18, #11] Arguments: X (80) AQEShuffleRead -Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11] Arguments: coalesced (81) InputAdapter -Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11] (82) NativeHashAggregate -Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11#11] +Input [4]: [ca_county#21, d_qoy#19, d_year#18, #11] Keys [3]: [ca_county#21, d_qoy#19, d_year#18] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#16))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#16))#12] @@ -920,25 +920,25 @@ Input [4]: [ca_county#32, d_qoy#30, d_year#29, _c3#33] Keys [3]: [ca_county#32, d_qoy#30, d_year#29] Functions [1]: [partial_sum(_c3#33)] Aggregate Attributes [1]: [sum#34] -Results [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Results [4]: [ca_county#32, d_qoy#30, d_year#29, #11] (121) NativeShuffleExchange -Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11] Arguments: hashpartitioning(ca_county#32, d_qoy#30, d_year#29, 100), ENSURE_REQUIREMENTS, [plan_id=13] (122) ShuffleQueryStage -Output [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Output [4]: [ca_county#32, d_qoy#30, d_year#29, #11] Arguments: X (123) AQEShuffleRead -Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11] Arguments: coalesced (124) InputAdapter -Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11] (125) NativeHashAggregate -Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11#11] +Input [4]: [ca_county#32, d_qoy#30, d_year#29, #11] Keys [3]: [ca_county#32, d_qoy#30, d_year#29] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#27))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#27))#12] @@ -1103,25 +1103,25 @@ Input [4]: [ca_county#43, d_qoy#41, d_year#40, _c3#44] Keys [3]: [ca_county#43, d_qoy#41, d_year#40] Functions [1]: [partial_sum(_c3#44)] Aggregate Attributes [1]: [sum#45] -Results [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Results [4]: [ca_county#43, d_qoy#41, d_year#40, #11] (165) NativeShuffleExchange -Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11] Arguments: hashpartitioning(ca_county#43, d_qoy#41, d_year#40, 100), ENSURE_REQUIREMENTS, [plan_id=17] (166) ShuffleQueryStage -Output [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Output [4]: [ca_county#43, d_qoy#41, d_year#40, #11] Arguments: X (167) AQEShuffleRead -Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11] Arguments: coalesced (168) InputAdapter -Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11] (169) NativeHashAggregate -Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11#11] +Input [4]: [ca_county#43, d_qoy#41, d_year#40, #11] Keys [3]: [ca_county#43, d_qoy#41, d_year#40] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#38))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#38))#46] @@ -1270,25 +1270,25 @@ Input [4]: [ca_county#55, d_qoy#53, d_year#52, _c3#56] Keys [3]: [ca_county#55, d_qoy#53, d_year#52] Functions [1]: [partial_sum(_c3#56)] Aggregate Attributes [1]: [sum#57] -Results [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Results [4]: [ca_county#55, d_qoy#53, d_year#52, #11] (206) NativeShuffleExchange -Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11] Arguments: hashpartitioning(ca_county#55, d_qoy#53, d_year#52, 100), ENSURE_REQUIREMENTS, [plan_id=20] (207) ShuffleQueryStage -Output [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Output [4]: [ca_county#55, d_qoy#53, d_year#52, #11] Arguments: X (208) AQEShuffleRead -Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11] Arguments: coalesced (209) InputAdapter -Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11] (210) NativeHashAggregate -Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11#11] +Input [4]: [ca_county#55, d_qoy#53, d_year#52, #11] Keys [3]: [ca_county#55, d_qoy#53, d_year#52] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#50))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#50))#46] @@ -1441,25 +1441,25 @@ Input [4]: [ca_county#66, d_qoy#64, d_year#63, _c3#67] Keys [3]: [ca_county#66, d_qoy#64, d_year#63] Functions [1]: [partial_sum(_c3#67)] Aggregate Attributes [1]: [sum#68] -Results [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Results [4]: [ca_county#66, d_qoy#64, d_year#63, #11] (248) NativeShuffleExchange -Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11] Arguments: hashpartitioning(ca_county#66, d_qoy#64, d_year#63, 100), ENSURE_REQUIREMENTS, [plan_id=23] (249) ShuffleQueryStage -Output [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Output [4]: [ca_county#66, d_qoy#64, d_year#63, #11] Arguments: X (250) AQEShuffleRead -Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11] Arguments: coalesced (251) InputAdapter -Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11] (252) NativeHashAggregate -Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11#11] +Input [4]: [ca_county#66, d_qoy#64, d_year#63, #11] Keys [3]: [ca_county#66, d_qoy#64, d_year#63] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#61))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#61))#46] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt index f18f5a443..dd041fa6d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt @@ -288,51 +288,51 @@ Input [2]: [cs_item_sk#7, _c1#11] Keys [1]: [cs_item_sk#7] Functions [1]: [partial_avg(_c1#11)] Aggregate Attributes [2]: [sum#12, count#13] -Results [2]: [cs_item_sk#7, #14#14] +Results [3]: [cs_item_sk#7, #14, #15] (41) NativeShuffleExchange -Input [2]: [cs_item_sk#7, #14#14] +Input [3]: [cs_item_sk#7, #14, #15] Arguments: hashpartitioning(cs_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=5] (42) ShuffleQueryStage -Output [2]: [cs_item_sk#7, #14#14] +Output [3]: [cs_item_sk#7, #14, #15] Arguments: X (43) AQEShuffleRead -Input [2]: [cs_item_sk#7, #14#14] +Input [3]: [cs_item_sk#7, #14, #15] Arguments: coalesced (44) InputAdapter -Input [2]: [cs_item_sk#7, #14#14] +Input [3]: [cs_item_sk#7, #14, #15] (45) NativeHashAggregate -Input [2]: [cs_item_sk#7, #14#14] +Input [3]: [cs_item_sk#7, #14, #15] Keys [1]: [cs_item_sk#7] Functions [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))] -Aggregate Attributes [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))#15] -Results [2]: [cs_item_sk#7, avg(UnscaledValue(cs_ext_discount_amt#8))#15] +Aggregate Attributes [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))#16] +Results [2]: [cs_item_sk#7, avg(UnscaledValue(cs_ext_discount_amt#8))#16] (46) NativeProject -Output [2]: [(1.3 * cast((avg(UnscaledValue(cs_ext_discount_amt#8))#15 / 100.0) as decimal(11,6))) AS (1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] -Input [2]: [cs_item_sk#7, avg(UnscaledValue(cs_ext_discount_amt#8))#15] +Output [2]: [(1.3 * cast((avg(UnscaledValue(cs_ext_discount_amt#8))#16 / 100.0) as decimal(11,6))) AS (1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] +Input [2]: [cs_item_sk#7, avg(UnscaledValue(cs_ext_discount_amt#8))#16] (47) NativeFilter -Input [2]: [(1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] -Condition : isnotnull((1.3 * avg(cs_ext_discount_amt))#16) +Input [2]: [(1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] +Condition : isnotnull((1.3 * avg(cs_ext_discount_amt))#17) (48) NativeSort -Input [2]: [(1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] +Input [2]: [(1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] Arguments: [cs_item_sk#7 ASC NULLS FIRST], false (49) SortMergeJoin [codegen id : X] Left keys [1]: [i_item_sk#4] Right keys [1]: [cs_item_sk#7] Join type: Inner -Join condition: (cast(cs_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(cs_ext_discount_amt))#16) +Join condition: (cast(cs_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(cs_ext_discount_amt))#17) (50) Project [codegen id : X] Output [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] -Input [5]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] +Input [5]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] (51) ConvertToNative Input [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] @@ -357,66 +357,66 @@ Input [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false (57) ReusedExchange [Reuses operator id: 32] -Output [1]: [d_date_sk#17] +Output [1]: [d_date_sk#18] (58) ShuffleQueryStage -Output [1]: [d_date_sk#17] +Output [1]: [d_date_sk#18] Arguments: X (59) AQEShuffleRead -Input [1]: [d_date_sk#17] +Input [1]: [d_date_sk#18] Arguments: coalesced (60) InputAdapter -Input [1]: [d_date_sk#17] -Arguments: [#17] +Input [1]: [d_date_sk#18] +Arguments: [#18] (61) InputAdapter -Input [1]: [#17#17] +Input [1]: [#18#18] (62) NativeSort -Input [1]: [#17#17] -Arguments: [d_date_sk#17 ASC NULLS FIRST], false +Input [1]: [#18#18] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false (63) NativeSortMergeJoin Left keys [1]: [cs_sold_date_sk#1] -Right keys [1]: [d_date_sk#17] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (64) NativeProject Output [1]: [cs_ext_discount_amt#3] -Input [3]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, #17#17] +Input [3]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, #18#18] (65) NativeProject -Output [1]: [UnscaledValue(cs_ext_discount_amt#3) AS _c0#18] +Output [1]: [UnscaledValue(cs_ext_discount_amt#3) AS _c0#19] Input [1]: [cs_ext_discount_amt#3] (66) NativeHashAggregate -Input [1]: [_c0#18] +Input [1]: [_c0#19] Keys: [] -Functions [1]: [partial_sum(_c0#18)] -Aggregate Attributes [1]: [sum#19] -Results [1]: [#14#14] +Functions [1]: [partial_sum(_c0#19)] +Aggregate Attributes [1]: [sum#20] +Results [1]: [#15] (67) NativeShuffleExchange -Input [1]: [#14#14] +Input [1]: [#15] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (68) ShuffleQueryStage -Output [1]: [#14#14] +Output [1]: [#15] Arguments: X (69) NativeHashAggregate -Input [1]: [#14#14] +Input [1]: [#15] Keys: [] Functions [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#20] -Results [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#20] +Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#21] +Results [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#21] (70) NativeProject -Output [1]: [MakeDecimal(sum(UnscaledValue(cs_ext_discount_amt#3))#20,17,2) AS excess discount amount#21] -Input [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#20] +Output [1]: [MakeDecimal(sum(UnscaledValue(cs_ext_discount_amt#3))#21,17,2) AS excess discount amount#22] +Input [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#21] (71) Scan parquet Output [3]: [cs_sold_date_sk#1, cs_item_sk#2, cs_ext_discount_amt#3] @@ -527,36 +527,36 @@ Input [2]: [cs_item_sk#7, cs_ext_discount_amt#8] Keys [1]: [cs_item_sk#7] Functions [1]: [partial_avg(UnscaledValue(cs_ext_discount_amt#8))] Aggregate Attributes [2]: [sum#12, count#13] -Results [3]: [cs_item_sk#7, sum#22, count#23] +Results [3]: [cs_item_sk#7, sum#23, count#24] (94) Exchange -Input [3]: [cs_item_sk#7, sum#22, count#23] +Input [3]: [cs_item_sk#7, sum#23, count#24] Arguments: hashpartitioning(cs_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=12] (95) HashAggregate -Input [3]: [cs_item_sk#7, sum#22, count#23] +Input [3]: [cs_item_sk#7, sum#23, count#24] Keys [1]: [cs_item_sk#7] Functions [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))] -Aggregate Attributes [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))#15] -Results [2]: [(1.3 * cast((avg(UnscaledValue(cs_ext_discount_amt#8))#15 / 100.0) as decimal(11,6))) AS (1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] +Aggregate Attributes [1]: [avg(UnscaledValue(cs_ext_discount_amt#8))#16] +Results [2]: [(1.3 * cast((avg(UnscaledValue(cs_ext_discount_amt#8))#16 / 100.0) as decimal(11,6))) AS (1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] (96) Filter -Input [2]: [(1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] -Condition : isnotnull((1.3 * avg(cs_ext_discount_amt))#16) +Input [2]: [(1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] +Condition : isnotnull((1.3 * avg(cs_ext_discount_amt))#17) (97) Sort -Input [2]: [(1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] +Input [2]: [(1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] Arguments: [cs_item_sk#7 ASC NULLS FIRST], false, 0 (98) SortMergeJoin Left keys [1]: [i_item_sk#4] Right keys [1]: [cs_item_sk#7] Join type: Inner -Join condition: (cast(cs_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(cs_ext_discount_amt))#16) +Join condition: (cast(cs_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(cs_ext_discount_amt))#17) (99) Project Output [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] -Input [5]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] +Input [5]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(cs_ext_discount_amt))#17, cs_item_sk#7] (100) Exchange Input [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] @@ -567,57 +567,57 @@ Input [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] Arguments: [cs_sold_date_sk#1 ASC NULLS FIRST], false, 0 (102) Scan parquet -Output [2]: [d_date_sk#17, d_date#24] +Output [2]: [d_date_sk#18, d_date#25] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1998-03-18), LessThanOrEqual(d_date,1998-06-16), IsNotNull(d_date_sk)] ReadSchema: struct (103) Filter -Input [2]: [d_date_sk#17, d_date#24] -Condition : (((isnotnull(d_date#24) AND (d_date#24 >= 1998-03-18)) AND (d_date#24 <= 1998-06-16)) AND isnotnull(d_date_sk#17)) +Input [2]: [d_date_sk#18, d_date#25] +Condition : (((isnotnull(d_date#25) AND (d_date#25 >= 1998-03-18)) AND (d_date#25 <= 1998-06-16)) AND isnotnull(d_date_sk#18)) (104) Project -Output [1]: [d_date_sk#17] -Input [2]: [d_date_sk#17, d_date#24] +Output [1]: [d_date_sk#18] +Input [2]: [d_date_sk#18, d_date#25] (105) Exchange -Input [1]: [d_date_sk#17] -Arguments: hashpartitioning(d_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [1]: [d_date_sk#18] +Arguments: hashpartitioning(d_date_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=14] (106) Sort -Input [1]: [d_date_sk#17] -Arguments: [d_date_sk#17 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#18] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false, 0 (107) SortMergeJoin Left keys [1]: [cs_sold_date_sk#1] -Right keys [1]: [d_date_sk#17] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (108) Project Output [1]: [cs_ext_discount_amt#3] -Input [3]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, d_date_sk#17] +Input [3]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, d_date_sk#18] (109) HashAggregate Input [1]: [cs_ext_discount_amt#3] Keys: [] Functions [1]: [partial_sum(UnscaledValue(cs_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum#19] -Results [1]: [sum#25] +Aggregate Attributes [1]: [sum#20] +Results [1]: [sum#26] (110) Exchange -Input [1]: [sum#25] +Input [1]: [sum#26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=15] (111) HashAggregate -Input [1]: [sum#25] +Input [1]: [sum#26] Keys: [] Functions [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#20] -Results [1]: [MakeDecimal(sum(UnscaledValue(cs_ext_discount_amt#3))#20,17,2) AS excess discount amount#21] +Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_discount_amt#3))#21] +Results [1]: [MakeDecimal(sum(UnscaledValue(cs_ext_discount_amt#3))#21,17,2) AS excess discount amount#22] (112) AdaptiveSparkPlan -Output [1]: [excess discount amount#21] +Output [1]: [excess discount amount#22] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q33.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q33.txt index 073ff268e..b69d9cf17 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q33.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q33.txt @@ -593,25 +593,25 @@ Input [2]: [i_manufact_id#11, _c1#14] Keys [1]: [i_manufact_id#11] Functions [1]: [partial_sum(_c1#14)] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_manufact_id#11, #16#16] +Results [2]: [i_manufact_id#11, #16] (68) NativeShuffleExchange -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #16] Arguments: hashpartitioning(i_manufact_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=9] (69) ShuffleQueryStage -Output [2]: [i_manufact_id#11, #16#16] +Output [2]: [i_manufact_id#11, #16] Arguments: X (70) AQEShuffleRead -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #16] Arguments: coalesced (71) InputAdapter -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #16] (72) NativeHashAggregate -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #16] Keys [1]: [i_manufact_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -798,25 +798,25 @@ Input [2]: [i_manufact_id#26, _c1#27] Keys [1]: [i_manufact_id#26] Functions [1]: [partial_sum(_c1#27)] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_manufact_id#26, #16#16] +Results [2]: [i_manufact_id#26, #16] (118) NativeShuffleExchange -Input [2]: [i_manufact_id#26, #16#16] +Input [2]: [i_manufact_id#26, #16] Arguments: hashpartitioning(i_manufact_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=13] (119) ShuffleQueryStage -Output [2]: [i_manufact_id#26, #16#16] +Output [2]: [i_manufact_id#26, #16] Arguments: X (120) AQEShuffleRead -Input [2]: [i_manufact_id#26, #16#16] +Input [2]: [i_manufact_id#26, #16] Arguments: coalesced (121) InputAdapter -Input [2]: [i_manufact_id#26, #16#16] +Input [2]: [i_manufact_id#26, #16] (122) NativeHashAggregate -Input [2]: [i_manufact_id#26, #16#16] +Input [2]: [i_manufact_id#26, #16] Keys [1]: [i_manufact_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1003,25 +1003,25 @@ Input [2]: [i_manufact_id#38, _c1#39] Keys [1]: [i_manufact_id#38] Functions [1]: [partial_sum(_c1#39)] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_manufact_id#38, #16#16] +Results [2]: [i_manufact_id#38, #16] (168) NativeShuffleExchange -Input [2]: [i_manufact_id#38, #16#16] +Input [2]: [i_manufact_id#38, #16] Arguments: hashpartitioning(i_manufact_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=17] (169) ShuffleQueryStage -Output [2]: [i_manufact_id#38, #16#16] +Output [2]: [i_manufact_id#38, #16] Arguments: X (170) AQEShuffleRead -Input [2]: [i_manufact_id#38, #16#16] +Input [2]: [i_manufact_id#38, #16] Arguments: coalesced (171) InputAdapter -Input [2]: [i_manufact_id#38, #16#16] +Input [2]: [i_manufact_id#38, #16] (172) NativeHashAggregate -Input [2]: [i_manufact_id#38, #16#16] +Input [2]: [i_manufact_id#38, #16] Keys [1]: [i_manufact_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1043,37 +1043,37 @@ Input [2]: [#11#11, #18#18] Keys [1]: [i_manufact_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [2]: [i_manufact_id#11, #16#16] +Results [2]: [i_manufact_id#11, #45] (177) NativeShuffleExchange -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #45] Arguments: hashpartitioning(i_manufact_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=18] (178) ShuffleQueryStage -Output [2]: [i_manufact_id#11, #16#16] +Output [2]: [i_manufact_id#11, #45] Arguments: X (179) AQEShuffleRead -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #45] Arguments: coalesced (180) InputAdapter -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #45] (181) NativeHashAggregate -Input [2]: [i_manufact_id#11, #16#16] +Input [2]: [i_manufact_id#11, #45] Keys [1]: [i_manufact_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_manufact_id#11, sum(total_sales#18)#45] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_manufact_id#11, sum(total_sales#18)#46] (182) NativeProject -Output [2]: [i_manufact_id#11, sum(total_sales#18)#45 AS total_sales#46] -Input [2]: [i_manufact_id#11, sum(total_sales#18)#45] +Output [2]: [i_manufact_id#11, sum(total_sales#18)#46 AS total_sales#47] +Input [2]: [i_manufact_id#11, sum(total_sales#18)#46] (183) NativeTakeOrdered -Input [2]: [i_manufact_id#11, total_sales#46] -Arguments: X, [total_sales#46 ASC NULLS FIRST] +Input [2]: [i_manufact_id#11, total_sales#47] +Arguments: X, [total_sales#47 ASC NULLS FIRST] (184) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_item_sk#2, ss_addr_sk#3, ss_ext_sales_price#4] @@ -1247,14 +1247,14 @@ Input [2]: [ss_ext_sales_price#4, i_manufact_id#11] Keys [1]: [i_manufact_id#11] Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_manufact_id#11, sum#47] +Results [2]: [i_manufact_id#11, sum#48] (221) Exchange -Input [2]: [i_manufact_id#11, sum#47] +Input [2]: [i_manufact_id#11, sum#48] Arguments: hashpartitioning(i_manufact_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=27] (222) HashAggregate -Input [2]: [i_manufact_id#11, sum#47] +Input [2]: [i_manufact_id#11, sum#48] Keys [1]: [i_manufact_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -1280,19 +1280,19 @@ Input [4]: [cs_sold_date_sk#19, cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_ Arguments: [cs_sold_date_sk#19 ASC NULLS FIRST], false, 0 (227) Scan parquet -Output [3]: [d_date_sk#23, d_year#48, d_moy#49] +Output [3]: [d_date_sk#23, d_year#49, d_moy#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,1998), EqualTo(d_moy,5), IsNotNull(d_date_sk)] ReadSchema: struct (228) Filter -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] -Condition : ((((isnotnull(d_year#48) AND isnotnull(d_moy#49)) AND (d_year#48 = 1998)) AND (d_moy#49 = 5)) AND isnotnull(d_date_sk#23)) +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] +Condition : ((((isnotnull(d_year#49) AND isnotnull(d_moy#50)) AND (d_year#49 = 1998)) AND (d_moy#50 = 5)) AND isnotnull(d_date_sk#23)) (229) Project Output [1]: [d_date_sk#23] -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] (230) Exchange Input [1]: [d_date_sk#23] @@ -1321,19 +1321,19 @@ Input [3]: [cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_price#22] Arguments: [cs_bill_addr_sk#20 ASC NULLS FIRST], false, 0 (236) Scan parquet -Output [2]: [ca_address_sk#24, ca_gmt_offset#50] +Output [2]: [ca_address_sk#24, ca_gmt_offset#51] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (237) Filter -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] -Condition : ((isnotnull(ca_gmt_offset#50) AND (ca_gmt_offset#50 = -5.00)) AND isnotnull(ca_address_sk#24)) +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] +Condition : ((isnotnull(ca_gmt_offset#51) AND (ca_gmt_offset#51 = -5.00)) AND isnotnull(ca_address_sk#24)) (238) Project Output [1]: [ca_address_sk#24] -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] (239) Exchange Input [1]: [ca_address_sk#24] @@ -1381,31 +1381,31 @@ Input [2]: [i_item_sk#25, i_manufact_id#26] Arguments: [i_manufact_id#26 ASC NULLS FIRST], false, 0 (249) Scan parquet -Output [2]: [i_category#51, i_manufact_id#52] +Output [2]: [i_category#52, i_manufact_id#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_category), EqualTo(i_category,Electronics)] ReadSchema: struct (250) Filter -Input [2]: [i_category#51, i_manufact_id#52] -Condition : (isnotnull(i_category#51) AND (i_category#51 = Electronics)) +Input [2]: [i_category#52, i_manufact_id#53] +Condition : (isnotnull(i_category#52) AND (i_category#52 = Electronics)) (251) Project -Output [1]: [i_manufact_id#52] -Input [2]: [i_category#51, i_manufact_id#52] +Output [1]: [i_manufact_id#53] +Input [2]: [i_category#52, i_manufact_id#53] (252) Exchange -Input [1]: [i_manufact_id#52] -Arguments: hashpartitioning(i_manufact_id#52, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [1]: [i_manufact_id#53] +Arguments: hashpartitioning(i_manufact_id#53, 100), ENSURE_REQUIREMENTS, [plan_id=34] (253) Sort -Input [1]: [i_manufact_id#52] -Arguments: [i_manufact_id#52 ASC NULLS FIRST], false, 0 +Input [1]: [i_manufact_id#53] +Arguments: [i_manufact_id#53 ASC NULLS FIRST], false, 0 (254) SortMergeJoin Left keys [1]: [i_manufact_id#26] -Right keys [1]: [i_manufact_id#52] +Right keys [1]: [i_manufact_id#53] Join type: LeftSemi Join condition: None @@ -1432,14 +1432,14 @@ Input [2]: [cs_ext_sales_price#22, i_manufact_id#26] Keys [1]: [i_manufact_id#26] Functions [1]: [partial_sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_manufact_id#26, sum#53] +Results [2]: [i_manufact_id#26, sum#54] (260) Exchange -Input [2]: [i_manufact_id#26, sum#53] +Input [2]: [i_manufact_id#26, sum#54] Arguments: hashpartitioning(i_manufact_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=36] (261) HashAggregate -Input [2]: [i_manufact_id#26, sum#53] +Input [2]: [i_manufact_id#26, sum#54] Keys [1]: [i_manufact_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1465,19 +1465,19 @@ Input [4]: [ws_sold_date_sk#31, ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_ Arguments: [ws_sold_date_sk#31 ASC NULLS FIRST], false, 0 (266) Scan parquet -Output [3]: [d_date_sk#35, d_year#54, d_moy#55] +Output [3]: [d_date_sk#35, d_year#55, d_moy#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,1998), EqualTo(d_moy,5), IsNotNull(d_date_sk)] ReadSchema: struct (267) Filter -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] -Condition : ((((isnotnull(d_year#54) AND isnotnull(d_moy#55)) AND (d_year#54 = 1998)) AND (d_moy#55 = 5)) AND isnotnull(d_date_sk#35)) +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] +Condition : ((((isnotnull(d_year#55) AND isnotnull(d_moy#56)) AND (d_year#55 = 1998)) AND (d_moy#56 = 5)) AND isnotnull(d_date_sk#35)) (268) Project Output [1]: [d_date_sk#35] -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] (269) Exchange Input [1]: [d_date_sk#35] @@ -1506,19 +1506,19 @@ Input [3]: [ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_price#34] Arguments: [ws_bill_addr_sk#33 ASC NULLS FIRST], false, 0 (275) Scan parquet -Output [2]: [ca_address_sk#36, ca_gmt_offset#56] +Output [2]: [ca_address_sk#36, ca_gmt_offset#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (276) Filter -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] -Condition : ((isnotnull(ca_gmt_offset#56) AND (ca_gmt_offset#56 = -5.00)) AND isnotnull(ca_address_sk#36)) +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] +Condition : ((isnotnull(ca_gmt_offset#57) AND (ca_gmt_offset#57 = -5.00)) AND isnotnull(ca_address_sk#36)) (277) Project Output [1]: [ca_address_sk#36] -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] (278) Exchange Input [1]: [ca_address_sk#36] @@ -1566,31 +1566,31 @@ Input [2]: [i_item_sk#37, i_manufact_id#38] Arguments: [i_manufact_id#38 ASC NULLS FIRST], false, 0 (288) Scan parquet -Output [2]: [i_category#57, i_manufact_id#58] +Output [2]: [i_category#58, i_manufact_id#59] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_category), EqualTo(i_category,Electronics)] ReadSchema: struct (289) Filter -Input [2]: [i_category#57, i_manufact_id#58] -Condition : (isnotnull(i_category#57) AND (i_category#57 = Electronics)) +Input [2]: [i_category#58, i_manufact_id#59] +Condition : (isnotnull(i_category#58) AND (i_category#58 = Electronics)) (290) Project -Output [1]: [i_manufact_id#58] -Input [2]: [i_category#57, i_manufact_id#58] +Output [1]: [i_manufact_id#59] +Input [2]: [i_category#58, i_manufact_id#59] (291) Exchange -Input [1]: [i_manufact_id#58] -Arguments: hashpartitioning(i_manufact_id#58, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [1]: [i_manufact_id#59] +Arguments: hashpartitioning(i_manufact_id#59, 100), ENSURE_REQUIREMENTS, [plan_id=43] (292) Sort -Input [1]: [i_manufact_id#58] -Arguments: [i_manufact_id#58 ASC NULLS FIRST], false, 0 +Input [1]: [i_manufact_id#59] +Arguments: [i_manufact_id#59 ASC NULLS FIRST], false, 0 (293) SortMergeJoin Left keys [1]: [i_manufact_id#38] -Right keys [1]: [i_manufact_id#58] +Right keys [1]: [i_manufact_id#59] Join type: LeftSemi Join condition: None @@ -1617,14 +1617,14 @@ Input [2]: [ws_ext_sales_price#34, i_manufact_id#38] Keys [1]: [i_manufact_id#38] Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_manufact_id#38, sum#59] +Results [2]: [i_manufact_id#38, sum#60] (299) Exchange -Input [2]: [i_manufact_id#38, sum#59] +Input [2]: [i_manufact_id#38, sum#60] Arguments: hashpartitioning(i_manufact_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=45] (300) HashAggregate -Input [2]: [i_manufact_id#38, sum#59] +Input [2]: [i_manufact_id#38, sum#60] Keys [1]: [i_manufact_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1637,24 +1637,24 @@ Input [2]: [i_manufact_id#11, total_sales#18] Keys [1]: [i_manufact_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [3]: [i_manufact_id#11, sum#60, isEmpty#61] +Results [3]: [i_manufact_id#11, sum#61, isEmpty#62] (303) Exchange -Input [3]: [i_manufact_id#11, sum#60, isEmpty#61] +Input [3]: [i_manufact_id#11, sum#61, isEmpty#62] Arguments: hashpartitioning(i_manufact_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=46] (304) HashAggregate -Input [3]: [i_manufact_id#11, sum#60, isEmpty#61] +Input [3]: [i_manufact_id#11, sum#61, isEmpty#62] Keys [1]: [i_manufact_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_manufact_id#11, sum(total_sales#18)#45 AS total_sales#46] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_manufact_id#11, sum(total_sales#18)#46 AS total_sales#47] (305) TakeOrderedAndProject -Input [2]: [i_manufact_id#11, total_sales#46] -Arguments: X, [total_sales#46 ASC NULLS FIRST], [i_manufact_id#11, total_sales#46] +Input [2]: [i_manufact_id#11, total_sales#47] +Arguments: X, [total_sales#47 ASC NULLS FIRST], [i_manufact_id#11, total_sales#47] (306) AdaptiveSparkPlan -Output [2]: [i_manufact_id#11, total_sales#46] +Output [2]: [i_manufact_id#11, total_sales#47] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q34.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q34.txt index 865bc2c79..69c8d492c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q34.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q34.txt @@ -347,25 +347,25 @@ Input [2]: [ss_customer_sk#2, ss_ticket_number#5] Keys [2]: [ss_ticket_number#5, ss_customer_sk#2] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#15] -Results [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Results [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] (53) NativeShuffleExchange -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: hashpartitioning(ss_ticket_number#5, ss_customer_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Output [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: X (55) AQEShuffleRead -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: coalesced (56) InputAdapter -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] (57) NativeHashAggregate -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Keys [2]: [ss_ticket_number#5, ss_customer_sk#2] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#17] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q35.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q35.txt index cbe65d257..47e8cd882 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q35.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q35.txt @@ -652,41 +652,41 @@ Input [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd Keys [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24] Functions [10]: [partial_count(1), partial_min(cd_dep_count#22), partial_max(cd_dep_count#22), partial_avg(cd_dep_count#22), partial_min(cd_dep_employed_count#23), partial_max(cd_dep_employed_count#23), partial_avg(cd_dep_employed_count#23), partial_min(cd_dep_college_count#24), partial_max(cd_dep_college_count#24), partial_avg(cd_dep_college_count#24)] Aggregate Attributes [13]: [count#25, min#26, max#27, sum#28, count#29, min#30, max#31, sum#32, count#33, min#34, max#35, sum#36, count#37] -Results [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Results [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] (111) NativeShuffleExchange -Input [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] Arguments: hashpartitioning(ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, 100), ENSURE_REQUIREMENTS, [plan_id=13] (112) ShuffleQueryStage -Output [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Output [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] Arguments: X (113) AQEShuffleRead -Input [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] Arguments: coalesced (114) InputAdapter -Input [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] (115) NativeHashAggregate -Input [7]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38#38] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, #38, #39, #39, #39, #38, #39, #39, #39, #38, #39, #39, #39, #38] Keys [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24] Functions [10]: [count(1), min(cd_dep_count#22), max(cd_dep_count#22), avg(cd_dep_count#22), min(cd_dep_employed_count#23), max(cd_dep_employed_count#23), avg(cd_dep_employed_count#23), min(cd_dep_college_count#24), max(cd_dep_college_count#24), avg(cd_dep_college_count#24)] -Aggregate Attributes [10]: [count(1)#39, min(cd_dep_count#22)#40, max(cd_dep_count#22)#41, avg(cd_dep_count#22)#42, min(cd_dep_employed_count#23)#43, max(cd_dep_employed_count#23)#44, avg(cd_dep_employed_count#23)#45, min(cd_dep_college_count#24)#46, max(cd_dep_college_count#24)#47, avg(cd_dep_college_count#24)#48] -Results [16]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count(1)#39, min(cd_dep_count#22)#40, max(cd_dep_count#22)#41, avg(cd_dep_count#22)#42, min(cd_dep_employed_count#23)#43, max(cd_dep_employed_count#23)#44, avg(cd_dep_employed_count#23)#45, min(cd_dep_college_count#24)#46, max(cd_dep_college_count#24)#47, avg(cd_dep_college_count#24)#48] +Aggregate Attributes [10]: [count(1)#40, min(cd_dep_count#22)#41, max(cd_dep_count#22)#42, avg(cd_dep_count#22)#43, min(cd_dep_employed_count#23)#44, max(cd_dep_employed_count#23)#45, avg(cd_dep_employed_count#23)#46, min(cd_dep_college_count#24)#47, max(cd_dep_college_count#24)#48, avg(cd_dep_college_count#24)#49] +Results [16]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count(1)#40, min(cd_dep_count#22)#41, max(cd_dep_count#22)#42, avg(cd_dep_count#22)#43, min(cd_dep_employed_count#23)#44, max(cd_dep_employed_count#23)#45, avg(cd_dep_employed_count#23)#46, min(cd_dep_college_count#24)#47, max(cd_dep_college_count#24)#48, avg(cd_dep_college_count#24)#49] (116) NativeProject -Output [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, count(1)#39 AS cnt1#49, min(cd_dep_count#22)#40 AS min(cd_dep_count)#50, max(cd_dep_count#22)#41 AS max(cd_dep_count)#51, avg(cd_dep_count#22)#42 AS avg(cd_dep_count)#52, cd_dep_employed_count#23, count(1)#39 AS cnt2#53, min(cd_dep_employed_count#23)#43 AS min(cd_dep_employed_count)#54, max(cd_dep_employed_count#23)#44 AS max(cd_dep_employed_count)#55, avg(cd_dep_employed_count#23)#45 AS avg(cd_dep_employed_count)#56, cd_dep_college_count#24, count(1)#39 AS cnt3#57, min(cd_dep_college_count#24)#46 AS min(cd_dep_college_count)#58, max(cd_dep_college_count#24)#47 AS max(cd_dep_college_count)#59, avg(cd_dep_college_count#24)#48 AS avg(cd_dep_college_count)#60, cd_dep_count#22] -Input [16]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count(1)#39, min(cd_dep_count#22)#40, max(cd_dep_count#22)#41, avg(cd_dep_count#22)#42, min(cd_dep_employed_count#23)#43, max(cd_dep_employed_count#23)#44, avg(cd_dep_employed_count#23)#45, min(cd_dep_college_count#24)#46, max(cd_dep_college_count#24)#47, avg(cd_dep_college_count#24)#48] +Output [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, count(1)#40 AS cnt1#50, min(cd_dep_count#22)#41 AS min(cd_dep_count)#51, max(cd_dep_count#22)#42 AS max(cd_dep_count)#52, avg(cd_dep_count#22)#43 AS avg(cd_dep_count)#53, cd_dep_employed_count#23, count(1)#40 AS cnt2#54, min(cd_dep_employed_count#23)#44 AS min(cd_dep_employed_count)#55, max(cd_dep_employed_count#23)#45 AS max(cd_dep_employed_count)#56, avg(cd_dep_employed_count#23)#46 AS avg(cd_dep_employed_count)#57, cd_dep_college_count#24, count(1)#40 AS cnt3#58, min(cd_dep_college_count#24)#47 AS min(cd_dep_college_count)#59, max(cd_dep_college_count#24)#48 AS max(cd_dep_college_count)#60, avg(cd_dep_college_count#24)#49 AS avg(cd_dep_college_count)#61, cd_dep_count#22] +Input [16]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count(1)#40, min(cd_dep_count#22)#41, max(cd_dep_count#22)#42, avg(cd_dep_count#22)#43, min(cd_dep_employed_count#23)#44, max(cd_dep_employed_count#23)#45, avg(cd_dep_employed_count#23)#46, min(cd_dep_college_count#24)#47, max(cd_dep_college_count#24)#48, avg(cd_dep_college_count#24)#49] (117) NativeTakeOrdered -Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60, cd_dep_count#22] +Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61, cd_dep_count#22] Arguments: X, [ca_state#18 ASC NULLS FIRST, cd_gender#20 ASC NULLS FIRST, cd_marital_status#21 ASC NULLS FIRST, cd_dep_count#22 ASC NULLS FIRST, cd_dep_employed_count#23 ASC NULLS FIRST, cd_dep_college_count#24 ASC NULLS FIRST] (118) NativeProject -Output [17]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60] -Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60, cd_dep_count#22] +Output [17]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61] +Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61, cd_dep_count#22] (119) Scan parquet Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5] @@ -793,19 +793,19 @@ 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#61, d_qoy#62] +Output [3]: [d_date_sk#13, d_year#62, d_qoy#63] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_qoy), EqualTo(d_year,2002), LessThan(d_qoy,4), IsNotNull(d_date_sk)] ReadSchema: struct (142) Filter -Input [3]: [d_date_sk#13, d_year#61, d_qoy#62] -Condition : ((((isnotnull(d_year#61) AND isnotnull(d_qoy#62)) AND (d_year#61 = 2002)) AND (d_qoy#62 < 4)) AND isnotnull(d_date_sk#13)) +Input [3]: [d_date_sk#13, d_year#62, d_qoy#63] +Condition : ((((isnotnull(d_year#62) AND isnotnull(d_qoy#63)) AND (d_year#62 = 2002)) AND (d_qoy#63 < 4)) AND isnotnull(d_date_sk#13)) (143) Project Output [1]: [d_date_sk#13] -Input [3]: [d_date_sk#13, d_year#61, d_qoy#62] +Input [3]: [d_date_sk#13, d_year#62, d_qoy#63] (144) Exchange Input [1]: [d_date_sk#13] @@ -859,19 +859,19 @@ 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#63, d_qoy#64] +Output [3]: [d_date_sk#16, d_year#64, d_qoy#65] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_qoy), EqualTo(d_year,2002), LessThan(d_qoy,4), IsNotNull(d_date_sk)] ReadSchema: struct (156) Filter -Input [3]: [d_date_sk#16, d_year#63, d_qoy#64] -Condition : ((((isnotnull(d_year#63) AND isnotnull(d_qoy#64)) AND (d_year#63 = 2002)) AND (d_qoy#64 < 4)) AND isnotnull(d_date_sk#16)) +Input [3]: [d_date_sk#16, d_year#64, d_qoy#65] +Condition : ((((isnotnull(d_year#64) AND isnotnull(d_qoy#65)) AND (d_year#64 = 2002)) AND (d_qoy#65 < 4)) AND isnotnull(d_date_sk#16)) (157) Project Output [1]: [d_date_sk#16] -Input [3]: [d_date_sk#16, d_year#63, d_qoy#64] +Input [3]: [d_date_sk#16, d_year#64, d_qoy#65] (158) Exchange Input [1]: [d_date_sk#16] @@ -992,24 +992,24 @@ Input [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd Keys [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24] Functions [10]: [partial_count(1), partial_min(cd_dep_count#22), partial_max(cd_dep_count#22), partial_avg(cd_dep_count#22), partial_min(cd_dep_employed_count#23), partial_max(cd_dep_employed_count#23), partial_avg(cd_dep_employed_count#23), partial_min(cd_dep_college_count#24), partial_max(cd_dep_college_count#24), partial_avg(cd_dep_college_count#24)] Aggregate Attributes [13]: [count#25, min#26, max#27, sum#28, count#29, min#30, max#31, sum#32, count#33, min#34, max#35, sum#36, count#37] -Results [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#65, min#66, max#67, sum#68, count#69, min#70, max#71, sum#72, count#73, min#74, max#75, sum#76, count#77] +Results [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#66, min#67, max#68, sum#69, count#70, min#71, max#72, sum#73, count#74, min#75, max#76, sum#77, count#78] (184) Exchange -Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#65, min#66, max#67, sum#68, count#69, min#70, max#71, sum#72, count#73, min#74, max#75, sum#76, count#77] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#66, min#67, max#68, sum#69, count#70, min#71, max#72, sum#73, count#74, min#75, max#76, sum#77, count#78] Arguments: hashpartitioning(ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, 100), ENSURE_REQUIREMENTS, [plan_id=28] (185) HashAggregate -Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#65, min#66, max#67, sum#68, count#69, min#70, max#71, sum#72, count#73, min#74, max#75, sum#76, count#77] +Input [19]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24, count#66, min#67, max#68, sum#69, count#70, min#71, max#72, sum#73, count#74, min#75, max#76, sum#77, count#78] Keys [6]: [ca_state#18, cd_gender#20, cd_marital_status#21, cd_dep_count#22, cd_dep_employed_count#23, cd_dep_college_count#24] Functions [10]: [count(1), min(cd_dep_count#22), max(cd_dep_count#22), avg(cd_dep_count#22), min(cd_dep_employed_count#23), max(cd_dep_employed_count#23), avg(cd_dep_employed_count#23), min(cd_dep_college_count#24), max(cd_dep_college_count#24), avg(cd_dep_college_count#24)] -Aggregate Attributes [10]: [count(1)#39, min(cd_dep_count#22)#40, max(cd_dep_count#22)#41, avg(cd_dep_count#22)#42, min(cd_dep_employed_count#23)#43, max(cd_dep_employed_count#23)#44, avg(cd_dep_employed_count#23)#45, min(cd_dep_college_count#24)#46, max(cd_dep_college_count#24)#47, avg(cd_dep_college_count#24)#48] -Results [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, count(1)#39 AS cnt1#49, min(cd_dep_count#22)#40 AS min(cd_dep_count)#50, max(cd_dep_count#22)#41 AS max(cd_dep_count)#51, avg(cd_dep_count#22)#42 AS avg(cd_dep_count)#52, cd_dep_employed_count#23, count(1)#39 AS cnt2#53, min(cd_dep_employed_count#23)#43 AS min(cd_dep_employed_count)#54, max(cd_dep_employed_count#23)#44 AS max(cd_dep_employed_count)#55, avg(cd_dep_employed_count#23)#45 AS avg(cd_dep_employed_count)#56, cd_dep_college_count#24, count(1)#39 AS cnt3#57, min(cd_dep_college_count#24)#46 AS min(cd_dep_college_count)#58, max(cd_dep_college_count#24)#47 AS max(cd_dep_college_count)#59, avg(cd_dep_college_count#24)#48 AS avg(cd_dep_college_count)#60, cd_dep_count#22] +Aggregate Attributes [10]: [count(1)#40, min(cd_dep_count#22)#41, max(cd_dep_count#22)#42, avg(cd_dep_count#22)#43, min(cd_dep_employed_count#23)#44, max(cd_dep_employed_count#23)#45, avg(cd_dep_employed_count#23)#46, min(cd_dep_college_count#24)#47, max(cd_dep_college_count#24)#48, avg(cd_dep_college_count#24)#49] +Results [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, count(1)#40 AS cnt1#50, min(cd_dep_count#22)#41 AS min(cd_dep_count)#51, max(cd_dep_count#22)#42 AS max(cd_dep_count)#52, avg(cd_dep_count#22)#43 AS avg(cd_dep_count)#53, cd_dep_employed_count#23, count(1)#40 AS cnt2#54, min(cd_dep_employed_count#23)#44 AS min(cd_dep_employed_count)#55, max(cd_dep_employed_count#23)#45 AS max(cd_dep_employed_count)#56, avg(cd_dep_employed_count#23)#46 AS avg(cd_dep_employed_count)#57, cd_dep_college_count#24, count(1)#40 AS cnt3#58, min(cd_dep_college_count#24)#47 AS min(cd_dep_college_count)#59, max(cd_dep_college_count#24)#48 AS max(cd_dep_college_count)#60, avg(cd_dep_college_count#24)#49 AS avg(cd_dep_college_count)#61, cd_dep_count#22] (186) TakeOrderedAndProject -Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60, cd_dep_count#22] -Arguments: X, [ca_state#18 ASC NULLS FIRST, cd_gender#20 ASC NULLS FIRST, cd_marital_status#21 ASC NULLS FIRST, cd_dep_count#22 ASC NULLS FIRST, cd_dep_employed_count#23 ASC NULLS FIRST, cd_dep_college_count#24 ASC NULLS FIRST], [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60] +Input [18]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61, cd_dep_count#22] +Arguments: X, [ca_state#18 ASC NULLS FIRST, cd_gender#20 ASC NULLS FIRST, cd_marital_status#21 ASC NULLS FIRST, cd_dep_count#22 ASC NULLS FIRST, cd_dep_employed_count#23 ASC NULLS FIRST, cd_dep_college_count#24 ASC NULLS FIRST], [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61] (187) AdaptiveSparkPlan -Output [17]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#49, min(cd_dep_count)#50, max(cd_dep_count)#51, avg(cd_dep_count)#52, cd_dep_employed_count#23, cnt2#53, min(cd_dep_employed_count)#54, max(cd_dep_employed_count)#55, avg(cd_dep_employed_count)#56, cd_dep_college_count#24, cnt3#57, min(cd_dep_college_count)#58, max(cd_dep_college_count)#59, avg(cd_dep_college_count)#60] +Output [17]: [ca_state#18, cd_gender#20, cd_marital_status#21, cnt1#50, min(cd_dep_count)#51, max(cd_dep_count)#52, avg(cd_dep_count)#53, cd_dep_employed_count#23, cnt2#54, min(cd_dep_employed_count)#55, max(cd_dep_employed_count)#56, avg(cd_dep_employed_count)#57, cd_dep_college_count#24, cnt3#58, min(cd_dep_college_count)#59, max(cd_dep_college_count)#60, avg(cd_dep_college_count)#61] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q36.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q36.txt index 232e103b6..233249181 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q36.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q36.txt @@ -333,25 +333,25 @@ Input [5]: [i_category#13, i_class#14, spark_grouping_id#15, _c3#16, _c4#17] Keys [3]: [i_category#13, i_class#14, spark_grouping_id#15] Functions [2]: [partial_sum(_c3#16), partial_sum(_c4#17)] Aggregate Attributes [2]: [sum#18, sum#19] -Results [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Results [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] (54) NativeShuffleExchange -Input [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Input [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] Arguments: hashpartitioning(i_category#13, i_class#14, spark_grouping_id#15, 100), ENSURE_REQUIREMENTS, [plan_id=7] (55) ShuffleQueryStage -Output [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Output [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] Arguments: X (56) AQEShuffleRead -Input [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Input [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] Arguments: coalesced (57) InputAdapter -Input [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Input [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] (58) NativeHashAggregate -Input [4]: [i_category#13, i_class#14, spark_grouping_id#15, #20#20] +Input [5]: [i_category#13, i_class#14, spark_grouping_id#15, #20, #20] Keys [3]: [i_category#13, i_class#14, spark_grouping_id#15] Functions [2]: [sum(UnscaledValue(ss_net_profit#5)), sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [2]: [sum(UnscaledValue(ss_net_profit#5))#21, sum(UnscaledValue(ss_ext_sales_price#4))#22] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q37.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q37.txt index b1d079b30..de1755710 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q37.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q37.txt @@ -316,33 +316,33 @@ Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Keys [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Functions: [] Aggregate Attributes: [] -Results [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Results [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (53) NativeShuffleExchange -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: hashpartitioning(i_item_id#2, i_item_desc#3, i_current_price#4, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Output [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: X (55) AQEShuffleRead -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: coalesced (56) InputAdapter -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (57) NativeHashAggregate -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Keys [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Functions: [] Aggregate Attributes: [] -Results [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Results [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (58) NativeProject Output [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (59) Scan parquet Output [5]: [i_item_sk#1, i_item_id#2, i_item_desc#3, i_current_price#4, i_manufact_id#5] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q38.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q38.txt index e3c0a6280..739f88bbc 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q38.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q38.txt @@ -368,33 +368,33 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Keys [3]: [c_last_name#8, c_first_name#7, d_date#4] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Results [3]: [c_last_name#8, c_first_name#7, d_date#4] (36) NativeShuffleExchange -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: hashpartitioning(c_last_name#8, c_first_name#7, d_date#4, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Output [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: X (38) AQEShuffleRead -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: coalesced (39) InputAdapter -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] (40) NativeHashAggregate -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Keys [3]: [c_last_name#8, c_first_name#7, d_date#4] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Results [3]: [c_last_name#8, c_first_name#7, d_date#4] (41) NativeProject Output [3]: [c_last_name#8, c_first_name#7, d_date#4] -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] (42) NativeShuffleExchange Input [3]: [c_last_name#8, c_first_name#7, d_date#4] @@ -416,352 +416,352 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: [coalesce(c_last_name#8, ) ASC NULLS FIRST, isnull(c_last_name#8) ASC NULLS FIRST, coalesce(c_first_name#7, ) ASC NULLS FIRST, isnull(c_first_name#7) ASC NULLS FIRST, coalesce(d_date#4, 1970-01-01) ASC NULLS FIRST, isnull(d_date#4) ASC NULLS FIRST], false (161) Scan parquet -Output [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] +Output [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_bill_customer_sk)] ReadSchema: struct (48) InputAdapter -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: [#10, #11] +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: [#9, #10] (49) NativeFilter -Input [2]: [#10#10, #11#11] -Condition : (isnotnull(cs_sold_date_sk#10) AND isnotnull(cs_bill_customer_sk#11)) +Input [2]: [#9#9, #10#10] +Condition : (isnotnull(cs_sold_date_sk#9) AND isnotnull(cs_bill_customer_sk#10)) (50) NativeShuffleExchange -Input [2]: [#10#10, #11#11] -Arguments: hashpartitioning(cs_sold_date_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] +Input [2]: [#9#9, #10#10] +Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=7] (51) ShuffleQueryStage -Output [2]: [#10#10, #11#11] +Output [2]: [#9#9, #10#10] Arguments: X (52) AQEShuffleRead -Input [2]: [#10#10, #11#11] +Input [2]: [#9#9, #10#10] Arguments: coalesced (53) InputAdapter -Input [2]: [#10#10, #11#11] +Input [2]: [#9#9, #10#10] (54) NativeSort -Input [2]: [#10#10, #11#11] -Arguments: [cs_sold_date_sk#10 ASC NULLS FIRST], false +Input [2]: [#9#9, #10#10] +Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false (55) ReusedExchange [Reuses operator id: 13] -Output [2]: [d_date_sk#12, d_date#13] +Output [2]: [d_date_sk#11, d_date#12] (56) ShuffleQueryStage -Output [2]: [d_date_sk#12, d_date#13] +Output [2]: [d_date_sk#11, d_date#12] Arguments: X (57) AQEShuffleRead -Input [2]: [d_date_sk#12, d_date#13] +Input [2]: [d_date_sk#11, d_date#12] Arguments: coalesced (58) InputAdapter -Input [2]: [d_date_sk#12, d_date#13] -Arguments: [#12, #13] +Input [2]: [d_date_sk#11, d_date#12] +Arguments: [#11, #12] (59) InputAdapter -Input [2]: [#12#12, #13#13] +Input [2]: [#11#11, #12#12] (60) NativeSort -Input [2]: [#12#12, #13#13] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false +Input [2]: [#11#11, #12#12] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false (61) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#10] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#9] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (62) NativeProject -Output [2]: [cs_bill_customer_sk#11, d_date#13] -Input [4]: [#10#10, #11#11, #12#12, #13#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] +Input [4]: [#9#9, #10#10, #11#11, #12#12] (63) NativeShuffleExchange -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: hashpartitioning(cs_bill_customer_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=8] +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: hashpartitioning(cs_bill_customer_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=8] (64) ShuffleQueryStage -Output [2]: [cs_bill_customer_sk#11, d_date#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] Arguments: X (65) AQEShuffleRead -Input [2]: [cs_bill_customer_sk#11, d_date#13] +Input [2]: [cs_bill_customer_sk#10, d_date#12] Arguments: coalesced (66) InputAdapter -Input [2]: [cs_bill_customer_sk#11, d_date#13] +Input [2]: [cs_bill_customer_sk#10, d_date#12] (67) NativeSort -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: [cs_bill_customer_sk#11 ASC NULLS FIRST], false +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: [cs_bill_customer_sk#10 ASC NULLS FIRST], false (68) ReusedExchange [Reuses operator id: 28] -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] (69) ShuffleQueryStage -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Arguments: X (70) AQEShuffleRead -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Arguments: coalesced (71) InputAdapter -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: [#14, #15, #16] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: [#13, #14, #15] (72) InputAdapter -Input [3]: [#14#14, #15#15, #16#16] +Input [3]: [#13#13, #14#14, #15#15] (73) NativeSort -Input [3]: [#14#14, #15#15, #16#16] -Arguments: [c_customer_sk#14 ASC NULLS FIRST], false +Input [3]: [#13#13, #14#14, #15#15] +Arguments: [c_customer_sk#13 ASC NULLS FIRST], false (74) NativeSortMergeJoin -Left keys [1]: [cs_bill_customer_sk#11] -Right keys [1]: [c_customer_sk#14] +Left keys [1]: [cs_bill_customer_sk#10] +Right keys [1]: [c_customer_sk#13] Join type: Inner Join condition: None (75) NativeProject -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [5]: [cs_bill_customer_sk#11, d_date#13, #14#14, #15#15, #16#16] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [5]: [cs_bill_customer_sk#10, d_date#12, #13#13, #14#14, #15#15] (76) NativeHashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (77) NativeShuffleExchange -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] -Arguments: hashpartitioning(c_last_name#16, c_first_name#15, d_date#13, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(c_last_name#15, c_first_name#14, d_date#12, 100), ENSURE_REQUIREMENTS, [plan_id=9] (78) ShuffleQueryStage -Output [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: X (79) AQEShuffleRead -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: coalesced (80) InputAdapter -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (81) NativeHashAggregate -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (82) NativeProject -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (83) NativeShuffleExchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13), 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12), 100), ENSURE_REQUIREMENTS, [plan_id=10] (84) ShuffleQueryStage -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: X (85) AQEShuffleRead -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: coalesced (86) InputAdapter -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (87) NativeSort -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: [coalesce(c_last_name#16, ) ASC NULLS FIRST, isnull(c_last_name#16) ASC NULLS FIRST, coalesce(c_first_name#15, ) ASC NULLS FIRST, isnull(c_first_name#15) ASC NULLS FIRST, coalesce(d_date#13, 1970-01-01) ASC NULLS FIRST, isnull(d_date#13) ASC NULLS FIRST], false +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: [coalesce(c_last_name#15, ) ASC NULLS FIRST, isnull(c_last_name#15) ASC NULLS FIRST, coalesce(c_first_name#14, ) ASC NULLS FIRST, isnull(c_first_name#14) ASC NULLS FIRST, coalesce(d_date#12, 1970-01-01) ASC NULLS FIRST, isnull(d_date#12) ASC NULLS FIRST], false (88) NativeSortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13)] +Right keys [6]: [coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12)] Join type: LeftSemi Join condition: None (186) Scan parquet -Output [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] +Output [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk), IsNotNull(ws_bill_customer_sk)] ReadSchema: struct (90) InputAdapter -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: [#17, #18] +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: [#16, #17] (91) NativeFilter -Input [2]: [#17#17, #18#18] -Condition : (isnotnull(ws_sold_date_sk#17) AND isnotnull(ws_bill_customer_sk#18)) +Input [2]: [#16#16, #17#17] +Condition : (isnotnull(ws_sold_date_sk#16) AND isnotnull(ws_bill_customer_sk#17)) (92) NativeShuffleExchange -Input [2]: [#17#17, #18#18] -Arguments: hashpartitioning(ws_sold_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [2]: [#16#16, #17#17] +Arguments: hashpartitioning(ws_sold_date_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=11] (93) ShuffleQueryStage -Output [2]: [#17#17, #18#18] +Output [2]: [#16#16, #17#17] Arguments: X (94) AQEShuffleRead -Input [2]: [#17#17, #18#18] +Input [2]: [#16#16, #17#17] Arguments: coalesced (95) InputAdapter -Input [2]: [#17#17, #18#18] +Input [2]: [#16#16, #17#17] (96) NativeSort -Input [2]: [#17#17, #18#18] -Arguments: [ws_sold_date_sk#17 ASC NULLS FIRST], false +Input [2]: [#16#16, #17#17] +Arguments: [ws_sold_date_sk#16 ASC NULLS FIRST], false (97) ReusedExchange [Reuses operator id: 13] -Output [2]: [d_date_sk#19, d_date#20] +Output [2]: [d_date_sk#18, d_date#19] (98) ShuffleQueryStage -Output [2]: [d_date_sk#19, d_date#20] +Output [2]: [d_date_sk#18, d_date#19] Arguments: X (99) AQEShuffleRead -Input [2]: [d_date_sk#19, d_date#20] +Input [2]: [d_date_sk#18, d_date#19] Arguments: coalesced (100) InputAdapter -Input [2]: [d_date_sk#19, d_date#20] -Arguments: [#19, #20] +Input [2]: [d_date_sk#18, d_date#19] +Arguments: [#18, #19] (101) InputAdapter -Input [2]: [#19#19, #20#20] +Input [2]: [#18#18, #19#19] (102) NativeSort -Input [2]: [#19#19, #20#20] -Arguments: [d_date_sk#19 ASC NULLS FIRST], false +Input [2]: [#18#18, #19#19] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false (103) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#17] -Right keys [1]: [d_date_sk#19] +Left keys [1]: [ws_sold_date_sk#16] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (104) NativeProject -Output [2]: [ws_bill_customer_sk#18, d_date#20] -Input [4]: [#17#17, #18#18, #19#19, #20#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] +Input [4]: [#16#16, #17#17, #18#18, #19#19] (105) NativeShuffleExchange -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: hashpartitioning(ws_bill_customer_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: hashpartitioning(ws_bill_customer_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=12] (106) ShuffleQueryStage -Output [2]: [ws_bill_customer_sk#18, d_date#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] Arguments: X (107) AQEShuffleRead -Input [2]: [ws_bill_customer_sk#18, d_date#20] +Input [2]: [ws_bill_customer_sk#17, d_date#19] Arguments: coalesced (108) InputAdapter -Input [2]: [ws_bill_customer_sk#18, d_date#20] +Input [2]: [ws_bill_customer_sk#17, d_date#19] (109) NativeSort -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: [ws_bill_customer_sk#18 ASC NULLS FIRST], false +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: [ws_bill_customer_sk#17 ASC NULLS FIRST], false (110) ReusedExchange [Reuses operator id: 28] -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] (111) ShuffleQueryStage -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Arguments: X (112) AQEShuffleRead -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Arguments: coalesced (113) InputAdapter -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: [#21, #22, #23] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: [#20, #21, #22] (114) InputAdapter -Input [3]: [#21#21, #22#22, #23#23] +Input [3]: [#20#20, #21#21, #22#22] (115) NativeSort -Input [3]: [#21#21, #22#22, #23#23] -Arguments: [c_customer_sk#21 ASC NULLS FIRST], false +Input [3]: [#20#20, #21#21, #22#22] +Arguments: [c_customer_sk#20 ASC NULLS FIRST], false (116) NativeSortMergeJoin -Left keys [1]: [ws_bill_customer_sk#18] -Right keys [1]: [c_customer_sk#21] +Left keys [1]: [ws_bill_customer_sk#17] +Right keys [1]: [c_customer_sk#20] Join type: Inner Join condition: None (117) NativeProject -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [5]: [ws_bill_customer_sk#18, d_date#20, #21#21, #22#22, #23#23] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [5]: [ws_bill_customer_sk#17, d_date#19, #20#20, #21#21, #22#22] (118) NativeHashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (119) NativeShuffleExchange -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] -Arguments: hashpartitioning(c_last_name#23, c_first_name#22, d_date#20, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(c_last_name#22, c_first_name#21, d_date#19, 100), ENSURE_REQUIREMENTS, [plan_id=13] (120) ShuffleQueryStage -Output [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: X (121) AQEShuffleRead -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: coalesced (122) InputAdapter -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (123) NativeHashAggregate -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (124) NativeProject -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (125) NativeShuffleExchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20), 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19), 100), ENSURE_REQUIREMENTS, [plan_id=14] (126) ShuffleQueryStage -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: X (127) AQEShuffleRead -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: coalesced (128) InputAdapter -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (129) NativeSort -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: [coalesce(c_last_name#23, ) ASC NULLS FIRST, isnull(c_last_name#23) ASC NULLS FIRST, coalesce(c_first_name#22, ) ASC NULLS FIRST, isnull(c_first_name#22) ASC NULLS FIRST, coalesce(d_date#20, 1970-01-01) ASC NULLS FIRST, isnull(d_date#20) ASC NULLS FIRST], false +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: [coalesce(c_last_name#22, ) ASC NULLS FIRST, isnull(c_last_name#22) ASC NULLS FIRST, coalesce(c_first_name#21, ) ASC NULLS FIRST, isnull(c_first_name#21) ASC NULLS FIRST, coalesce(d_date#19, 1970-01-01) ASC NULLS FIRST, isnull(d_date#19) ASC NULLS FIRST], false (130) NativeSortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20)] +Right keys [6]: [coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19)] Join type: LeftSemi Join condition: None @@ -773,19 +773,19 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Input: [] Keys: [] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#24] -Results [1]: [#9#9] +Aggregate Attributes [1]: [count#23] +Results [1]: [#24] (133) NativeShuffleExchange -Input [1]: [#9#9] +Input [1]: [#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=15] (134) ShuffleQueryStage -Output [1]: [#9#9] +Output [1]: [#24] Arguments: X (135) NativeHashAggregate -Input [1]: [#9#9] +Input [1]: [#24] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#25] @@ -911,244 +911,244 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: [coalesce(c_last_name#8, ) ASC NULLS FIRST, isnull(c_last_name#8) ASC NULLS FIRST, coalesce(c_first_name#7, ) ASC NULLS FIRST, isnull(c_first_name#7) ASC NULLS FIRST, coalesce(d_date#4, 1970-01-01) ASC NULLS FIRST, isnull(d_date#4) ASC NULLS FIRST], false, 0 (161) Scan parquet -Output [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] +Output [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_bill_customer_sk)] ReadSchema: struct (162) Filter -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Condition : (isnotnull(cs_sold_date_sk#10) AND isnotnull(cs_bill_customer_sk#11)) +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Condition : (isnotnull(cs_sold_date_sk#9) AND isnotnull(cs_bill_customer_sk#10)) (163) Exchange -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: hashpartitioning(cs_sold_date_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=22] (164) Sort -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: [cs_sold_date_sk#10 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false, 0 (165) Scan parquet -Output [3]: [d_date_sk#12, d_date#13, d_month_seq#27] +Output [3]: [d_date_sk#11, d_date#12, d_month_seq#27] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1200), LessThanOrEqual(d_month_seq,1211), IsNotNull(d_date_sk)] ReadSchema: struct (166) Filter -Input [3]: [d_date_sk#12, d_date#13, d_month_seq#27] -Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#12)) +Input [3]: [d_date_sk#11, d_date#12, d_month_seq#27] +Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#11)) (167) Project -Output [2]: [d_date_sk#12, d_date#13] -Input [3]: [d_date_sk#12, d_date#13, d_month_seq#27] +Output [2]: [d_date_sk#11, d_date#12] +Input [3]: [d_date_sk#11, d_date#12, d_month_seq#27] (168) Exchange -Input [2]: [d_date_sk#12, d_date#13] -Arguments: hashpartitioning(d_date_sk#12, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [2]: [d_date_sk#11, d_date#12] +Arguments: hashpartitioning(d_date_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=23] (169) Sort -Input [2]: [d_date_sk#12, d_date#13] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#11, d_date#12] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false, 0 (170) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#10] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#9] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (171) Project -Output [2]: [cs_bill_customer_sk#11, d_date#13] -Input [4]: [cs_sold_date_sk#10, cs_bill_customer_sk#11, d_date_sk#12, d_date#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] +Input [4]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, d_date_sk#11, d_date#12] (172) Exchange -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: hashpartitioning(cs_bill_customer_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: hashpartitioning(cs_bill_customer_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=24] (173) Sort -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: [cs_bill_customer_sk#11 ASC NULLS FIRST], false, 0 +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: [cs_bill_customer_sk#10 ASC NULLS FIRST], false, 0 (174) Scan parquet -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (175) Filter -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Condition : isnotnull(c_customer_sk#14) +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Condition : isnotnull(c_customer_sk#13) (176) Exchange -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: hashpartitioning(c_customer_sk#14, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: hashpartitioning(c_customer_sk#13, 100), ENSURE_REQUIREMENTS, [plan_id=25] (177) Sort -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: [c_customer_sk#14 ASC NULLS FIRST], false, 0 +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: [c_customer_sk#13 ASC NULLS FIRST], false, 0 (178) SortMergeJoin -Left keys [1]: [cs_bill_customer_sk#11] -Right keys [1]: [c_customer_sk#14] +Left keys [1]: [cs_bill_customer_sk#10] +Right keys [1]: [c_customer_sk#13] Join type: Inner Join condition: None (179) Project -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [5]: [cs_bill_customer_sk#11, d_date#13, c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [5]: [cs_bill_customer_sk#10, d_date#12, c_customer_sk#13, c_first_name#14, c_last_name#15] (180) HashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#16, c_first_name#15, d_date#13] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (181) Exchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(c_last_name#16, c_first_name#15, d_date#13, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(c_last_name#15, c_first_name#14, d_date#12, 100), ENSURE_REQUIREMENTS, [plan_id=26] (182) HashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#16, c_first_name#15, d_date#13] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (183) Exchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13), 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12), 100), ENSURE_REQUIREMENTS, [plan_id=27] (184) Sort -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: [coalesce(c_last_name#16, ) ASC NULLS FIRST, isnull(c_last_name#16) ASC NULLS FIRST, coalesce(c_first_name#15, ) ASC NULLS FIRST, isnull(c_first_name#15) ASC NULLS FIRST, coalesce(d_date#13, 1970-01-01) ASC NULLS FIRST, isnull(d_date#13) ASC NULLS FIRST], false, 0 +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: [coalesce(c_last_name#15, ) ASC NULLS FIRST, isnull(c_last_name#15) ASC NULLS FIRST, coalesce(c_first_name#14, ) ASC NULLS FIRST, isnull(c_first_name#14) ASC NULLS FIRST, coalesce(d_date#12, 1970-01-01) ASC NULLS FIRST, isnull(d_date#12) ASC NULLS FIRST], false, 0 (185) SortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13)] +Right keys [6]: [coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12)] Join type: LeftSemi Join condition: None (186) Scan parquet -Output [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] +Output [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk), IsNotNull(ws_bill_customer_sk)] ReadSchema: struct (187) Filter -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Condition : (isnotnull(ws_sold_date_sk#17) AND isnotnull(ws_bill_customer_sk#18)) +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Condition : (isnotnull(ws_sold_date_sk#16) AND isnotnull(ws_bill_customer_sk#17)) (188) Exchange -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: hashpartitioning(ws_sold_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: hashpartitioning(ws_sold_date_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=28] (189) Sort -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: [ws_sold_date_sk#17 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: [ws_sold_date_sk#16 ASC NULLS FIRST], false, 0 (190) Scan parquet -Output [3]: [d_date_sk#19, d_date#20, d_month_seq#28] +Output [3]: [d_date_sk#18, d_date#19, d_month_seq#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1200), LessThanOrEqual(d_month_seq,1211), IsNotNull(d_date_sk)] ReadSchema: struct (191) Filter -Input [3]: [d_date_sk#19, d_date#20, d_month_seq#28] -Condition : (((isnotnull(d_month_seq#28) AND (d_month_seq#28 >= 1200)) AND (d_month_seq#28 <= 1211)) AND isnotnull(d_date_sk#19)) +Input [3]: [d_date_sk#18, d_date#19, d_month_seq#28] +Condition : (((isnotnull(d_month_seq#28) AND (d_month_seq#28 >= 1200)) AND (d_month_seq#28 <= 1211)) AND isnotnull(d_date_sk#18)) (192) Project -Output [2]: [d_date_sk#19, d_date#20] -Input [3]: [d_date_sk#19, d_date#20, d_month_seq#28] +Output [2]: [d_date_sk#18, d_date#19] +Input [3]: [d_date_sk#18, d_date#19, d_month_seq#28] (193) Exchange -Input [2]: [d_date_sk#19, d_date#20] -Arguments: hashpartitioning(d_date_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [2]: [d_date_sk#18, d_date#19] +Arguments: hashpartitioning(d_date_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=29] (194) Sort -Input [2]: [d_date_sk#19, d_date#20] -Arguments: [d_date_sk#19 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#18, d_date#19] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false, 0 (195) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#17] -Right keys [1]: [d_date_sk#19] +Left keys [1]: [ws_sold_date_sk#16] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (196) Project -Output [2]: [ws_bill_customer_sk#18, d_date#20] -Input [4]: [ws_sold_date_sk#17, ws_bill_customer_sk#18, d_date_sk#19, d_date#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] +Input [4]: [ws_sold_date_sk#16, ws_bill_customer_sk#17, d_date_sk#18, d_date#19] (197) Exchange -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: hashpartitioning(ws_bill_customer_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: hashpartitioning(ws_bill_customer_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=30] (198) Sort -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: [ws_bill_customer_sk#18 ASC NULLS FIRST], false, 0 +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: [ws_bill_customer_sk#17 ASC NULLS FIRST], false, 0 (199) Scan parquet -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (200) Filter -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Condition : isnotnull(c_customer_sk#21) +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Condition : isnotnull(c_customer_sk#20) (201) Exchange -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: hashpartitioning(c_customer_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: hashpartitioning(c_customer_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=31] (202) Sort -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: [c_customer_sk#21 ASC NULLS FIRST], false, 0 +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: [c_customer_sk#20 ASC NULLS FIRST], false, 0 (203) SortMergeJoin -Left keys [1]: [ws_bill_customer_sk#18] -Right keys [1]: [c_customer_sk#21] +Left keys [1]: [ws_bill_customer_sk#17] +Right keys [1]: [c_customer_sk#20] Join type: Inner Join condition: None (204) Project -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [5]: [ws_bill_customer_sk#18, d_date#20, c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [5]: [ws_bill_customer_sk#17, d_date#19, c_customer_sk#20, c_first_name#21, c_last_name#22] (205) HashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#23, c_first_name#22, d_date#20] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (206) Exchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(c_last_name#23, c_first_name#22, d_date#20, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(c_last_name#22, c_first_name#21, d_date#19, 100), ENSURE_REQUIREMENTS, [plan_id=32] (207) HashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#23, c_first_name#22, d_date#20] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (208) Exchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20), 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19), 100), ENSURE_REQUIREMENTS, [plan_id=33] (209) Sort -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: [coalesce(c_last_name#23, ) ASC NULLS FIRST, isnull(c_last_name#23) ASC NULLS FIRST, coalesce(c_first_name#22, ) ASC NULLS FIRST, isnull(c_first_name#22) ASC NULLS FIRST, coalesce(d_date#20, 1970-01-01) ASC NULLS FIRST, isnull(d_date#20) ASC NULLS FIRST], false, 0 +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: [coalesce(c_last_name#22, ) ASC NULLS FIRST, isnull(c_last_name#22) ASC NULLS FIRST, coalesce(c_first_name#21, ) ASC NULLS FIRST, isnull(c_first_name#21) ASC NULLS FIRST, coalesce(d_date#19, 1970-01-01) ASC NULLS FIRST, isnull(d_date#19) ASC NULLS FIRST], false, 0 (210) SortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20)] +Right keys [6]: [coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19)] Join type: LeftSemi Join condition: None @@ -1160,7 +1160,7 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Input: [] Keys: [] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#24] +Aggregate Attributes [1]: [count#23] Results [1]: [count#29] (213) Exchange diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39a.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39a.txt index efd00abed..71817f0e4 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39a.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39a.txt @@ -394,219 +394,219 @@ Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, _c4#11, Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [partial_stddev_samp(_c4#11), partial_avg(_c5#12)] Aggregate Attributes [5]: [n#13, avg#14, m2#15, sum#16, count#17] -Results [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Results [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] (52) NativeShuffleExchange -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: hashpartitioning(w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Output [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: X (54) AQEShuffleRead -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: coalesced (55) InputAdapter -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] (56) NativeHashAggregate -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double)), avg(inv_quantity_on_hand#4)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] -Results [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] +Results [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] (57) NativeProject -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#4)#20 AS mean#22] -Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#4)#21 AS mean#23] +Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] (58) NativeFilter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (59) NativeProject -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#23] -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#24] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] (60) NativeShuffleExchange -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: hashpartitioning(i_item_sk#5, w_warehouse_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=8] (61) ShuffleQueryStage -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: X (62) AQEShuffleRead -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: coalesced (63) InputAdapter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] (64) NativeSort -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: [i_item_sk#5 ASC NULLS FIRST, w_warehouse_sk#6 ASC NULLS FIRST], false (65) ReusedExchange [Reuses operator id: 34] -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] (66) ShuffleQueryStage -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] Arguments: X (67) AQEShuffleRead -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] Arguments: coalesced (68) InputAdapter -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [#24, #25, #26, #27, #28] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [#25, #26, #27, #28, #29] (69) InputAdapter -Input [5]: [#24#24, #25#25, #26#26, #27#27, #28#28] +Input [5]: [#25#25, #26#26, #27#27, #28#28, #29#29] (70) NativeSort -Input [5]: [#24#24, #25#25, #26#26, #27#27, #28#28] -Arguments: [inv_date_sk#24 ASC NULLS FIRST], false +Input [5]: [#25#25, #26#26, #27#27, #28#28, #29#29] +Arguments: [inv_date_sk#25 ASC NULLS FIRST], false (157) Scan parquet -Output [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [3]: [d_date_sk#30, d_year#31, d_moy#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (72) InputAdapter -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] -Arguments: [#29, #30, #31] +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] +Arguments: [#30, #31, #32] (73) NativeFilter -Input [3]: [#29#29, #30#30, #31#31] -Condition : ((((isnotnull(d_year#30) AND isnotnull(d_moy#31)) AND (d_year#30 = 2001)) AND (d_moy#31 = 2)) AND isnotnull(d_date_sk#29)) +Input [3]: [#30#30, #31#31, #32#32] +Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2001)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) (74) NativeProject -Output [2]: [d_date_sk#29, d_moy#31] -Input [3]: [#29#29, #30#30, #31#31] +Output [2]: [d_date_sk#30, d_moy#32] +Input [3]: [#30#30, #31#31, #32#32] (75) NativeShuffleExchange -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=9] (76) ShuffleQueryStage -Output [2]: [d_date_sk#29, d_moy#31] +Output [2]: [d_date_sk#30, d_moy#32] Arguments: X (77) AQEShuffleRead -Input [2]: [d_date_sk#29, d_moy#31] +Input [2]: [d_date_sk#30, d_moy#32] Arguments: coalesced (78) InputAdapter -Input [2]: [d_date_sk#29, d_moy#31] +Input [2]: [d_date_sk#30, d_moy#32] (79) NativeSort -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: [d_date_sk#29 ASC NULLS FIRST], false +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: [d_date_sk#30 ASC NULLS FIRST], false (80) NativeSortMergeJoin -Left keys [1]: [inv_date_sk#24] -Right keys [1]: [d_date_sk#29] +Left keys [1]: [inv_date_sk#25] +Right keys [1]: [d_date_sk#30] Join type: Inner Join condition: None (81) NativeProject -Output [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Input [7]: [#24#24, #25#25, #26#26, #27#27, #28#28, d_date_sk#29, d_moy#31] +Output [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Input [7]: [#25#25, #26#26, #27#27, #28#28, #29#29, d_date_sk#30, d_moy#32] (82) NativeProject -Output [6]: [w_warehouse_name#28 AS w_warehouse_name#28, w_warehouse_sk#27 AS w_warehouse_sk#27, i_item_sk#26 AS i_item_sk#26, d_moy#31 AS d_moy#31, cast(inv_quantity_on_hand#25 as double) AS _c4#32, inv_quantity_on_hand#25 AS _c5#33] -Input [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] +Output [6]: [w_warehouse_name#29 AS w_warehouse_name#29, w_warehouse_sk#28 AS w_warehouse_sk#28, i_item_sk#27 AS i_item_sk#27, d_moy#32 AS d_moy#32, cast(inv_quantity_on_hand#26 as double) AS _c4#33, inv_quantity_on_hand#26 AS _c5#34] +Input [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] (83) NativeHashAggregate -Input [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, _c4#32, _c5#33] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [partial_stddev_samp(_c4#32), partial_avg(_c5#33)] -Aggregate Attributes [5]: [n#34, avg#35, m2#36, sum#37, count#38] -Results [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, _c4#33, _c5#34] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [partial_stddev_samp(_c4#33), partial_avg(_c5#34)] +Aggregate Attributes [5]: [n#35, avg#36, m2#37, sum#38, count#39] +Results [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] (84) NativeShuffleExchange -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] -Arguments: hashpartitioning(w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] +Arguments: hashpartitioning(w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, 100), ENSURE_REQUIREMENTS, [plan_id=10] (85) ShuffleQueryStage -Output [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Output [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] Arguments: X (86) AQEShuffleRead -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] Arguments: coalesced (87) InputAdapter -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] (88) NativeHashAggregate -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double)), avg(inv_quantity_on_hand#25)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] -Results [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double)), avg(inv_quantity_on_hand#26)] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] +Results [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] (89) NativeProject -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#25)#20 AS mean#22] -Input [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#26)#21 AS mean#23] +Input [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] (90) NativeFilter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (91) NativeProject -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#22 AS mean#39, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#40] -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#23 AS mean#40, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#41] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] (92) NativeShuffleExchange -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: hashpartitioning(i_item_sk#26, w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: hashpartitioning(i_item_sk#27, w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=11] (93) ShuffleQueryStage -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: X (94) AQEShuffleRead -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: coalesced (95) InputAdapter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] (96) NativeSort -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [i_item_sk#26 ASC NULLS FIRST, w_warehouse_sk#27 ASC NULLS FIRST], false +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [i_item_sk#27 ASC NULLS FIRST, w_warehouse_sk#28 ASC NULLS FIRST], false (97) NativeSortMergeJoin Left keys [2]: [i_item_sk#5, w_warehouse_sk#6] -Right keys [2]: [i_item_sk#26, w_warehouse_sk#27] +Right keys [2]: [i_item_sk#27, w_warehouse_sk#28] Join type: Inner Join condition: None (98) NativeShuffleExchange -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=12] (99) ShuffleQueryStage -Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: X (100) AQEShuffleRead -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: coalesced (101) InputAdapter -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] (102) NativeSort -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST], true +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST], true (103) Scan parquet Output [4]: [inv_date_sk#1, inv_item_sk#2, inv_warehouse_sk#3, inv_quantity_on_hand#4] @@ -739,210 +739,210 @@ Input [5]: [inv_quantity_on_hand#4, i_item_sk#5, w_warehouse_sk#6, w_warehouse_n Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#4 as double)), partial_avg(inv_quantity_on_hand#4)] Aggregate Attributes [5]: [n#13, avg#14, m2#15, sum#16, count#17] -Results [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Results [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] (131) Exchange -Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] Arguments: hashpartitioning(w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=19] (132) HashAggregate -Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double)), avg(inv_quantity_on_hand#4)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] -Results [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#4)#20 AS mean#22] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] +Results [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#4)#21 AS mean#23] (133) Filter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (134) Project -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#23] -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#24] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] (135) Exchange -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: hashpartitioning(i_item_sk#5, w_warehouse_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=20] (136) Sort -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: [i_item_sk#5 ASC NULLS FIRST, w_warehouse_sk#6 ASC NULLS FIRST], false, 0 (137) Scan parquet -Output [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] +Output [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(inv_item_sk), IsNotNull(inv_warehouse_sk), IsNotNull(inv_date_sk)] ReadSchema: struct (138) Filter -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Condition : ((isnotnull(inv_item_sk#46) AND isnotnull(inv_warehouse_sk#47)) AND isnotnull(inv_date_sk#24)) +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Condition : ((isnotnull(inv_item_sk#47) AND isnotnull(inv_warehouse_sk#48)) AND isnotnull(inv_date_sk#25)) (139) Exchange -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Arguments: hashpartitioning(inv_item_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Arguments: hashpartitioning(inv_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=21] (140) Sort -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Arguments: [inv_item_sk#46 ASC NULLS FIRST], false, 0 +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Arguments: [inv_item_sk#47 ASC NULLS FIRST], false, 0 (141) Scan parquet -Output [1]: [i_item_sk#26] +Output [1]: [i_item_sk#27] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (142) Filter -Input [1]: [i_item_sk#26] -Condition : isnotnull(i_item_sk#26) +Input [1]: [i_item_sk#27] +Condition : isnotnull(i_item_sk#27) (143) Exchange -Input [1]: [i_item_sk#26] -Arguments: hashpartitioning(i_item_sk#26, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [1]: [i_item_sk#27] +Arguments: hashpartitioning(i_item_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=22] (144) Sort -Input [1]: [i_item_sk#26] -Arguments: [i_item_sk#26 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_sk#27] +Arguments: [i_item_sk#27 ASC NULLS FIRST], false, 0 (145) SortMergeJoin -Left keys [1]: [inv_item_sk#46] -Right keys [1]: [i_item_sk#26] +Left keys [1]: [inv_item_sk#47] +Right keys [1]: [i_item_sk#27] Join type: Inner Join condition: None (146) Project -Output [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Input [5]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] +Output [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Input [5]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] (147) Exchange -Input [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Arguments: hashpartitioning(inv_warehouse_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Arguments: hashpartitioning(inv_warehouse_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=23] (148) Sort -Input [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Arguments: [inv_warehouse_sk#47 ASC NULLS FIRST], false, 0 +Input [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Arguments: [inv_warehouse_sk#48 ASC NULLS FIRST], false, 0 (149) Scan parquet -Output [2]: [w_warehouse_sk#27, w_warehouse_name#28] +Output [2]: [w_warehouse_sk#28, w_warehouse_name#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(w_warehouse_sk)] ReadSchema: struct (150) Filter -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Condition : isnotnull(w_warehouse_sk#27) +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Condition : isnotnull(w_warehouse_sk#28) (151) Exchange -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Arguments: hashpartitioning(w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Arguments: hashpartitioning(w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=24] (152) Sort -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [w_warehouse_sk#27 ASC NULLS FIRST], false, 0 +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [w_warehouse_sk#28 ASC NULLS FIRST], false, 0 (153) SortMergeJoin -Left keys [1]: [inv_warehouse_sk#47] -Right keys [1]: [w_warehouse_sk#27] +Left keys [1]: [inv_warehouse_sk#48] +Right keys [1]: [w_warehouse_sk#28] Join type: Inner Join condition: None (154) Project -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Input [6]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Input [6]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] (155) Exchange -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: hashpartitioning(inv_date_sk#24, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: hashpartitioning(inv_date_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=25] (156) Sort -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [inv_date_sk#24 ASC NULLS FIRST], false, 0 +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [inv_date_sk#25 ASC NULLS FIRST], false, 0 (157) Scan parquet -Output [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [3]: [d_date_sk#30, d_year#31, d_moy#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (158) Filter -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] -Condition : ((((isnotnull(d_year#30) AND isnotnull(d_moy#31)) AND (d_year#30 = 2001)) AND (d_moy#31 = 2)) AND isnotnull(d_date_sk#29)) +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] +Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2001)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) (159) Project -Output [2]: [d_date_sk#29, d_moy#31] -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [2]: [d_date_sk#30, d_moy#32] +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] (160) Exchange -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=26] (161) Sort -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: [d_date_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: [d_date_sk#30 ASC NULLS FIRST], false, 0 (162) SortMergeJoin -Left keys [1]: [inv_date_sk#24] -Right keys [1]: [d_date_sk#29] +Left keys [1]: [inv_date_sk#25] +Right keys [1]: [d_date_sk#30] Join type: Inner Join condition: None (163) Project -Output [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Input [7]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_date_sk#29, d_moy#31] +Output [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Input [7]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_date_sk#30, d_moy#32] (164) HashAggregate -Input [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#25 as double)), partial_avg(inv_quantity_on_hand#25)] -Aggregate Attributes [5]: [n#34, avg#35, m2#36, sum#37, count#38] -Results [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] +Input [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#26 as double)), partial_avg(inv_quantity_on_hand#26)] +Aggregate Attributes [5]: [n#35, avg#36, m2#37, sum#38, count#39] +Results [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] (165) Exchange -Input [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] -Arguments: hashpartitioning(w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] +Arguments: hashpartitioning(w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, 100), ENSURE_REQUIREMENTS, [plan_id=27] (166) HashAggregate -Input [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double)), avg(inv_quantity_on_hand#25)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] -Results [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#25)#20 AS mean#22] +Input [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double)), avg(inv_quantity_on_hand#26)] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] +Results [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#26)#21 AS mean#23] (167) Filter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (168) Project -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#22 AS mean#39, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#40] -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#23 AS mean#40, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#41] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] (169) Exchange -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: hashpartitioning(i_item_sk#26, w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: hashpartitioning(i_item_sk#27, w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=28] (170) Sort -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [i_item_sk#26 ASC NULLS FIRST, w_warehouse_sk#27 ASC NULLS FIRST], false, 0 +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [i_item_sk#27 ASC NULLS FIRST, w_warehouse_sk#28 ASC NULLS FIRST], false, 0 (171) SortMergeJoin Left keys [2]: [i_item_sk#5, w_warehouse_sk#6] -Right keys [2]: [i_item_sk#26, w_warehouse_sk#27] +Right keys [2]: [i_item_sk#27, w_warehouse_sk#28] Join type: Inner Join condition: None (172) Exchange -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=29] (173) Sort -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST], true, 0 +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST], true, 0 (174) AdaptiveSparkPlan -Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39b.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39b.txt index 546be20b8..c264f134f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39b.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q39b.txt @@ -394,219 +394,219 @@ Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, _c4#11, Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [partial_stddev_samp(_c4#11), partial_avg(_c5#12)] Aggregate Attributes [5]: [n#13, avg#14, m2#15, sum#16, count#17] -Results [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Results [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] (52) NativeShuffleExchange -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: hashpartitioning(w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Output [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: X (54) AQEShuffleRead -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Arguments: coalesced (55) InputAdapter -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] (56) NativeHashAggregate -Input [5]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18#18] +Input [7]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, #18, #18, #19] Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double)), avg(inv_quantity_on_hand#4)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] -Results [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] +Results [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] (57) NativeProject -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#4)#20 AS mean#22] -Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#4)#21 AS mean#23] +Input [6]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] (58) NativeFilter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] -Condition : (CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END AND CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.5) END) +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] +Condition : (CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END AND CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.5) END) (59) NativeProject -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#23] -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#24] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] (60) NativeShuffleExchange -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: hashpartitioning(i_item_sk#5, w_warehouse_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=8] (61) ShuffleQueryStage -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: X (62) AQEShuffleRead -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: coalesced (63) InputAdapter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] (64) NativeSort -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: [i_item_sk#5 ASC NULLS FIRST, w_warehouse_sk#6 ASC NULLS FIRST], false (65) ReusedExchange [Reuses operator id: 34] -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] (66) ShuffleQueryStage -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] Arguments: X (67) AQEShuffleRead -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] Arguments: coalesced (68) InputAdapter -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [#24, #25, #26, #27, #28] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [#25, #26, #27, #28, #29] (69) InputAdapter -Input [5]: [#24#24, #25#25, #26#26, #27#27, #28#28] +Input [5]: [#25#25, #26#26, #27#27, #28#28, #29#29] (70) NativeSort -Input [5]: [#24#24, #25#25, #26#26, #27#27, #28#28] -Arguments: [inv_date_sk#24 ASC NULLS FIRST], false +Input [5]: [#25#25, #26#26, #27#27, #28#28, #29#29] +Arguments: [inv_date_sk#25 ASC NULLS FIRST], false (157) Scan parquet -Output [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [3]: [d_date_sk#30, d_year#31, d_moy#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (72) InputAdapter -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] -Arguments: [#29, #30, #31] +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] +Arguments: [#30, #31, #32] (73) NativeFilter -Input [3]: [#29#29, #30#30, #31#31] -Condition : ((((isnotnull(d_year#30) AND isnotnull(d_moy#31)) AND (d_year#30 = 2001)) AND (d_moy#31 = 2)) AND isnotnull(d_date_sk#29)) +Input [3]: [#30#30, #31#31, #32#32] +Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2001)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) (74) NativeProject -Output [2]: [d_date_sk#29, d_moy#31] -Input [3]: [#29#29, #30#30, #31#31] +Output [2]: [d_date_sk#30, d_moy#32] +Input [3]: [#30#30, #31#31, #32#32] (75) NativeShuffleExchange -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=9] (76) ShuffleQueryStage -Output [2]: [d_date_sk#29, d_moy#31] +Output [2]: [d_date_sk#30, d_moy#32] Arguments: X (77) AQEShuffleRead -Input [2]: [d_date_sk#29, d_moy#31] +Input [2]: [d_date_sk#30, d_moy#32] Arguments: coalesced (78) InputAdapter -Input [2]: [d_date_sk#29, d_moy#31] +Input [2]: [d_date_sk#30, d_moy#32] (79) NativeSort -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: [d_date_sk#29 ASC NULLS FIRST], false +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: [d_date_sk#30 ASC NULLS FIRST], false (80) NativeSortMergeJoin -Left keys [1]: [inv_date_sk#24] -Right keys [1]: [d_date_sk#29] +Left keys [1]: [inv_date_sk#25] +Right keys [1]: [d_date_sk#30] Join type: Inner Join condition: None (81) NativeProject -Output [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Input [7]: [#24#24, #25#25, #26#26, #27#27, #28#28, d_date_sk#29, d_moy#31] +Output [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Input [7]: [#25#25, #26#26, #27#27, #28#28, #29#29, d_date_sk#30, d_moy#32] (82) NativeProject -Output [6]: [w_warehouse_name#28 AS w_warehouse_name#28, w_warehouse_sk#27 AS w_warehouse_sk#27, i_item_sk#26 AS i_item_sk#26, d_moy#31 AS d_moy#31, cast(inv_quantity_on_hand#25 as double) AS _c4#32, inv_quantity_on_hand#25 AS _c5#33] -Input [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] +Output [6]: [w_warehouse_name#29 AS w_warehouse_name#29, w_warehouse_sk#28 AS w_warehouse_sk#28, i_item_sk#27 AS i_item_sk#27, d_moy#32 AS d_moy#32, cast(inv_quantity_on_hand#26 as double) AS _c4#33, inv_quantity_on_hand#26 AS _c5#34] +Input [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] (83) NativeHashAggregate -Input [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, _c4#32, _c5#33] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [partial_stddev_samp(_c4#32), partial_avg(_c5#33)] -Aggregate Attributes [5]: [n#34, avg#35, m2#36, sum#37, count#38] -Results [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, _c4#33, _c5#34] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [partial_stddev_samp(_c4#33), partial_avg(_c5#34)] +Aggregate Attributes [5]: [n#35, avg#36, m2#37, sum#38, count#39] +Results [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] (84) NativeShuffleExchange -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] -Arguments: hashpartitioning(w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] +Arguments: hashpartitioning(w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, 100), ENSURE_REQUIREMENTS, [plan_id=10] (85) ShuffleQueryStage -Output [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Output [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] Arguments: X (86) AQEShuffleRead -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] Arguments: coalesced (87) InputAdapter -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] (88) NativeHashAggregate -Input [5]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, #18#18] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double)), avg(inv_quantity_on_hand#25)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] -Results [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] +Input [7]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, #18, #18, #19] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double)), avg(inv_quantity_on_hand#26)] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] +Results [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] (89) NativeProject -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#25)#20 AS mean#22] -Input [6]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#26)#21 AS mean#23] +Input [6]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] (90) NativeFilter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (91) NativeProject -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#22 AS mean#39, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#40] -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#23 AS mean#40, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#41] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] (92) NativeShuffleExchange -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: hashpartitioning(i_item_sk#26, w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: hashpartitioning(i_item_sk#27, w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=11] (93) ShuffleQueryStage -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: X (94) AQEShuffleRead -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: coalesced (95) InputAdapter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] (96) NativeSort -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [i_item_sk#26 ASC NULLS FIRST, w_warehouse_sk#27 ASC NULLS FIRST], false +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [i_item_sk#27 ASC NULLS FIRST, w_warehouse_sk#28 ASC NULLS FIRST], false (97) NativeSortMergeJoin Left keys [2]: [i_item_sk#5, w_warehouse_sk#6] -Right keys [2]: [i_item_sk#26, w_warehouse_sk#27] +Right keys [2]: [i_item_sk#27, w_warehouse_sk#28] Join type: Inner Join condition: None (98) NativeShuffleExchange -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=12] (99) ShuffleQueryStage -Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: X (100) AQEShuffleRead -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: coalesced (101) InputAdapter -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] (102) NativeSort -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST], true +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST], true (103) Scan parquet Output [4]: [inv_date_sk#1, inv_item_sk#2, inv_warehouse_sk#3, inv_quantity_on_hand#4] @@ -739,210 +739,210 @@ Input [5]: [inv_quantity_on_hand#4, i_item_sk#5, w_warehouse_sk#6, w_warehouse_n Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#4 as double)), partial_avg(inv_quantity_on_hand#4)] Aggregate Attributes [5]: [n#13, avg#14, m2#15, sum#16, count#17] -Results [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Results [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] (131) Exchange -Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] Arguments: hashpartitioning(w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=19] (132) HashAggregate -Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#41, avg#42, m2#43, sum#44, count#45] +Input [9]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10, n#42, avg#43, m2#44, sum#45, count#46] Keys [4]: [w_warehouse_name#7, w_warehouse_sk#6, i_item_sk#5, d_moy#10] Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double)), avg(inv_quantity_on_hand#4)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#19, avg(inv_quantity_on_hand#4)#20] -Results [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#4)#20 AS mean#22] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#4 as double))#20, avg(inv_quantity_on_hand#4)#21] +Results [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stddev_samp(cast(inv_quantity_on_hand#4 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#4)#21 AS mean#23] (133) Filter -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] -Condition : (CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END AND CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.5) END) +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] +Condition : (CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END AND CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.5) END) (134) Project -Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#23] -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#24] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, stdev#22, mean#23] (135) Exchange -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: hashpartitioning(i_item_sk#5, w_warehouse_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=20] (136) Sort -Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23] +Input [5]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24] Arguments: [i_item_sk#5 ASC NULLS FIRST, w_warehouse_sk#6 ASC NULLS FIRST], false, 0 (137) Scan parquet -Output [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] +Output [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(inv_item_sk), IsNotNull(inv_warehouse_sk), IsNotNull(inv_date_sk)] ReadSchema: struct (138) Filter -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Condition : ((isnotnull(inv_item_sk#46) AND isnotnull(inv_warehouse_sk#47)) AND isnotnull(inv_date_sk#24)) +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Condition : ((isnotnull(inv_item_sk#47) AND isnotnull(inv_warehouse_sk#48)) AND isnotnull(inv_date_sk#25)) (139) Exchange -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Arguments: hashpartitioning(inv_item_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=21] +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Arguments: hashpartitioning(inv_item_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=21] (140) Sort -Input [4]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25] -Arguments: [inv_item_sk#46 ASC NULLS FIRST], false, 0 +Input [4]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26] +Arguments: [inv_item_sk#47 ASC NULLS FIRST], false, 0 (141) Scan parquet -Output [1]: [i_item_sk#26] +Output [1]: [i_item_sk#27] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (142) Filter -Input [1]: [i_item_sk#26] -Condition : isnotnull(i_item_sk#26) +Input [1]: [i_item_sk#27] +Condition : isnotnull(i_item_sk#27) (143) Exchange -Input [1]: [i_item_sk#26] -Arguments: hashpartitioning(i_item_sk#26, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [1]: [i_item_sk#27] +Arguments: hashpartitioning(i_item_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=22] (144) Sort -Input [1]: [i_item_sk#26] -Arguments: [i_item_sk#26 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_sk#27] +Arguments: [i_item_sk#27 ASC NULLS FIRST], false, 0 (145) SortMergeJoin -Left keys [1]: [inv_item_sk#46] -Right keys [1]: [i_item_sk#26] +Left keys [1]: [inv_item_sk#47] +Right keys [1]: [i_item_sk#27] Join type: Inner Join condition: None (146) Project -Output [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Input [5]: [inv_date_sk#24, inv_item_sk#46, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] +Output [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Input [5]: [inv_date_sk#25, inv_item_sk#47, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] (147) Exchange -Input [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Arguments: hashpartitioning(inv_warehouse_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Arguments: hashpartitioning(inv_warehouse_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=23] (148) Sort -Input [4]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26] -Arguments: [inv_warehouse_sk#47 ASC NULLS FIRST], false, 0 +Input [4]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27] +Arguments: [inv_warehouse_sk#48 ASC NULLS FIRST], false, 0 (149) Scan parquet -Output [2]: [w_warehouse_sk#27, w_warehouse_name#28] +Output [2]: [w_warehouse_sk#28, w_warehouse_name#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(w_warehouse_sk)] ReadSchema: struct (150) Filter -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Condition : isnotnull(w_warehouse_sk#27) +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Condition : isnotnull(w_warehouse_sk#28) (151) Exchange -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Arguments: hashpartitioning(w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Arguments: hashpartitioning(w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=24] (152) Sort -Input [2]: [w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [w_warehouse_sk#27 ASC NULLS FIRST], false, 0 +Input [2]: [w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [w_warehouse_sk#28 ASC NULLS FIRST], false, 0 (153) SortMergeJoin -Left keys [1]: [inv_warehouse_sk#47] -Right keys [1]: [w_warehouse_sk#27] +Left keys [1]: [inv_warehouse_sk#48] +Right keys [1]: [w_warehouse_sk#28] Join type: Inner Join condition: None (154) Project -Output [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Input [6]: [inv_date_sk#24, inv_warehouse_sk#47, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] +Output [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Input [6]: [inv_date_sk#25, inv_warehouse_sk#48, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] (155) Exchange -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: hashpartitioning(inv_date_sk#24, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: hashpartitioning(inv_date_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=25] (156) Sort -Input [5]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28] -Arguments: [inv_date_sk#24 ASC NULLS FIRST], false, 0 +Input [5]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29] +Arguments: [inv_date_sk#25 ASC NULLS FIRST], false, 0 (157) Scan parquet -Output [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [3]: [d_date_sk#30, d_year#31, d_moy#32] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (158) Filter -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] -Condition : ((((isnotnull(d_year#30) AND isnotnull(d_moy#31)) AND (d_year#30 = 2001)) AND (d_moy#31 = 2)) AND isnotnull(d_date_sk#29)) +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] +Condition : ((((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2001)) AND (d_moy#32 = 2)) AND isnotnull(d_date_sk#30)) (159) Project -Output [2]: [d_date_sk#29, d_moy#31] -Input [3]: [d_date_sk#29, d_year#30, d_moy#31] +Output [2]: [d_date_sk#30, d_moy#32] +Input [3]: [d_date_sk#30, d_year#31, d_moy#32] (160) Exchange -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=26] (161) Sort -Input [2]: [d_date_sk#29, d_moy#31] -Arguments: [d_date_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#30, d_moy#32] +Arguments: [d_date_sk#30 ASC NULLS FIRST], false, 0 (162) SortMergeJoin -Left keys [1]: [inv_date_sk#24] -Right keys [1]: [d_date_sk#29] +Left keys [1]: [inv_date_sk#25] +Right keys [1]: [d_date_sk#30] Join type: Inner Join condition: None (163) Project -Output [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Input [7]: [inv_date_sk#24, inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_date_sk#29, d_moy#31] +Output [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Input [7]: [inv_date_sk#25, inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_date_sk#30, d_moy#32] (164) HashAggregate -Input [5]: [inv_quantity_on_hand#25, i_item_sk#26, w_warehouse_sk#27, w_warehouse_name#28, d_moy#31] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#25 as double)), partial_avg(inv_quantity_on_hand#25)] -Aggregate Attributes [5]: [n#34, avg#35, m2#36, sum#37, count#38] -Results [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] +Input [5]: [inv_quantity_on_hand#26, i_item_sk#27, w_warehouse_sk#28, w_warehouse_name#29, d_moy#32] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [partial_stddev_samp(cast(inv_quantity_on_hand#26 as double)), partial_avg(inv_quantity_on_hand#26)] +Aggregate Attributes [5]: [n#35, avg#36, m2#37, sum#38, count#39] +Results [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] (165) Exchange -Input [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] -Arguments: hashpartitioning(w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] +Arguments: hashpartitioning(w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, 100), ENSURE_REQUIREMENTS, [plan_id=27] (166) HashAggregate -Input [9]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31, n#48, avg#49, m2#50, sum#51, count#52] -Keys [4]: [w_warehouse_name#28, w_warehouse_sk#27, i_item_sk#26, d_moy#31] -Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double)), avg(inv_quantity_on_hand#25)] -Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#25 as double))#19, avg(inv_quantity_on_hand#25)#20] -Results [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stddev_samp(cast(inv_quantity_on_hand#25 as double))#19 AS stdev#21, avg(inv_quantity_on_hand#25)#20 AS mean#22] +Input [9]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32, n#49, avg#50, m2#51, sum#52, count#53] +Keys [4]: [w_warehouse_name#29, w_warehouse_sk#28, i_item_sk#27, d_moy#32] +Functions [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double)), avg(inv_quantity_on_hand#26)] +Aggregate Attributes [2]: [stddev_samp(cast(inv_quantity_on_hand#26 as double))#20, avg(inv_quantity_on_hand#26)#21] +Results [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stddev_samp(cast(inv_quantity_on_hand#26 as double))#20 AS stdev#22, avg(inv_quantity_on_hand#26)#21 AS mean#23] (167) Filter -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] -Condition : CASE WHEN (mean#22 = 0.0) THEN false ELSE ((stdev#21 / mean#22) > 1.0) END +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] +Condition : CASE WHEN (mean#23 = 0.0) THEN false ELSE ((stdev#22 / mean#23) > 1.0) END (168) Project -Output [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#22 AS mean#39, CASE WHEN (mean#22 = 0.0) THEN null ELSE (stdev#21 / mean#22) END AS cov#40] -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, stdev#21, mean#22] +Output [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#23 AS mean#40, CASE WHEN (mean#23 = 0.0) THEN null ELSE (stdev#22 / mean#23) END AS cov#41] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, stdev#22, mean#23] (169) Exchange -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: hashpartitioning(i_item_sk#26, w_warehouse_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: hashpartitioning(i_item_sk#27, w_warehouse_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=28] (170) Sort -Input [5]: [w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [i_item_sk#26 ASC NULLS FIRST, w_warehouse_sk#27 ASC NULLS FIRST], false, 0 +Input [5]: [w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [i_item_sk#27 ASC NULLS FIRST, w_warehouse_sk#28 ASC NULLS FIRST], false, 0 (171) SortMergeJoin Left keys [2]: [i_item_sk#5, w_warehouse_sk#6] -Right keys [2]: [i_item_sk#26, w_warehouse_sk#27] +Right keys [2]: [i_item_sk#27, w_warehouse_sk#28] Join type: Inner Join condition: None (172) Exchange -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: rangepartitioning(w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=29] (173) Sort -Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] -Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#22 ASC NULLS FIRST, cov#23 ASC NULLS FIRST, d_moy#31 ASC NULLS FIRST, mean#39 ASC NULLS FIRST, cov#40 ASC NULLS FIRST], true, 0 +Input [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] +Arguments: [w_warehouse_sk#6 ASC NULLS FIRST, i_item_sk#5 ASC NULLS FIRST, d_moy#10 ASC NULLS FIRST, mean#23 ASC NULLS FIRST, cov#24 ASC NULLS FIRST, d_moy#32 ASC NULLS FIRST, mean#40 ASC NULLS FIRST, cov#41 ASC NULLS FIRST], true, 0 (174) AdaptiveSparkPlan -Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#22, cov#23, w_warehouse_sk#27, i_item_sk#26, d_moy#31, mean#39, cov#40] +Output [10]: [w_warehouse_sk#6, i_item_sk#5, d_moy#10, mean#23, cov#24, w_warehouse_sk#28, i_item_sk#27, d_moy#32, mean#40, cov#41] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt index 58b55aaa3..2295ee84a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt @@ -532,25 +532,25 @@ Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_fla Keys [8]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16] Functions [1]: [partial_sum(_c8#17)] Aggregate Attributes [2]: [sum#18, isEmpty#19] -Results [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Results [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] (36) NativeShuffleExchange -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] Arguments: hashpartitioning(c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Output [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] Arguments: X (38) AQEShuffleRead -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] Arguments: coalesced (39) InputAdapter -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] (40) NativeHashAggregate -Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20#20] +Input [9]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16, #20] Keys [8]: [c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8, d_year#16] Functions [1]: [sum(((((ss_ext_list_price#14 - ss_ext_wholesale_cost#13) - ss_ext_discount_amt#11) + ss_ext_sales_price#12) / 2))] Aggregate Attributes [1]: [sum(((((ss_ext_list_price#14 - ss_ext_wholesale_cost#13) - ss_ext_discount_amt#11) + ss_ext_sales_price#12) / 2))#21] @@ -658,25 +658,25 @@ Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_ Keys [8]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37] Functions [1]: [partial_sum(_c8#38)] Aggregate Attributes [2]: [sum#39, isEmpty#40] -Results [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Results [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] (66) NativeShuffleExchange -Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] Arguments: hashpartitioning(c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, 100), ENSURE_REQUIREMENTS, [plan_id=8] (67) ShuffleQueryStage -Output [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Output [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] Arguments: X (68) AQEShuffleRead -Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] Arguments: coalesced (69) InputAdapter -Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] (70) NativeHashAggregate -Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20#20] +Input [9]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37, #20] Keys [8]: [c_customer_id#24, c_first_name#25, c_last_name#26, c_preferred_cust_flag#27, c_birth_country#28, c_login#29, c_email_address#30, d_year#37] Functions [1]: [sum(((((ss_ext_list_price#35 - ss_ext_wholesale_cost#34) - ss_ext_discount_amt#32) + ss_ext_sales_price#33) / 2))] Aggregate Attributes [1]: [sum(((((ss_ext_list_price#35 - ss_ext_wholesale_cost#34) - ss_ext_discount_amt#32) + ss_ext_sales_price#33) / 2))#21] @@ -837,25 +837,25 @@ Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_ Keys [8]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64] Functions [1]: [partial_sum(_c8#65)] Aggregate Attributes [2]: [sum#66, isEmpty#67] -Results [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Results [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] (109) NativeShuffleExchange -Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] Arguments: hashpartitioning(c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, 100), ENSURE_REQUIREMENTS, [plan_id=12] (110) ShuffleQueryStage -Output [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Output [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] Arguments: X (111) AQEShuffleRead -Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] Arguments: coalesced (112) InputAdapter -Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] (113) NativeHashAggregate -Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20#20] +Input [9]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64, #20] Keys [8]: [c_customer_id#50, c_first_name#51, c_last_name#52, c_preferred_cust_flag#53, c_birth_country#54, c_login#55, c_email_address#56, d_year#64] Functions [1]: [sum(((((cs_ext_list_price#62 - cs_ext_wholesale_cost#61) - cs_ext_discount_amt#59) + cs_ext_sales_price#60) / 2))] Aggregate Attributes [1]: [sum(((((cs_ext_list_price#62 - cs_ext_wholesale_cost#61) - cs_ext_discount_amt#59) + cs_ext_sales_price#60) / 2))#68] @@ -961,25 +961,25 @@ Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_ Keys [8]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84] Functions [1]: [partial_sum(_c8#85)] Aggregate Attributes [2]: [sum#86, isEmpty#87] -Results [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Results [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] (139) NativeShuffleExchange -Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] Arguments: hashpartitioning(c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, 100), ENSURE_REQUIREMENTS, [plan_id=14] (140) ShuffleQueryStage -Output [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Output [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] Arguments: X (141) AQEShuffleRead -Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] Arguments: coalesced (142) InputAdapter -Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] (143) NativeHashAggregate -Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20#20] +Input [9]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84, #20] Keys [8]: [c_customer_id#71, c_first_name#72, c_last_name#73, c_preferred_cust_flag#74, c_birth_country#75, c_login#76, c_email_address#77, d_year#84] Functions [1]: [sum(((((cs_ext_list_price#82 - cs_ext_wholesale_cost#81) - cs_ext_discount_amt#79) + cs_ext_sales_price#80) / 2))] Aggregate Attributes [1]: [sum(((((cs_ext_list_price#82 - cs_ext_wholesale_cost#81) - cs_ext_discount_amt#79) + cs_ext_sales_price#80) / 2))#68] @@ -1147,25 +1147,25 @@ Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_ Keys [8]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105] Functions [1]: [partial_sum(_c8#106)] Aggregate Attributes [2]: [sum#107, isEmpty#108] -Results [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Results [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] (184) NativeShuffleExchange -Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] Arguments: hashpartitioning(c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, 100), ENSURE_REQUIREMENTS, [plan_id=18] (185) ShuffleQueryStage -Output [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Output [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] Arguments: X (186) AQEShuffleRead -Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] Arguments: coalesced (187) InputAdapter -Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] (188) NativeHashAggregate -Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20#20] +Input [9]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105, #20] Keys [8]: [c_customer_id#91, c_first_name#92, c_last_name#93, c_preferred_cust_flag#94, c_birth_country#95, c_login#96, c_email_address#97, d_year#105] Functions [1]: [sum(((((ws_ext_list_price#103 - ws_ext_wholesale_cost#102) - ws_ext_discount_amt#100) + ws_ext_sales_price#101) / 2))] Aggregate Attributes [1]: [sum(((((ws_ext_list_price#103 - ws_ext_wholesale_cost#102) - ws_ext_discount_amt#100) + ws_ext_sales_price#101) / 2))#109] @@ -1271,25 +1271,25 @@ Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cu Keys [8]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125] Functions [1]: [partial_sum(_c8#126)] Aggregate Attributes [2]: [sum#127, isEmpty#128] -Results [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Results [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] (214) NativeShuffleExchange -Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] Arguments: hashpartitioning(c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, 100), ENSURE_REQUIREMENTS, [plan_id=20] (215) ShuffleQueryStage -Output [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Output [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] Arguments: X (216) AQEShuffleRead -Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] Arguments: coalesced (217) InputAdapter -Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] (218) NativeHashAggregate -Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20#20] +Input [9]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125, #20] Keys [8]: [c_customer_id#112, c_first_name#113, c_last_name#114, c_preferred_cust_flag#115, c_birth_country#116, c_login#117, c_email_address#118, d_year#125] Functions [1]: [sum(((((ws_ext_list_price#123 - ws_ext_wholesale_cost#122) - ws_ext_discount_amt#120) + ws_ext_sales_price#121) / 2))] Aggregate Attributes [1]: [sum(((((ws_ext_list_price#123 - ws_ext_wholesale_cost#122) - ws_ext_discount_amt#120) + ws_ext_sales_price#121) / 2))#109] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q40.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q40.txt index 6341ff7a5..ddac6fb51 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q40.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q40.txt @@ -396,25 +396,25 @@ Input [4]: [w_state#10, i_item_id#12, _c2#16, _c3#17] Keys [2]: [w_state#10, i_item_id#12] Functions [2]: [partial_sum(_c2#16), partial_sum(_c3#17)] Aggregate Attributes [4]: [sum#18, isEmpty#19, sum#20, isEmpty#21] -Results [3]: [w_state#10, i_item_id#12, #22#22] +Results [4]: [w_state#10, i_item_id#12, #22, #22] (67) NativeShuffleExchange -Input [3]: [w_state#10, i_item_id#12, #22#22] +Input [4]: [w_state#10, i_item_id#12, #22, #22] Arguments: hashpartitioning(w_state#10, i_item_id#12, 100), ENSURE_REQUIREMENTS, [plan_id=9] (68) ShuffleQueryStage -Output [3]: [w_state#10, i_item_id#12, #22#22] +Output [4]: [w_state#10, i_item_id#12, #22, #22] Arguments: X (69) AQEShuffleRead -Input [3]: [w_state#10, i_item_id#12, #22#22] +Input [4]: [w_state#10, i_item_id#12, #22, #22] Arguments: coalesced (70) InputAdapter -Input [3]: [w_state#10, i_item_id#12, #22#22] +Input [4]: [w_state#10, i_item_id#12, #22, #22] (71) NativeHashAggregate -Input [3]: [w_state#10, i_item_id#12, #22#22] +Input [4]: [w_state#10, i_item_id#12, #22, #22] Keys [2]: [w_state#10, i_item_id#12] Functions [2]: [sum(CASE WHEN (d_date#15 < 2000-03-11) THEN (cs_sales_price#5 - coalesce(cast(cr_refunded_cash#8 as decimal(12,2)), 0.00)) ELSE 0.00 END), sum(CASE WHEN (d_date#15 >= 2000-03-11) THEN (cs_sales_price#5 - coalesce(cast(cr_refunded_cash#8 as decimal(12,2)), 0.00)) ELSE 0.00 END)] Aggregate Attributes [2]: [sum(CASE WHEN (d_date#15 < 2000-03-11) THEN (cs_sales_price#5 - coalesce(cast(cr_refunded_cash#8 as decimal(12,2)), 0.00)) ELSE 0.00 END)#23, sum(CASE WHEN (d_date#15 >= 2000-03-11) THEN (cs_sales_price#5 - coalesce(cast(cr_refunded_cash#8 as decimal(12,2)), 0.00)) ELSE 0.00 END)#24] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q41.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q41.txt index 0bf4f72b3..c35acf49c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q41.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q41.txt @@ -119,25 +119,25 @@ Input [1]: [i_manufact#5] Keys [1]: [i_manufact#5] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#9] -Results [2]: [i_manufact#5, #10#10] +Results [2]: [i_manufact#5, #10] (15) NativeShuffleExchange -Input [2]: [i_manufact#5, #10#10] +Input [2]: [i_manufact#5, #10] Arguments: hashpartitioning(i_manufact#5, 100), ENSURE_REQUIREMENTS, [plan_id=2] (16) ShuffleQueryStage -Output [2]: [i_manufact#5, #10#10] +Output [2]: [i_manufact#5, #10] Arguments: X (17) AQEShuffleRead -Input [2]: [i_manufact#5, #10#10] +Input [2]: [i_manufact#5, #10] Arguments: coalesced (18) InputAdapter -Input [2]: [i_manufact#5, #10#10] +Input [2]: [i_manufact#5, #10] (19) NativeHashAggregate -Input [2]: [i_manufact#5, #10#10] +Input [2]: [i_manufact#5, #10] Keys [1]: [i_manufact#5] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#11] @@ -174,33 +174,33 @@ Input [1]: [i_product_name#3] Keys [1]: [i_product_name#3] Functions: [] Aggregate Attributes: [] -Results [2]: [i_product_name#3, #10#10] +Results [1]: [i_product_name#3] (27) NativeShuffleExchange -Input [2]: [i_product_name#3, #10#10] +Input [1]: [i_product_name#3] Arguments: hashpartitioning(i_product_name#3, 100), ENSURE_REQUIREMENTS, [plan_id=3] (28) ShuffleQueryStage -Output [2]: [i_product_name#3, #10#10] +Output [1]: [i_product_name#3] Arguments: X (29) AQEShuffleRead -Input [2]: [i_product_name#3, #10#10] +Input [1]: [i_product_name#3] Arguments: coalesced (30) InputAdapter -Input [2]: [i_product_name#3, #10#10] +Input [1]: [i_product_name#3] (31) NativeHashAggregate -Input [2]: [i_product_name#3, #10#10] +Input [1]: [i_product_name#3] Keys [1]: [i_product_name#3] Functions: [] Aggregate Attributes: [] -Results [2]: [i_product_name#3, #10#10] +Results [1]: [i_product_name#3] (32) NativeProject Output [1]: [i_product_name#3] -Input [2]: [i_product_name#3, #10#10] +Input [1]: [i_product_name#3] (33) NativeTakeOrdered Input [1]: [i_product_name#3] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q42.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q42.txt index 77a61dce2..05eaecba7 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q42.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q42.txt @@ -230,25 +230,25 @@ Input [4]: [d_year#2, i_category_id#8, i_category#9, _c3#11] Keys [3]: [d_year#2, i_category_id#8, i_category#9] Functions [1]: [partial_sum(_c3#11)] Aggregate Attributes [1]: [sum#12] -Results [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Results [4]: [d_year#2, i_category_id#8, i_category#9, #13] (38) NativeShuffleExchange -Input [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Input [4]: [d_year#2, i_category_id#8, i_category#9, #13] Arguments: hashpartitioning(d_year#2, i_category_id#8, i_category#9, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Output [4]: [d_year#2, i_category_id#8, i_category#9, #13] Arguments: X (40) AQEShuffleRead -Input [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Input [4]: [d_year#2, i_category_id#8, i_category#9, #13] Arguments: coalesced (41) InputAdapter -Input [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Input [4]: [d_year#2, i_category_id#8, i_category#9, #13] (42) NativeHashAggregate -Input [4]: [d_year#2, i_category_id#8, i_category#9, #13#13] +Input [4]: [d_year#2, i_category_id#8, i_category#9, #13] Keys [3]: [d_year#2, i_category_id#8, i_category#9] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#6))#14] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q43.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q43.txt index 3be92c046..62b02fb1c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q43.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q43.txt @@ -230,25 +230,25 @@ Input [9]: [s_store_name#9, s_store_id#8, _c2#11, _c3#12, _c4#13, _c5#14, _c6#15 Keys [2]: [s_store_name#9, s_store_id#8] Functions [7]: [partial_sum(_c2#11), partial_sum(_c3#12), partial_sum(_c4#13), partial_sum(_c5#14), partial_sum(_c6#15), partial_sum(_c7#16), partial_sum(_c8#17)] Aggregate Attributes [7]: [sum#18, sum#19, sum#20, sum#21, sum#22, sum#23, sum#24] -Results [3]: [s_store_name#9, s_store_id#8, #25#25] +Results [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] (38) NativeShuffleExchange -Input [3]: [s_store_name#9, s_store_id#8, #25#25] +Input [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] Arguments: hashpartitioning(s_store_name#9, s_store_id#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [3]: [s_store_name#9, s_store_id#8, #25#25] +Output [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] Arguments: X (40) AQEShuffleRead -Input [3]: [s_store_name#9, s_store_id#8, #25#25] +Input [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] Arguments: coalesced (41) InputAdapter -Input [3]: [s_store_name#9, s_store_id#8, #25#25] +Input [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] (42) NativeHashAggregate -Input [3]: [s_store_name#9, s_store_id#8, #25#25] +Input [9]: [s_store_name#9, s_store_id#8, #25, #25, #25, #25, #25, #25, #25] Keys [2]: [s_store_name#9, s_store_id#8] Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 END))] Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 END))#26, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 END))#27, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 END))#28, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 END))#29, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 END))#30, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 END))#31, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 END))#32] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q44.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q44.txt index 867954f82..8a11de5e8 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q44.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q44.txt @@ -155,278 +155,278 @@ Input [2]: [ss_item_sk#1, _c1#4] Keys [1]: [ss_item_sk#1] Functions [1]: [partial_avg(_c1#4)] Aggregate Attributes [2]: [sum#5, count#6] -Results [2]: [ss_item_sk#1, #7#7] +Results [3]: [ss_item_sk#1, #7, #8] (7) NativeShuffleExchange -Input [2]: [ss_item_sk#1, #7#7] +Input [3]: [ss_item_sk#1, #7, #8] Arguments: hashpartitioning(ss_item_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=1] (8) ShuffleQueryStage -Output [2]: [ss_item_sk#1, #7#7] +Output [3]: [ss_item_sk#1, #7, #8] Arguments: X (9) AQEShuffleRead -Input [2]: [ss_item_sk#1, #7#7] +Input [3]: [ss_item_sk#1, #7, #8] Arguments: coalesced (10) InputAdapter -Input [2]: [ss_item_sk#1, #7#7] +Input [3]: [ss_item_sk#1, #7, #8] (11) NativeHashAggregate -Input [2]: [ss_item_sk#1, #7#7] +Input [3]: [ss_item_sk#1, #7, #8] Keys [1]: [ss_item_sk#1] Functions [1]: [avg(UnscaledValue(ss_net_profit#3))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#3))#8] -Results [2]: [ss_item_sk#1, avg(UnscaledValue(ss_net_profit#3))#8] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#3))#9] +Results [2]: [ss_item_sk#1, avg(UnscaledValue(ss_net_profit#3))#9] (12) NativeProject -Output [2]: [ss_item_sk#1 AS item_sk#9, cast((avg(UnscaledValue(ss_net_profit#3))#8 / 100.0) as decimal(11,6)) AS rank_col#10] -Input [2]: [ss_item_sk#1, avg(UnscaledValue(ss_net_profit#3))#8] +Output [2]: [ss_item_sk#1 AS item_sk#10, cast((avg(UnscaledValue(ss_net_profit#3))#9 / 100.0) as decimal(11,6)) AS rank_col#11] +Input [2]: [ss_item_sk#1, avg(UnscaledValue(ss_net_profit#3))#9] (13) NativeFilter -Input [2]: [item_sk#9, rank_col#10] -Condition : (isnotnull(rank_col#10) AND (cast(rank_col#10 as decimal(13,7)) > (0.9 * Subquery subquery#11, [id=#12]))) +Input [2]: [item_sk#10, rank_col#11] +Condition : (isnotnull(rank_col#11) AND (cast(rank_col#11 as decimal(13,7)) > (0.9 * Subquery subquery#12, [id=#13]))) (14) NativeSort -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], false +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], false (15) NativeWindowGroupLimit -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank(rank_col#10) windowspecdefinition(rank_col#10 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#13], [rank_col#10 ASC NULLS FIRST], 10 +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank(rank_col#11) windowspecdefinition(rank_col#11 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#14], [rank_col#11 ASC NULLS FIRST], 10 (16) NativeShuffleExchange -Input [2]: [item_sk#9, rank_col#10] +Input [2]: [item_sk#10, rank_col#11] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2] (17) ShuffleQueryStage -Output [2]: [item_sk#9, rank_col#10] +Output [2]: [item_sk#10, rank_col#11] Arguments: X (18) NativeSort -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], false +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], false (19) NativeWindowGroupLimit -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank(rank_col#10) windowspecdefinition(rank_col#10 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#14], [rank_col#10 ASC NULLS FIRST], 10 +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank(rank_col#11) windowspecdefinition(rank_col#11 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#15], [rank_col#11 ASC NULLS FIRST], 10 (20) NativeWindow -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank(rank_col#10) windowspecdefinition(rank_col#10 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#15], [rank_col#10 ASC NULLS FIRST] +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank(rank_col#11) windowspecdefinition(rank_col#11 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#16], [rank_col#11 ASC NULLS FIRST] (21) NativeFilter -Input [3]: [item_sk#9, rank_col#10, rnk#15] -Condition : ((rnk#15 < 11) AND isnotnull(item_sk#9)) +Input [3]: [item_sk#10, rank_col#11, rnk#16] +Condition : ((rnk#16 < 11) AND isnotnull(item_sk#10)) (22) NativeProject -Output [2]: [item_sk#9, rnk#15] -Input [3]: [item_sk#9, rank_col#10, rnk#15] +Output [2]: [item_sk#10, rnk#16] +Input [3]: [item_sk#10, rank_col#11, rnk#16] (23) NativeSort -Input [2]: [item_sk#9, rnk#15] -Arguments: [rnk#15 ASC NULLS FIRST], false +Input [2]: [item_sk#10, rnk#16] +Arguments: [rnk#16 ASC NULLS FIRST], false (24) ReusedExchange [Reuses operator id: 7] -Output [3]: [ss_item_sk#16, sum#17, count#18] +Output [3]: [ss_item_sk#17, sum#18, count#19] (25) ShuffleQueryStage -Output [3]: [ss_item_sk#16, sum#17, count#18] +Output [3]: [ss_item_sk#17, sum#18, count#19] Arguments: X (26) AQEShuffleRead -Input [3]: [ss_item_sk#16, sum#17, count#18] +Input [3]: [ss_item_sk#17, sum#18, count#19] Arguments: coalesced (27) InputAdapter -Input [3]: [ss_item_sk#16, sum#17, count#18] -Arguments: [#16, #17, #19] +Input [3]: [ss_item_sk#17, sum#18, count#19] +Arguments: [#17, #18, #20] (28) InputAdapter -Input [3]: [#16#16, #17#17, #19#18] +Input [3]: [#17#17, #18#18, #20#19] (29) NativeHashAggregate -Input [3]: [#16#16, #17#17, #19#18] -Keys [1]: [ss_item_sk#16] -Functions [1]: [avg(UnscaledValue(ss_net_profit#20))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#20))#21] -Results [2]: [ss_item_sk#16, avg(UnscaledValue(ss_net_profit#20))#21] +Input [3]: [#17#17, #18#18, #20#19] +Keys [1]: [ss_item_sk#17] +Functions [1]: [avg(UnscaledValue(ss_net_profit#21))] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#21))#22] +Results [2]: [ss_item_sk#17, avg(UnscaledValue(ss_net_profit#21))#22] (30) NativeProject -Output [2]: [ss_item_sk#16 AS item_sk#22, cast((avg(UnscaledValue(ss_net_profit#20))#21 / 100.0) as decimal(11,6)) AS rank_col#23] -Input [2]: [ss_item_sk#16, avg(UnscaledValue(ss_net_profit#20))#21] +Output [2]: [ss_item_sk#17 AS item_sk#23, cast((avg(UnscaledValue(ss_net_profit#21))#22 / 100.0) as decimal(11,6)) AS rank_col#24] +Input [2]: [ss_item_sk#17, avg(UnscaledValue(ss_net_profit#21))#22] (31) NativeFilter -Input [2]: [item_sk#22, rank_col#23] -Condition : (isnotnull(rank_col#23) AND (cast(rank_col#23 as decimal(13,7)) > (0.9 * ReusedSubquery Subquery subquery#11, [id=#12]))) +Input [2]: [item_sk#23, rank_col#24] +Condition : (isnotnull(rank_col#24) AND (cast(rank_col#24 as decimal(13,7)) > (0.9 * ReusedSubquery Subquery subquery#12, [id=#13]))) (32) NativeSort -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], false +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], false (33) NativeWindowGroupLimit -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank(rank_col#23) windowspecdefinition(rank_col#23 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#24], [rank_col#23 DESC NULLS LAST], 10 +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank(rank_col#24) windowspecdefinition(rank_col#24 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#25], [rank_col#24 DESC NULLS LAST], 10 (34) NativeShuffleExchange -Input [2]: [item_sk#22, rank_col#23] +Input [2]: [item_sk#23, rank_col#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=3] (35) ShuffleQueryStage -Output [2]: [item_sk#22, rank_col#23] +Output [2]: [item_sk#23, rank_col#24] Arguments: X (36) NativeSort -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], false +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], false (37) NativeWindowGroupLimit -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank(rank_col#23) windowspecdefinition(rank_col#23 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#25], [rank_col#23 DESC NULLS LAST], 10 +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank(rank_col#24) windowspecdefinition(rank_col#24 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS __window_expression__#26], [rank_col#24 DESC NULLS LAST], 10 (38) NativeWindow -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank(rank_col#23) windowspecdefinition(rank_col#23 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#26], [rank_col#23 DESC NULLS LAST] +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank(rank_col#24) windowspecdefinition(rank_col#24 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#27], [rank_col#24 DESC NULLS LAST] (39) NativeFilter -Input [3]: [item_sk#22, rank_col#23, rnk#26] -Condition : ((rnk#26 < 11) AND isnotnull(item_sk#22)) +Input [3]: [item_sk#23, rank_col#24, rnk#27] +Condition : ((rnk#27 < 11) AND isnotnull(item_sk#23)) (40) NativeProject -Output [2]: [item_sk#22, rnk#26] -Input [3]: [item_sk#22, rank_col#23, rnk#26] +Output [2]: [item_sk#23, rnk#27] +Input [3]: [item_sk#23, rank_col#24, rnk#27] (41) NativeSort -Input [2]: [item_sk#22, rnk#26] -Arguments: [rnk#26 ASC NULLS FIRST], false +Input [2]: [item_sk#23, rnk#27] +Arguments: [rnk#27 ASC NULLS FIRST], false (42) NativeSortMergeJoin -Left keys [1]: [rnk#15] -Right keys [1]: [rnk#26] +Left keys [1]: [rnk#16] +Right keys [1]: [rnk#27] Join type: Inner Join condition: None (43) NativeProject -Output [3]: [item_sk#9, rnk#15, item_sk#22] -Input [4]: [item_sk#9, rnk#15, item_sk#22, rnk#26] +Output [3]: [item_sk#10, rnk#16, item_sk#23] +Input [4]: [item_sk#10, rnk#16, item_sk#23, rnk#27] (44) NativeShuffleExchange -Input [3]: [item_sk#9, rnk#15, item_sk#22] -Arguments: hashpartitioning(item_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=4] +Input [3]: [item_sk#10, rnk#16, item_sk#23] +Arguments: hashpartitioning(item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=4] (45) ShuffleQueryStage -Output [3]: [item_sk#9, rnk#15, item_sk#22] +Output [3]: [item_sk#10, rnk#16, item_sk#23] Arguments: X (46) AQEShuffleRead -Input [3]: [item_sk#9, rnk#15, item_sk#22] +Input [3]: [item_sk#10, rnk#16, item_sk#23] Arguments: coalesced (47) InputAdapter -Input [3]: [item_sk#9, rnk#15, item_sk#22] +Input [3]: [item_sk#10, rnk#16, item_sk#23] (48) NativeSort -Input [3]: [item_sk#9, rnk#15, item_sk#22] -Arguments: [item_sk#9 ASC NULLS FIRST], false +Input [3]: [item_sk#10, rnk#16, item_sk#23] +Arguments: [item_sk#10 ASC NULLS FIRST], false (109) Scan parquet -Output [2]: [i_item_sk#27, i_product_name#28] +Output [2]: [i_item_sk#28, i_product_name#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (50) InputAdapter -Input [2]: [i_item_sk#27, i_product_name#28] -Arguments: [#27, #28] +Input [2]: [i_item_sk#28, i_product_name#29] +Arguments: [#28, #29] (51) NativeFilter -Input [2]: [#27#27, #28#28] -Condition : isnotnull(i_item_sk#27) +Input [2]: [#28#28, #29#29] +Condition : isnotnull(i_item_sk#28) (52) NativeShuffleExchange -Input [2]: [#27#27, #28#28] -Arguments: hashpartitioning(i_item_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=5] +Input [2]: [#28#28, #29#29] +Arguments: hashpartitioning(i_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=5] (53) ShuffleQueryStage -Output [2]: [#27#27, #28#28] +Output [2]: [#28#28, #29#29] Arguments: X (54) AQEShuffleRead -Input [2]: [#27#27, #28#28] +Input [2]: [#28#28, #29#29] Arguments: coalesced (55) InputAdapter -Input [2]: [#27#27, #28#28] +Input [2]: [#28#28, #29#29] (56) NativeSort -Input [2]: [#27#27, #28#28] -Arguments: [i_item_sk#27 ASC NULLS FIRST], false +Input [2]: [#28#28, #29#29] +Arguments: [i_item_sk#28 ASC NULLS FIRST], false (57) NativeSortMergeJoin -Left keys [1]: [item_sk#9] -Right keys [1]: [i_item_sk#27] +Left keys [1]: [item_sk#10] +Right keys [1]: [i_item_sk#28] Join type: Inner Join condition: None (58) NativeProject -Output [3]: [rnk#15, item_sk#22, i_product_name#28] -Input [5]: [item_sk#9, rnk#15, item_sk#22, #27#27, #28#28] +Output [3]: [rnk#16, item_sk#23, i_product_name#29] +Input [5]: [item_sk#10, rnk#16, item_sk#23, #28#28, #29#29] (59) NativeShuffleExchange -Input [3]: [rnk#15, item_sk#22, i_product_name#28] -Arguments: hashpartitioning(item_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=6] +Input [3]: [rnk#16, item_sk#23, i_product_name#29] +Arguments: hashpartitioning(item_sk#23, 100), ENSURE_REQUIREMENTS, [plan_id=6] (60) ShuffleQueryStage -Output [3]: [rnk#15, item_sk#22, i_product_name#28] +Output [3]: [rnk#16, item_sk#23, i_product_name#29] Arguments: X (61) AQEShuffleRead -Input [3]: [rnk#15, item_sk#22, i_product_name#28] +Input [3]: [rnk#16, item_sk#23, i_product_name#29] Arguments: coalesced (62) InputAdapter -Input [3]: [rnk#15, item_sk#22, i_product_name#28] +Input [3]: [rnk#16, item_sk#23, i_product_name#29] (63) NativeSort -Input [3]: [rnk#15, item_sk#22, i_product_name#28] -Arguments: [item_sk#22 ASC NULLS FIRST], false +Input [3]: [rnk#16, item_sk#23, i_product_name#29] +Arguments: [item_sk#23 ASC NULLS FIRST], false (64) ReusedExchange [Reuses operator id: 52] -Output [2]: [i_item_sk#29, i_product_name#30] +Output [2]: [i_item_sk#30, i_product_name#31] (65) ShuffleQueryStage -Output [2]: [i_item_sk#29, i_product_name#30] +Output [2]: [i_item_sk#30, i_product_name#31] Arguments: X (66) AQEShuffleRead -Input [2]: [i_item_sk#29, i_product_name#30] +Input [2]: [i_item_sk#30, i_product_name#31] Arguments: coalesced (67) InputAdapter -Input [2]: [i_item_sk#29, i_product_name#30] -Arguments: [#29, #30] +Input [2]: [i_item_sk#30, i_product_name#31] +Arguments: [#30, #31] (68) InputAdapter -Input [2]: [#29#29, #30#30] +Input [2]: [#30#30, #31#31] (69) NativeSort -Input [2]: [#29#29, #30#30] -Arguments: [i_item_sk#29 ASC NULLS FIRST], false +Input [2]: [#30#30, #31#31] +Arguments: [i_item_sk#30 ASC NULLS FIRST], false (70) NativeSortMergeJoin -Left keys [1]: [item_sk#22] -Right keys [1]: [i_item_sk#29] +Left keys [1]: [item_sk#23] +Right keys [1]: [i_item_sk#30] Join type: Inner Join condition: None (71) NativeProject -Output [3]: [rnk#15, i_product_name#28 AS best_performing#31, i_product_name#30 AS worst_performing#32] -Input [5]: [rnk#15, item_sk#22, i_product_name#28, #29#29, #30#30] +Output [3]: [rnk#16, i_product_name#29 AS best_performing#32, i_product_name#31 AS worst_performing#33] +Input [5]: [rnk#16, item_sk#23, i_product_name#29, #30#30, #31#31] (72) NativeTakeOrdered -Input [3]: [rnk#15, best_performing#31, worst_performing#32] -Arguments: X, [rnk#15 ASC NULLS FIRST] +Input [3]: [rnk#16, best_performing#32, worst_performing#33] +Arguments: X, [rnk#16 ASC NULLS FIRST] (73) Scan parquet Output [3]: [ss_item_sk#1, ss_store_sk#2, ss_net_profit#3] @@ -448,227 +448,227 @@ Input [2]: [ss_item_sk#1, ss_net_profit#3] Keys [1]: [ss_item_sk#1] Functions [1]: [partial_avg(UnscaledValue(ss_net_profit#3))] Aggregate Attributes [2]: [sum#5, count#6] -Results [3]: [ss_item_sk#1, sum#33, count#34] +Results [3]: [ss_item_sk#1, sum#34, count#35] (77) Exchange -Input [3]: [ss_item_sk#1, sum#33, count#34] +Input [3]: [ss_item_sk#1, sum#34, count#35] Arguments: hashpartitioning(ss_item_sk#1, 100), ENSURE_REQUIREMENTS, [plan_id=7] (78) HashAggregate -Input [3]: [ss_item_sk#1, sum#33, count#34] +Input [3]: [ss_item_sk#1, sum#34, count#35] Keys [1]: [ss_item_sk#1] Functions [1]: [avg(UnscaledValue(ss_net_profit#3))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#3))#8] -Results [2]: [ss_item_sk#1 AS item_sk#9, cast((avg(UnscaledValue(ss_net_profit#3))#8 / 100.0) as decimal(11,6)) AS rank_col#10] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#3))#9] +Results [2]: [ss_item_sk#1 AS item_sk#10, cast((avg(UnscaledValue(ss_net_profit#3))#9 / 100.0) as decimal(11,6)) AS rank_col#11] (79) Filter -Input [2]: [item_sk#9, rank_col#10] -Condition : (isnotnull(rank_col#10) AND (cast(rank_col#10 as decimal(13,7)) > (0.9 * Subquery subquery#11, [id=#12]))) +Input [2]: [item_sk#10, rank_col#11] +Condition : (isnotnull(rank_col#11) AND (cast(rank_col#11 as decimal(13,7)) > (0.9 * Subquery subquery#12, [id=#13]))) (80) Sort -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], false, 0 +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], false, 0 (81) WindowGroupLimit -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], rank(rank_col#10), 10, Partial +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], rank(rank_col#11), 10, Partial (82) Exchange -Input [2]: [item_sk#9, rank_col#10] +Input [2]: [item_sk#10, rank_col#11] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=8] (83) Sort -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], false, 0 +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], false, 0 (84) WindowGroupLimit -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank_col#10 ASC NULLS FIRST], rank(rank_col#10), 10, Final +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank_col#11 ASC NULLS FIRST], rank(rank_col#11), 10, Final (85) Window -Input [2]: [item_sk#9, rank_col#10] -Arguments: [rank(rank_col#10) windowspecdefinition(rank_col#10 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#15], [rank_col#10 ASC NULLS FIRST] +Input [2]: [item_sk#10, rank_col#11] +Arguments: [rank(rank_col#11) windowspecdefinition(rank_col#11 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#16], [rank_col#11 ASC NULLS FIRST] (86) Filter -Input [3]: [item_sk#9, rank_col#10, rnk#15] -Condition : ((rnk#15 < 11) AND isnotnull(item_sk#9)) +Input [3]: [item_sk#10, rank_col#11, rnk#16] +Condition : ((rnk#16 < 11) AND isnotnull(item_sk#10)) (87) Project -Output [2]: [item_sk#9, rnk#15] -Input [3]: [item_sk#9, rank_col#10, rnk#15] +Output [2]: [item_sk#10, rnk#16] +Input [3]: [item_sk#10, rank_col#11, rnk#16] (88) Sort -Input [2]: [item_sk#9, rnk#15] -Arguments: [rnk#15 ASC NULLS FIRST], false, 0 +Input [2]: [item_sk#10, rnk#16] +Arguments: [rnk#16 ASC NULLS FIRST], false, 0 (89) Scan parquet -Output [3]: [ss_item_sk#16, ss_store_sk#35, ss_net_profit#20] +Output [3]: [ss_item_sk#17, ss_store_sk#36, ss_net_profit#21] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_store_sk), EqualTo(ss_store_sk,4)] ReadSchema: struct (90) Filter -Input [3]: [ss_item_sk#16, ss_store_sk#35, ss_net_profit#20] -Condition : (isnotnull(ss_store_sk#35) AND (ss_store_sk#35 = 4)) +Input [3]: [ss_item_sk#17, ss_store_sk#36, ss_net_profit#21] +Condition : (isnotnull(ss_store_sk#36) AND (ss_store_sk#36 = 4)) (91) Project -Output [2]: [ss_item_sk#16, ss_net_profit#20] -Input [3]: [ss_item_sk#16, ss_store_sk#35, ss_net_profit#20] +Output [2]: [ss_item_sk#17, ss_net_profit#21] +Input [3]: [ss_item_sk#17, ss_store_sk#36, ss_net_profit#21] (92) HashAggregate -Input [2]: [ss_item_sk#16, ss_net_profit#20] -Keys [1]: [ss_item_sk#16] -Functions [1]: [partial_avg(UnscaledValue(ss_net_profit#20))] -Aggregate Attributes [2]: [sum#36, count#37] -Results [3]: [ss_item_sk#16, sum#17, count#18] +Input [2]: [ss_item_sk#17, ss_net_profit#21] +Keys [1]: [ss_item_sk#17] +Functions [1]: [partial_avg(UnscaledValue(ss_net_profit#21))] +Aggregate Attributes [2]: [sum#37, count#38] +Results [3]: [ss_item_sk#17, sum#18, count#19] (93) Exchange -Input [3]: [ss_item_sk#16, sum#17, count#18] -Arguments: hashpartitioning(ss_item_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [3]: [ss_item_sk#17, sum#18, count#19] +Arguments: hashpartitioning(ss_item_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=9] (94) HashAggregate -Input [3]: [ss_item_sk#16, sum#17, count#18] -Keys [1]: [ss_item_sk#16] -Functions [1]: [avg(UnscaledValue(ss_net_profit#20))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#20))#21] -Results [2]: [ss_item_sk#16 AS item_sk#22, cast((avg(UnscaledValue(ss_net_profit#20))#21 / 100.0) as decimal(11,6)) AS rank_col#23] +Input [3]: [ss_item_sk#17, sum#18, count#19] +Keys [1]: [ss_item_sk#17] +Functions [1]: [avg(UnscaledValue(ss_net_profit#21))] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#21))#22] +Results [2]: [ss_item_sk#17 AS item_sk#23, cast((avg(UnscaledValue(ss_net_profit#21))#22 / 100.0) as decimal(11,6)) AS rank_col#24] (95) Filter -Input [2]: [item_sk#22, rank_col#23] -Condition : (isnotnull(rank_col#23) AND (cast(rank_col#23 as decimal(13,7)) > (0.9 * Subquery subquery#38, [id=#39]))) +Input [2]: [item_sk#23, rank_col#24] +Condition : (isnotnull(rank_col#24) AND (cast(rank_col#24 as decimal(13,7)) > (0.9 * Subquery subquery#39, [id=#40]))) (96) Sort -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], false, 0 +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], false, 0 (97) WindowGroupLimit -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], rank(rank_col#23), 10, Partial +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], rank(rank_col#24), 10, Partial (98) Exchange -Input [2]: [item_sk#22, rank_col#23] +Input [2]: [item_sk#23, rank_col#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (99) Sort -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], false, 0 +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], false, 0 (100) WindowGroupLimit -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank_col#23 DESC NULLS LAST], rank(rank_col#23), 10, Final +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank_col#24 DESC NULLS LAST], rank(rank_col#24), 10, Final (101) Window -Input [2]: [item_sk#22, rank_col#23] -Arguments: [rank(rank_col#23) windowspecdefinition(rank_col#23 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#26], [rank_col#23 DESC NULLS LAST] +Input [2]: [item_sk#23, rank_col#24] +Arguments: [rank(rank_col#24) windowspecdefinition(rank_col#24 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS rnk#27], [rank_col#24 DESC NULLS LAST] (102) Filter -Input [3]: [item_sk#22, rank_col#23, rnk#26] -Condition : ((rnk#26 < 11) AND isnotnull(item_sk#22)) +Input [3]: [item_sk#23, rank_col#24, rnk#27] +Condition : ((rnk#27 < 11) AND isnotnull(item_sk#23)) (103) Project -Output [2]: [item_sk#22, rnk#26] -Input [3]: [item_sk#22, rank_col#23, rnk#26] +Output [2]: [item_sk#23, rnk#27] +Input [3]: [item_sk#23, rank_col#24, rnk#27] (104) Sort -Input [2]: [item_sk#22, rnk#26] -Arguments: [rnk#26 ASC NULLS FIRST], false, 0 +Input [2]: [item_sk#23, rnk#27] +Arguments: [rnk#27 ASC NULLS FIRST], false, 0 (105) SortMergeJoin -Left keys [1]: [rnk#15] -Right keys [1]: [rnk#26] +Left keys [1]: [rnk#16] +Right keys [1]: [rnk#27] Join type: Inner Join condition: None (106) Project -Output [3]: [item_sk#9, rnk#15, item_sk#22] -Input [4]: [item_sk#9, rnk#15, item_sk#22, rnk#26] +Output [3]: [item_sk#10, rnk#16, item_sk#23] +Input [4]: [item_sk#10, rnk#16, item_sk#23, rnk#27] (107) Exchange -Input [3]: [item_sk#9, rnk#15, item_sk#22] -Arguments: hashpartitioning(item_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [3]: [item_sk#10, rnk#16, item_sk#23] +Arguments: hashpartitioning(item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=11] (108) Sort -Input [3]: [item_sk#9, rnk#15, item_sk#22] -Arguments: [item_sk#9 ASC NULLS FIRST], false, 0 +Input [3]: [item_sk#10, rnk#16, item_sk#23] +Arguments: [item_sk#10 ASC NULLS FIRST], false, 0 (109) Scan parquet -Output [2]: [i_item_sk#27, i_product_name#28] +Output [2]: [i_item_sk#28, i_product_name#29] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (110) Filter -Input [2]: [i_item_sk#27, i_product_name#28] -Condition : isnotnull(i_item_sk#27) +Input [2]: [i_item_sk#28, i_product_name#29] +Condition : isnotnull(i_item_sk#28) (111) Exchange -Input [2]: [i_item_sk#27, i_product_name#28] -Arguments: hashpartitioning(i_item_sk#27, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [2]: [i_item_sk#28, i_product_name#29] +Arguments: hashpartitioning(i_item_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=12] (112) Sort -Input [2]: [i_item_sk#27, i_product_name#28] -Arguments: [i_item_sk#27 ASC NULLS FIRST], false, 0 +Input [2]: [i_item_sk#28, i_product_name#29] +Arguments: [i_item_sk#28 ASC NULLS FIRST], false, 0 (113) SortMergeJoin -Left keys [1]: [item_sk#9] -Right keys [1]: [i_item_sk#27] +Left keys [1]: [item_sk#10] +Right keys [1]: [i_item_sk#28] Join type: Inner Join condition: None (114) Project -Output [3]: [rnk#15, item_sk#22, i_product_name#28] -Input [5]: [item_sk#9, rnk#15, item_sk#22, i_item_sk#27, i_product_name#28] +Output [3]: [rnk#16, item_sk#23, i_product_name#29] +Input [5]: [item_sk#10, rnk#16, item_sk#23, i_item_sk#28, i_product_name#29] (115) Exchange -Input [3]: [rnk#15, item_sk#22, i_product_name#28] -Arguments: hashpartitioning(item_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [3]: [rnk#16, item_sk#23, i_product_name#29] +Arguments: hashpartitioning(item_sk#23, 100), ENSURE_REQUIREMENTS, [plan_id=13] (116) Sort -Input [3]: [rnk#15, item_sk#22, i_product_name#28] -Arguments: [item_sk#22 ASC NULLS FIRST], false, 0 +Input [3]: [rnk#16, item_sk#23, i_product_name#29] +Arguments: [item_sk#23 ASC NULLS FIRST], false, 0 (117) Scan parquet -Output [2]: [i_item_sk#29, i_product_name#30] +Output [2]: [i_item_sk#30, i_product_name#31] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_item_sk)] ReadSchema: struct (118) Filter -Input [2]: [i_item_sk#29, i_product_name#30] -Condition : isnotnull(i_item_sk#29) +Input [2]: [i_item_sk#30, i_product_name#31] +Condition : isnotnull(i_item_sk#30) (119) Exchange -Input [2]: [i_item_sk#29, i_product_name#30] -Arguments: hashpartitioning(i_item_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [2]: [i_item_sk#30, i_product_name#31] +Arguments: hashpartitioning(i_item_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=14] (120) Sort -Input [2]: [i_item_sk#29, i_product_name#30] -Arguments: [i_item_sk#29 ASC NULLS FIRST], false, 0 +Input [2]: [i_item_sk#30, i_product_name#31] +Arguments: [i_item_sk#30 ASC NULLS FIRST], false, 0 (121) SortMergeJoin -Left keys [1]: [item_sk#22] -Right keys [1]: [i_item_sk#29] +Left keys [1]: [item_sk#23] +Right keys [1]: [i_item_sk#30] Join type: Inner Join condition: None (122) Project -Output [3]: [rnk#15, i_product_name#28 AS best_performing#31, i_product_name#30 AS worst_performing#32] -Input [5]: [rnk#15, item_sk#22, i_product_name#28, i_item_sk#29, i_product_name#30] +Output [3]: [rnk#16, i_product_name#29 AS best_performing#32, i_product_name#31 AS worst_performing#33] +Input [5]: [rnk#16, item_sk#23, i_product_name#29, i_item_sk#30, i_product_name#31] (123) TakeOrderedAndProject -Input [3]: [rnk#15, best_performing#31, worst_performing#32] -Arguments: X, [rnk#15 ASC NULLS FIRST], [rnk#15, best_performing#31, worst_performing#32] +Input [3]: [rnk#16, best_performing#32, worst_performing#33] +Arguments: X, [rnk#16 ASC NULLS FIRST], [rnk#16, best_performing#32, worst_performing#33] (124) AdaptiveSparkPlan -Output [3]: [rnk#15, best_performing#31, worst_performing#32] +Output [3]: [rnk#16, best_performing#32, worst_performing#33] Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 13 Hosting Expression = Subquery subquery#11, [id=#12] +Subquery:1 Hosting operator id = 13 Hosting Expression = Subquery subquery#12, [id=#13] AdaptiveSparkPlan (143) +- == Final Plan == NativeProject (136) @@ -693,98 +693,98 @@ AdaptiveSparkPlan (143) (137) Scan parquet -Output [3]: [ss_addr_sk#40, ss_store_sk#41, ss_net_profit#42] +Output [3]: [ss_addr_sk#41, ss_store_sk#42, ss_net_profit#43] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_store_sk), EqualTo(ss_store_sk,4), IsNull(ss_addr_sk)] ReadSchema: struct (126) InputAdapter -Input [3]: [ss_addr_sk#40, ss_store_sk#41, ss_net_profit#42] -Arguments: [#40, #41, #42] +Input [3]: [ss_addr_sk#41, ss_store_sk#42, ss_net_profit#43] +Arguments: [#41, #42, #43] (127) NativeFilter -Input [3]: [#40#40, #41#41, #42#42] -Condition : ((isnotnull(ss_store_sk#41) AND (ss_store_sk#41 = 4)) AND isnull(ss_addr_sk#40)) +Input [3]: [#41#41, #42#42, #43#43] +Condition : ((isnotnull(ss_store_sk#42) AND (ss_store_sk#42 = 4)) AND isnull(ss_addr_sk#41)) (128) NativeProject -Output [2]: [ss_store_sk#41, ss_net_profit#42] -Input [3]: [#40#40, #41#41, #42#42] +Output [2]: [ss_store_sk#42, ss_net_profit#43] +Input [3]: [#41#41, #42#42, #43#43] (129) NativeProject -Output [2]: [ss_store_sk#41 AS ss_store_sk#41, UnscaledValue(ss_net_profit#42) AS _c1#43] -Input [2]: [ss_store_sk#41, ss_net_profit#42] +Output [2]: [ss_store_sk#42 AS ss_store_sk#42, UnscaledValue(ss_net_profit#43) AS _c1#44] +Input [2]: [ss_store_sk#42, ss_net_profit#43] (130) NativeHashAggregate -Input [2]: [ss_store_sk#41, _c1#43] -Keys [1]: [ss_store_sk#41] -Functions [1]: [partial_avg(_c1#43)] -Aggregate Attributes [2]: [sum#44, count#45] -Results [2]: [ss_store_sk#41, #7#7] +Input [2]: [ss_store_sk#42, _c1#44] +Keys [1]: [ss_store_sk#42] +Functions [1]: [partial_avg(_c1#44)] +Aggregate Attributes [2]: [sum#45, count#46] +Results [3]: [ss_store_sk#42, #7, #8] (131) NativeShuffleExchange -Input [2]: [ss_store_sk#41, #7#7] -Arguments: hashpartitioning(ss_store_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [3]: [ss_store_sk#42, #7, #8] +Arguments: hashpartitioning(ss_store_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=15] (132) ShuffleQueryStage -Output [2]: [ss_store_sk#41, #7#7] +Output [3]: [ss_store_sk#42, #7, #8] Arguments: X (133) AQEShuffleRead -Input [2]: [ss_store_sk#41, #7#7] +Input [3]: [ss_store_sk#42, #7, #8] Arguments: coalesced (134) InputAdapter -Input [2]: [ss_store_sk#41, #7#7] +Input [3]: [ss_store_sk#42, #7, #8] (135) NativeHashAggregate -Input [2]: [ss_store_sk#41, #7#7] -Keys [1]: [ss_store_sk#41] -Functions [1]: [avg(UnscaledValue(ss_net_profit#42))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#42))#46] -Results [2]: [ss_store_sk#41, avg(UnscaledValue(ss_net_profit#42))#46] +Input [3]: [ss_store_sk#42, #7, #8] +Keys [1]: [ss_store_sk#42] +Functions [1]: [avg(UnscaledValue(ss_net_profit#43))] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#43))#47] +Results [2]: [ss_store_sk#42, avg(UnscaledValue(ss_net_profit#43))#47] (136) NativeProject -Output [1]: [cast((avg(UnscaledValue(ss_net_profit#42))#46 / 100.0) as decimal(11,6)) AS rank_col#47] -Input [2]: [ss_store_sk#41, avg(UnscaledValue(ss_net_profit#42))#46] +Output [1]: [cast((avg(UnscaledValue(ss_net_profit#43))#47 / 100.0) as decimal(11,6)) AS rank_col#48] +Input [2]: [ss_store_sk#42, avg(UnscaledValue(ss_net_profit#43))#47] (137) Scan parquet -Output [3]: [ss_addr_sk#40, ss_store_sk#41, ss_net_profit#42] +Output [3]: [ss_addr_sk#41, ss_store_sk#42, ss_net_profit#43] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_store_sk), EqualTo(ss_store_sk,4), IsNull(ss_addr_sk)] ReadSchema: struct (138) Filter -Input [3]: [ss_addr_sk#40, ss_store_sk#41, ss_net_profit#42] -Condition : ((isnotnull(ss_store_sk#41) AND (ss_store_sk#41 = 4)) AND isnull(ss_addr_sk#40)) +Input [3]: [ss_addr_sk#41, ss_store_sk#42, ss_net_profit#43] +Condition : ((isnotnull(ss_store_sk#42) AND (ss_store_sk#42 = 4)) AND isnull(ss_addr_sk#41)) (139) Project -Output [2]: [ss_store_sk#41, ss_net_profit#42] -Input [3]: [ss_addr_sk#40, ss_store_sk#41, ss_net_profit#42] +Output [2]: [ss_store_sk#42, ss_net_profit#43] +Input [3]: [ss_addr_sk#41, ss_store_sk#42, ss_net_profit#43] (140) HashAggregate -Input [2]: [ss_store_sk#41, ss_net_profit#42] -Keys [1]: [ss_store_sk#41] -Functions [1]: [partial_avg(UnscaledValue(ss_net_profit#42))] -Aggregate Attributes [2]: [sum#44, count#45] -Results [3]: [ss_store_sk#41, sum#48, count#49] +Input [2]: [ss_store_sk#42, ss_net_profit#43] +Keys [1]: [ss_store_sk#42] +Functions [1]: [partial_avg(UnscaledValue(ss_net_profit#43))] +Aggregate Attributes [2]: [sum#45, count#46] +Results [3]: [ss_store_sk#42, sum#49, count#50] (141) Exchange -Input [3]: [ss_store_sk#41, sum#48, count#49] -Arguments: hashpartitioning(ss_store_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=16] +Input [3]: [ss_store_sk#42, sum#49, count#50] +Arguments: hashpartitioning(ss_store_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=16] (142) HashAggregate -Input [3]: [ss_store_sk#41, sum#48, count#49] -Keys [1]: [ss_store_sk#41] -Functions [1]: [avg(UnscaledValue(ss_net_profit#42))] -Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#42))#46] -Results [1]: [cast((avg(UnscaledValue(ss_net_profit#42))#46 / 100.0) as decimal(11,6)) AS rank_col#47] +Input [3]: [ss_store_sk#42, sum#49, count#50] +Keys [1]: [ss_store_sk#42] +Functions [1]: [avg(UnscaledValue(ss_net_profit#43))] +Aggregate Attributes [1]: [avg(UnscaledValue(ss_net_profit#43))#47] +Results [1]: [cast((avg(UnscaledValue(ss_net_profit#43))#47 / 100.0) as decimal(11,6)) AS rank_col#48] (143) AdaptiveSparkPlan -Output [1]: [rank_col#47] +Output [1]: [rank_col#48] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 31 Hosting Expression = ReusedSubquery Subquery subquery#11, [id=#12] +Subquery:2 Hosting operator id = 31 Hosting Expression = ReusedSubquery Subquery subquery#12, [id=#13] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q45.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q45.txt index 01ad69726..56cbefa11 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q45.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q45.txt @@ -494,25 +494,25 @@ Input [3]: [ca_zip#10, ca_city#9, _c2#18] Keys [2]: [ca_zip#10, ca_city#9] Functions [1]: [partial_sum(_c2#18)] Aggregate Attributes [1]: [sum#19] -Results [3]: [ca_zip#10, ca_city#9, #20#20] +Results [3]: [ca_zip#10, ca_city#9, #20] (84) NativeShuffleExchange -Input [3]: [ca_zip#10, ca_city#9, #20#20] +Input [3]: [ca_zip#10, ca_city#9, #20] Arguments: hashpartitioning(ca_zip#10, ca_city#9, 100), ENSURE_REQUIREMENTS, [plan_id=11] (85) ShuffleQueryStage -Output [3]: [ca_zip#10, ca_city#9, #20#20] +Output [3]: [ca_zip#10, ca_city#9, #20] Arguments: X (86) AQEShuffleRead -Input [3]: [ca_zip#10, ca_city#9, #20#20] +Input [3]: [ca_zip#10, ca_city#9, #20] Arguments: coalesced (87) InputAdapter -Input [3]: [ca_zip#10, ca_city#9, #20#20] +Input [3]: [ca_zip#10, ca_city#9, #20] (88) NativeHashAggregate -Input [3]: [ca_zip#10, ca_city#9, #20#20] +Input [3]: [ca_zip#10, ca_city#9, #20] Keys [2]: [ca_zip#10, ca_city#9] Functions [1]: [sum(UnscaledValue(ws_sales_price#5))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_sales_price#5))#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt index ec3059175..1966e185e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt @@ -447,10 +447,10 @@ Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18, _c4# Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18] Functions [2]: [partial_sum(_c4#19), partial_sum(_c5#20)] Aggregate Attributes [2]: [sum#21, sum#22] -Results [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18, #23#23] +Results [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18, #23, #23] (69) NativeHashAggregate -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18, #23#23] +Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18, #23, #23] Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#18] Functions [2]: [sum(UnscaledValue(ss_coupon_amt#7)), sum(UnscaledValue(ss_net_profit#8))] Aggregate Attributes [2]: [sum(UnscaledValue(ss_coupon_amt#7))#24, sum(UnscaledValue(ss_net_profit#8))#25] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt index edc49e4a6..28a138580 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt @@ -439,25 +439,25 @@ Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year# Keys [6]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10] Functions [1]: [partial_sum(_c6#14)] Aggregate Attributes [1]: [sum#15] -Results [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Results [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] (51) NativeShuffleExchange -Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] Arguments: hashpartitioning(i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] (52) ShuffleQueryStage -Output [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Output [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] Arguments: X (53) AQEShuffleRead -Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] Arguments: coalesced (54) InputAdapter -Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] (55) NativeHashAggregate -Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16#16] +Input [7]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, #16] Keys [6]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10] Functions [1]: [sum(UnscaledValue(ss_sales_price#7))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#7))#17] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt index fa045281a..47e141b4b 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt @@ -401,18 +401,18 @@ Input [1]: [ss_quantity#5] Keys: [] Functions [1]: [partial_sum(ss_quantity#5)] Aggregate Attributes [1]: [sum#17] -Results [1]: [#18#18] +Results [1]: [#18] (69) NativeShuffleExchange -Input [1]: [#18#18] +Input [1]: [#18] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=9] (70) ShuffleQueryStage -Output [1]: [#18#18] +Output [1]: [#18] Arguments: X (71) NativeHashAggregate -Input [1]: [#18#18] +Input [1]: [#18] Keys: [] Functions [1]: [sum(ss_quantity#5)] Aggregate Attributes [1]: [sum(ss_quantity#5)#19] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q49.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q49.txt index 244bd5772..75d831e3a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q49.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q49.txt @@ -414,513 +414,513 @@ Input [5]: [ws_item_sk#2, _c1#14, _c2#15, _c3#16, _c4#17] Keys [1]: [ws_item_sk#2] Functions [4]: [partial_sum(_c1#14), partial_sum(_c2#15), partial_sum(_c3#16), partial_sum(_c4#17)] Aggregate Attributes [6]: [sum#18, sum#19, sum#20, isEmpty#21, sum#22, isEmpty#23] -Results [2]: [ws_item_sk#2, #24#24] +Results [5]: [ws_item_sk#2, #24, #24, #25, #25] (38) NativeShuffleExchange -Input [2]: [ws_item_sk#2, #24#24] +Input [5]: [ws_item_sk#2, #24, #24, #25, #25] Arguments: hashpartitioning(ws_item_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [2]: [ws_item_sk#2, #24#24] +Output [5]: [ws_item_sk#2, #24, #24, #25, #25] Arguments: X (40) AQEShuffleRead -Input [2]: [ws_item_sk#2, #24#24] +Input [5]: [ws_item_sk#2, #24, #24, #25, #25] Arguments: coalesced (41) InputAdapter -Input [2]: [ws_item_sk#2, #24#24] +Input [5]: [ws_item_sk#2, #24, #24, #25, #25] (42) NativeHashAggregate -Input [2]: [ws_item_sk#2, #24#24] +Input [5]: [ws_item_sk#2, #24, #24, #25, #25] Keys [1]: [ws_item_sk#2] Functions [4]: [sum(coalesce(wr_return_quantity#9, 0)), sum(coalesce(ws_quantity#4, 0)), sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00)), sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(wr_return_quantity#9, 0))#25, sum(coalesce(ws_quantity#4, 0))#26, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28] -Results [5]: [ws_item_sk#2, sum(coalesce(wr_return_quantity#9, 0))#25, sum(coalesce(ws_quantity#4, 0))#26, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28] +Aggregate Attributes [4]: [sum(coalesce(wr_return_quantity#9, 0))#26, sum(coalesce(ws_quantity#4, 0))#27, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29] +Results [5]: [ws_item_sk#2, sum(coalesce(wr_return_quantity#9, 0))#26, sum(coalesce(ws_quantity#4, 0))#27, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29] (43) NativeProject -Output [3]: [ws_item_sk#2 AS item#29, (cast(sum(coalesce(wr_return_quantity#9, 0))#25 as decimal(15,4)) / cast(sum(coalesce(ws_quantity#4, 0))#26 as decimal(15,4))) AS return_ratio#30, (cast(sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27 as decimal(15,4)) / cast(sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28 as decimal(15,4))) AS currency_ratio#31] -Input [5]: [ws_item_sk#2, sum(coalesce(wr_return_quantity#9, 0))#25, sum(coalesce(ws_quantity#4, 0))#26, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28] +Output [3]: [ws_item_sk#2 AS item#30, (cast(sum(coalesce(wr_return_quantity#9, 0))#26 as decimal(15,4)) / cast(sum(coalesce(ws_quantity#4, 0))#27 as decimal(15,4))) AS return_ratio#31, (cast(sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28 as decimal(15,4)) / cast(sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29 as decimal(15,4))) AS currency_ratio#32] +Input [5]: [ws_item_sk#2, sum(coalesce(wr_return_quantity#9, 0))#26, sum(coalesce(ws_quantity#4, 0))#27, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29] (44) NativeShuffleExchange -Input [3]: [item#29, return_ratio#30, currency_ratio#31] +Input [3]: [item#30, return_ratio#31, currency_ratio#32] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6] (45) ShuffleQueryStage -Output [3]: [item#29, return_ratio#30, currency_ratio#31] +Output [3]: [item#30, return_ratio#31, currency_ratio#32] Arguments: X (46) NativeSort -Input [3]: [item#29, return_ratio#30, currency_ratio#31] -Arguments: [return_ratio#30 ASC NULLS FIRST], false +Input [3]: [item#30, return_ratio#31, currency_ratio#32] +Arguments: [return_ratio#31 ASC NULLS FIRST], false (47) NativeWindow -Input [3]: [item#29, return_ratio#30, currency_ratio#31] -Arguments: [rank(return_ratio#30) windowspecdefinition(return_ratio#30 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#32], [return_ratio#30 ASC NULLS FIRST] +Input [3]: [item#30, return_ratio#31, currency_ratio#32] +Arguments: [rank(return_ratio#31) windowspecdefinition(return_ratio#31 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#33], [return_ratio#31 ASC NULLS FIRST] (48) NativeSort -Input [4]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32] -Arguments: [currency_ratio#31 ASC NULLS FIRST], false +Input [4]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33] +Arguments: [currency_ratio#32 ASC NULLS FIRST], false (49) NativeWindow -Input [4]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32] -Arguments: [rank(currency_ratio#31) windowspecdefinition(currency_ratio#31 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#33], [currency_ratio#31 ASC NULLS FIRST] +Input [4]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33] +Arguments: [rank(currency_ratio#32) windowspecdefinition(currency_ratio#32 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#34], [currency_ratio#32 ASC NULLS FIRST] (50) NativeFilter -Input [5]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32, currency_rank#33] -Condition : ((return_rank#32 <= 10) OR (currency_rank#33 <= 10)) +Input [5]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33, currency_rank#34] +Condition : ((return_rank#33 <= 10) OR (currency_rank#34 <= 10)) (51) NativeProject -Output [5]: [web AS channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Input [5]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32, currency_rank#33] +Output [5]: [web AS channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Input [5]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33, currency_rank#34] (188) Scan parquet -Output [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cs_net_profit#40] +Output [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cs_net_profit#41] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_net_profit), IsNotNull(cs_net_paid), IsNotNull(cs_quantity), GreaterThan(cs_net_profit,1.00), GreaterThan(cs_net_paid,0.00), GreaterThan(cs_quantity,0), IsNotNull(cs_order_number), IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (53) InputAdapter -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cs_net_profit#40] -Arguments: [#35, #36, #37, #38, #39, #40] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cs_net_profit#41] +Arguments: [#36, #37, #38, #39, #40, #41] (54) NativeFilter -Input [6]: [#35#35, #36#36, #37#37, #38#38, #39#39, #40#40] -Condition : ((((((((isnotnull(cs_net_profit#40) AND isnotnull(cs_net_paid#39)) AND isnotnull(cs_quantity#38)) AND (cs_net_profit#40 > 1.00)) AND (cs_net_paid#39 > 0.00)) AND (cs_quantity#38 > 0)) AND isnotnull(cs_order_number#37)) AND isnotnull(cs_item_sk#36)) AND isnotnull(cs_sold_date_sk#35)) +Input [6]: [#36#36, #37#37, #38#38, #39#39, #40#40, #41#41] +Condition : ((((((((isnotnull(cs_net_profit#41) AND isnotnull(cs_net_paid#40)) AND isnotnull(cs_quantity#39)) AND (cs_net_profit#41 > 1.00)) AND (cs_net_paid#40 > 0.00)) AND (cs_quantity#39 > 0)) AND isnotnull(cs_order_number#38)) AND isnotnull(cs_item_sk#37)) AND isnotnull(cs_sold_date_sk#36)) (55) NativeProject -Output [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Input [6]: [#35#35, #36#36, #37#37, #38#38, #39#39, #40#40] +Output [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Input [6]: [#36#36, #37#37, #38#38, #39#39, #40#40, #41#41] (56) NativeShuffleExchange -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Arguments: hashpartitioning(cs_order_number#37, cs_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=7] +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Arguments: hashpartitioning(cs_order_number#38, cs_item_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=7] (57) ShuffleQueryStage -Output [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] +Output [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] Arguments: X (58) AQEShuffleRead -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] Arguments: coalesced (59) InputAdapter -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] (60) NativeSort -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Arguments: [cs_order_number#37 ASC NULLS FIRST, cs_item_sk#36 ASC NULLS FIRST], false +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Arguments: [cs_order_number#38 ASC NULLS FIRST, cs_item_sk#37 ASC NULLS FIRST], false (193) Scan parquet -Output [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] +Output [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cr_return_amount), GreaterThan(cr_return_amount,10000.00), IsNotNull(cr_order_number), IsNotNull(cr_item_sk)] ReadSchema: struct (62) InputAdapter -Input [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] -Arguments: [#41, #42, #43, #44] +Input [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] +Arguments: [#42, #43, #44, #45] (63) NativeFilter -Input [4]: [#41#41, #42#42, #43#43, #44#44] -Condition : (((isnotnull(cr_return_amount#44) AND (cr_return_amount#44 > 10000.00)) AND isnotnull(cr_order_number#42)) AND isnotnull(cr_item_sk#41)) +Input [4]: [#42#42, #43#43, #44#44, #45#45] +Condition : (((isnotnull(cr_return_amount#45) AND (cr_return_amount#45 > 10000.00)) AND isnotnull(cr_order_number#43)) AND isnotnull(cr_item_sk#42)) (64) NativeShuffleExchange -Input [4]: [#41#41, #42#42, #43#43, #44#44] -Arguments: hashpartitioning(cr_order_number#42, cr_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=8] +Input [4]: [#42#42, #43#43, #44#44, #45#45] +Arguments: hashpartitioning(cr_order_number#43, cr_item_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=8] (65) ShuffleQueryStage -Output [4]: [#41#41, #42#42, #43#43, #44#44] +Output [4]: [#42#42, #43#43, #44#44, #45#45] Arguments: X (66) AQEShuffleRead -Input [4]: [#41#41, #42#42, #43#43, #44#44] +Input [4]: [#42#42, #43#43, #44#44, #45#45] Arguments: coalesced (67) InputAdapter -Input [4]: [#41#41, #42#42, #43#43, #44#44] +Input [4]: [#42#42, #43#43, #44#44, #45#45] (68) NativeSort -Input [4]: [#41#41, #42#42, #43#43, #44#44] -Arguments: [cr_order_number#42 ASC NULLS FIRST, cr_item_sk#41 ASC NULLS FIRST], false +Input [4]: [#42#42, #43#43, #44#44, #45#45] +Arguments: [cr_order_number#43 ASC NULLS FIRST, cr_item_sk#42 ASC NULLS FIRST], false (69) NativeSortMergeJoin -Left keys [2]: [cs_order_number#37, cs_item_sk#36] -Right keys [2]: [cr_order_number#42, cr_item_sk#41] +Left keys [2]: [cs_order_number#38, cs_item_sk#37] +Right keys [2]: [cr_order_number#43, cr_item_sk#42] Join type: Inner Join condition: None (70) NativeProject -Output [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Input [9]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, #41#41, #42#42, #43#43, #44#44] +Output [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Input [9]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, #42#42, #43#43, #44#44, #45#45] (71) NativeShuffleExchange -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Arguments: hashpartitioning(cs_sold_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Arguments: hashpartitioning(cs_sold_date_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=9] (72) ShuffleQueryStage -Output [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] +Output [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] Arguments: X (73) AQEShuffleRead -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] Arguments: coalesced (74) InputAdapter -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] (75) NativeSort -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Arguments: [cs_sold_date_sk#35 ASC NULLS FIRST], false +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Arguments: [cs_sold_date_sk#36 ASC NULLS FIRST], false (76) ReusedExchange [Reuses operator id: 29] -Output [1]: [d_date_sk#45] +Output [1]: [d_date_sk#46] (77) ShuffleQueryStage -Output [1]: [d_date_sk#45] +Output [1]: [d_date_sk#46] Arguments: X (78) AQEShuffleRead -Input [1]: [d_date_sk#45] +Input [1]: [d_date_sk#46] Arguments: coalesced (79) InputAdapter -Input [1]: [d_date_sk#45] -Arguments: [#45] +Input [1]: [d_date_sk#46] +Arguments: [#46] (80) InputAdapter -Input [1]: [#45#45] +Input [1]: [#46#46] (81) NativeSort -Input [1]: [#45#45] -Arguments: [d_date_sk#45 ASC NULLS FIRST], false +Input [1]: [#46#46] +Arguments: [d_date_sk#46 ASC NULLS FIRST], false (82) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#35] -Right keys [1]: [d_date_sk#45] +Left keys [1]: [cs_sold_date_sk#36] +Right keys [1]: [d_date_sk#46] Join type: Inner Join condition: None (83) NativeProject -Output [5]: [cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Input [7]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44, #45#45] +Output [5]: [cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Input [7]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45, #46#46] (84) NativeProject -Output [5]: [cs_item_sk#36 AS cs_item_sk#36, coalesce(cr_return_quantity#43, 0) AS _c1#46, coalesce(cs_quantity#38, 0) AS _c2#47, coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00) AS _c3#48, coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00) AS _c4#49] -Input [5]: [cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] +Output [5]: [cs_item_sk#37 AS cs_item_sk#37, coalesce(cr_return_quantity#44, 0) AS _c1#47, coalesce(cs_quantity#39, 0) AS _c2#48, coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00) AS _c3#49, coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00) AS _c4#50] +Input [5]: [cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] (85) NativeHashAggregate -Input [5]: [cs_item_sk#36, _c1#46, _c2#47, _c3#48, _c4#49] -Keys [1]: [cs_item_sk#36] -Functions [4]: [partial_sum(_c1#46), partial_sum(_c2#47), partial_sum(_c3#48), partial_sum(_c4#49)] -Aggregate Attributes [6]: [sum#50, sum#51, sum#52, isEmpty#53, sum#54, isEmpty#55] -Results [2]: [cs_item_sk#36, #24#24] +Input [5]: [cs_item_sk#37, _c1#47, _c2#48, _c3#49, _c4#50] +Keys [1]: [cs_item_sk#37] +Functions [4]: [partial_sum(_c1#47), partial_sum(_c2#48), partial_sum(_c3#49), partial_sum(_c4#50)] +Aggregate Attributes [6]: [sum#51, sum#52, sum#53, isEmpty#54, sum#55, isEmpty#56] +Results [5]: [cs_item_sk#37, #24, #24, #25, #25] (86) NativeShuffleExchange -Input [2]: [cs_item_sk#36, #24#24] -Arguments: hashpartitioning(cs_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [5]: [cs_item_sk#37, #24, #24, #25, #25] +Arguments: hashpartitioning(cs_item_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=10] (87) ShuffleQueryStage -Output [2]: [cs_item_sk#36, #24#24] +Output [5]: [cs_item_sk#37, #24, #24, #25, #25] Arguments: X (88) AQEShuffleRead -Input [2]: [cs_item_sk#36, #24#24] +Input [5]: [cs_item_sk#37, #24, #24, #25, #25] Arguments: coalesced (89) InputAdapter -Input [2]: [cs_item_sk#36, #24#24] +Input [5]: [cs_item_sk#37, #24, #24, #25, #25] (90) NativeHashAggregate -Input [2]: [cs_item_sk#36, #24#24] -Keys [1]: [cs_item_sk#36] -Functions [4]: [sum(coalesce(cr_return_quantity#43, 0)), sum(coalesce(cs_quantity#38, 0)), sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00)), sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(cr_return_quantity#43, 0))#56, sum(coalesce(cs_quantity#38, 0))#57, sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58, sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59] -Results [5]: [cs_item_sk#36, sum(coalesce(cr_return_quantity#43, 0))#56, sum(coalesce(cs_quantity#38, 0))#57, sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58, sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59] +Input [5]: [cs_item_sk#37, #24, #24, #25, #25] +Keys [1]: [cs_item_sk#37] +Functions [4]: [sum(coalesce(cr_return_quantity#44, 0)), sum(coalesce(cs_quantity#39, 0)), sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00)), sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))] +Aggregate Attributes [4]: [sum(coalesce(cr_return_quantity#44, 0))#57, sum(coalesce(cs_quantity#39, 0))#58, sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59, sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60] +Results [5]: [cs_item_sk#37, sum(coalesce(cr_return_quantity#44, 0))#57, sum(coalesce(cs_quantity#39, 0))#58, sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59, sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60] (91) NativeProject -Output [3]: [cs_item_sk#36 AS item#60, (cast(sum(coalesce(cr_return_quantity#43, 0))#56 as decimal(15,4)) / cast(sum(coalesce(cs_quantity#38, 0))#57 as decimal(15,4))) AS return_ratio#61, (cast(sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58 as decimal(15,4)) / cast(sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59 as decimal(15,4))) AS currency_ratio#62] -Input [5]: [cs_item_sk#36, sum(coalesce(cr_return_quantity#43, 0))#56, sum(coalesce(cs_quantity#38, 0))#57, sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58, sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59] +Output [3]: [cs_item_sk#37 AS item#61, (cast(sum(coalesce(cr_return_quantity#44, 0))#57 as decimal(15,4)) / cast(sum(coalesce(cs_quantity#39, 0))#58 as decimal(15,4))) AS return_ratio#62, (cast(sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59 as decimal(15,4)) / cast(sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60 as decimal(15,4))) AS currency_ratio#63] +Input [5]: [cs_item_sk#37, sum(coalesce(cr_return_quantity#44, 0))#57, sum(coalesce(cs_quantity#39, 0))#58, sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59, sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60] (92) NativeShuffleExchange -Input [3]: [item#60, return_ratio#61, currency_ratio#62] +Input [3]: [item#61, return_ratio#62, currency_ratio#63] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=11] (93) ShuffleQueryStage -Output [3]: [item#60, return_ratio#61, currency_ratio#62] +Output [3]: [item#61, return_ratio#62, currency_ratio#63] Arguments: X (94) NativeSort -Input [3]: [item#60, return_ratio#61, currency_ratio#62] -Arguments: [return_ratio#61 ASC NULLS FIRST], false +Input [3]: [item#61, return_ratio#62, currency_ratio#63] +Arguments: [return_ratio#62 ASC NULLS FIRST], false (95) NativeWindow -Input [3]: [item#60, return_ratio#61, currency_ratio#62] -Arguments: [rank(return_ratio#61) windowspecdefinition(return_ratio#61 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#63], [return_ratio#61 ASC NULLS FIRST] +Input [3]: [item#61, return_ratio#62, currency_ratio#63] +Arguments: [rank(return_ratio#62) windowspecdefinition(return_ratio#62 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#64], [return_ratio#62 ASC NULLS FIRST] (96) NativeSort -Input [4]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63] -Arguments: [currency_ratio#62 ASC NULLS FIRST], false +Input [4]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64] +Arguments: [currency_ratio#63 ASC NULLS FIRST], false (97) NativeWindow -Input [4]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63] -Arguments: [rank(currency_ratio#62) windowspecdefinition(currency_ratio#62 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#64], [currency_ratio#62 ASC NULLS FIRST] +Input [4]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64] +Arguments: [rank(currency_ratio#63) windowspecdefinition(currency_ratio#63 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#65], [currency_ratio#63 ASC NULLS FIRST] (98) NativeFilter -Input [5]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63, currency_rank#64] -Condition : ((return_rank#63 <= 10) OR (currency_rank#64 <= 10)) +Input [5]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64, currency_rank#65] +Condition : ((return_rank#64 <= 10) OR (currency_rank#65 <= 10)) (99) NativeProject -Output [5]: [catalog AS channel#65, item#60, return_ratio#61, return_rank#63, currency_rank#64] -Input [5]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63, currency_rank#64] +Output [5]: [catalog AS channel#66, item#61, return_ratio#62, return_rank#64, currency_rank#65] +Input [5]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64, currency_rank#65] (218) Scan parquet -Output [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, ss_net_profit#71] +Output [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, ss_net_profit#72] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_net_profit), IsNotNull(ss_net_paid), IsNotNull(ss_quantity), GreaterThan(ss_net_profit,1.00), GreaterThan(ss_net_paid,0.00), GreaterThan(ss_quantity,0), IsNotNull(ss_ticket_number), IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (101) InputAdapter -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, ss_net_profit#71] -Arguments: [#66, #67, #68, #69, #70, #71] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, ss_net_profit#72] +Arguments: [#67, #68, #69, #70, #71, #72] (102) NativeFilter -Input [6]: [#66#66, #67#67, #68#68, #69#69, #70#70, #71#71] -Condition : ((((((((isnotnull(ss_net_profit#71) AND isnotnull(ss_net_paid#70)) AND isnotnull(ss_quantity#69)) AND (ss_net_profit#71 > 1.00)) AND (ss_net_paid#70 > 0.00)) AND (ss_quantity#69 > 0)) AND isnotnull(ss_ticket_number#68)) AND isnotnull(ss_item_sk#67)) AND isnotnull(ss_sold_date_sk#66)) +Input [6]: [#67#67, #68#68, #69#69, #70#70, #71#71, #72#72] +Condition : ((((((((isnotnull(ss_net_profit#72) AND isnotnull(ss_net_paid#71)) AND isnotnull(ss_quantity#70)) AND (ss_net_profit#72 > 1.00)) AND (ss_net_paid#71 > 0.00)) AND (ss_quantity#70 > 0)) AND isnotnull(ss_ticket_number#69)) AND isnotnull(ss_item_sk#68)) AND isnotnull(ss_sold_date_sk#67)) (103) NativeProject -Output [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Input [6]: [#66#66, #67#67, #68#68, #69#69, #70#70, #71#71] +Output [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Input [6]: [#67#67, #68#68, #69#69, #70#70, #71#71, #72#72] (104) NativeShuffleExchange -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Arguments: hashpartitioning(ss_ticket_number#68, ss_item_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Arguments: hashpartitioning(ss_ticket_number#69, ss_item_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=12] (105) ShuffleQueryStage -Output [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] +Output [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] Arguments: X (106) AQEShuffleRead -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] Arguments: coalesced (107) InputAdapter -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] (108) NativeSort -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Arguments: [ss_ticket_number#68 ASC NULLS FIRST, ss_item_sk#67 ASC NULLS FIRST], false +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Arguments: [ss_ticket_number#69 ASC NULLS FIRST, ss_item_sk#68 ASC NULLS FIRST], false (223) Scan parquet -Output [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] +Output [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(sr_return_amt), GreaterThan(sr_return_amt,10000.00), IsNotNull(sr_ticket_number), IsNotNull(sr_item_sk)] ReadSchema: struct (110) InputAdapter -Input [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] -Arguments: [#72, #73, #74, #75] +Input [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] +Arguments: [#73, #74, #75, #76] (111) NativeFilter -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Condition : (((isnotnull(sr_return_amt#75) AND (sr_return_amt#75 > 10000.00)) AND isnotnull(sr_ticket_number#73)) AND isnotnull(sr_item_sk#72)) +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Condition : (((isnotnull(sr_return_amt#76) AND (sr_return_amt#76 > 10000.00)) AND isnotnull(sr_ticket_number#74)) AND isnotnull(sr_item_sk#73)) (112) NativeShuffleExchange -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Arguments: hashpartitioning(sr_ticket_number#73, sr_item_sk#72, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Arguments: hashpartitioning(sr_ticket_number#74, sr_item_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=13] (113) ShuffleQueryStage -Output [4]: [#72#72, #73#73, #74#74, #75#75] +Output [4]: [#73#73, #74#74, #75#75, #76#76] Arguments: X (114) AQEShuffleRead -Input [4]: [#72#72, #73#73, #74#74, #75#75] +Input [4]: [#73#73, #74#74, #75#75, #76#76] Arguments: coalesced (115) InputAdapter -Input [4]: [#72#72, #73#73, #74#74, #75#75] +Input [4]: [#73#73, #74#74, #75#75, #76#76] (116) NativeSort -Input [4]: [#72#72, #73#73, #74#74, #75#75] -Arguments: [sr_ticket_number#73 ASC NULLS FIRST, sr_item_sk#72 ASC NULLS FIRST], false +Input [4]: [#73#73, #74#74, #75#75, #76#76] +Arguments: [sr_ticket_number#74 ASC NULLS FIRST, sr_item_sk#73 ASC NULLS FIRST], false (117) NativeSortMergeJoin -Left keys [2]: [ss_ticket_number#68, ss_item_sk#67] -Right keys [2]: [sr_ticket_number#73, sr_item_sk#72] +Left keys [2]: [ss_ticket_number#69, ss_item_sk#68] +Right keys [2]: [sr_ticket_number#74, sr_item_sk#73] Join type: Inner Join condition: None (118) NativeProject -Output [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Input [9]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, #72#72, #73#73, #74#74, #75#75] +Output [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Input [9]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, #73#73, #74#74, #75#75, #76#76] (119) NativeShuffleExchange -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Arguments: hashpartitioning(ss_sold_date_sk#66, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Arguments: hashpartitioning(ss_sold_date_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=14] (120) ShuffleQueryStage -Output [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] +Output [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] Arguments: X (121) AQEShuffleRead -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] Arguments: coalesced (122) InputAdapter -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] (123) NativeSort -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Arguments: [ss_sold_date_sk#66 ASC NULLS FIRST], false +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Arguments: [ss_sold_date_sk#67 ASC NULLS FIRST], false (124) ReusedExchange [Reuses operator id: 29] -Output [1]: [d_date_sk#76] +Output [1]: [d_date_sk#77] (125) ShuffleQueryStage -Output [1]: [d_date_sk#76] +Output [1]: [d_date_sk#77] Arguments: X (126) AQEShuffleRead -Input [1]: [d_date_sk#76] +Input [1]: [d_date_sk#77] Arguments: coalesced (127) InputAdapter -Input [1]: [d_date_sk#76] -Arguments: [#76] +Input [1]: [d_date_sk#77] +Arguments: [#77] (128) InputAdapter -Input [1]: [#76#76] +Input [1]: [#77#77] (129) NativeSort -Input [1]: [#76#76] -Arguments: [d_date_sk#76 ASC NULLS FIRST], false +Input [1]: [#77#77] +Arguments: [d_date_sk#77 ASC NULLS FIRST], false (130) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#66] -Right keys [1]: [d_date_sk#76] +Left keys [1]: [ss_sold_date_sk#67] +Right keys [1]: [d_date_sk#77] Join type: Inner Join condition: None (131) NativeProject -Output [5]: [ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Input [7]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75, #76#76] +Output [5]: [ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Input [7]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76, #77#77] (132) NativeProject -Output [5]: [ss_item_sk#67 AS ss_item_sk#67, coalesce(sr_return_quantity#74, 0) AS _c1#77, coalesce(ss_quantity#69, 0) AS _c2#78, coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00) AS _c3#79, coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00) AS _c4#80] -Input [5]: [ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] +Output [5]: [ss_item_sk#68 AS ss_item_sk#68, coalesce(sr_return_quantity#75, 0) AS _c1#78, coalesce(ss_quantity#70, 0) AS _c2#79, coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00) AS _c3#80, coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00) AS _c4#81] +Input [5]: [ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] (133) NativeHashAggregate -Input [5]: [ss_item_sk#67, _c1#77, _c2#78, _c3#79, _c4#80] -Keys [1]: [ss_item_sk#67] -Functions [4]: [partial_sum(_c1#77), partial_sum(_c2#78), partial_sum(_c3#79), partial_sum(_c4#80)] -Aggregate Attributes [6]: [sum#81, sum#82, sum#83, isEmpty#84, sum#85, isEmpty#86] -Results [2]: [ss_item_sk#67, #24#24] +Input [5]: [ss_item_sk#68, _c1#78, _c2#79, _c3#80, _c4#81] +Keys [1]: [ss_item_sk#68] +Functions [4]: [partial_sum(_c1#78), partial_sum(_c2#79), partial_sum(_c3#80), partial_sum(_c4#81)] +Aggregate Attributes [6]: [sum#82, sum#83, sum#84, isEmpty#85, sum#86, isEmpty#87] +Results [5]: [ss_item_sk#68, #24, #24, #25, #25] (134) NativeShuffleExchange -Input [2]: [ss_item_sk#67, #24#24] -Arguments: hashpartitioning(ss_item_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [5]: [ss_item_sk#68, #24, #24, #25, #25] +Arguments: hashpartitioning(ss_item_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=15] (135) ShuffleQueryStage -Output [2]: [ss_item_sk#67, #24#24] +Output [5]: [ss_item_sk#68, #24, #24, #25, #25] Arguments: X (136) AQEShuffleRead -Input [2]: [ss_item_sk#67, #24#24] +Input [5]: [ss_item_sk#68, #24, #24, #25, #25] Arguments: coalesced (137) InputAdapter -Input [2]: [ss_item_sk#67, #24#24] +Input [5]: [ss_item_sk#68, #24, #24, #25, #25] (138) NativeHashAggregate -Input [2]: [ss_item_sk#67, #24#24] -Keys [1]: [ss_item_sk#67] -Functions [4]: [sum(coalesce(sr_return_quantity#74, 0)), sum(coalesce(ss_quantity#69, 0)), sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00)), sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(sr_return_quantity#74, 0))#87, sum(coalesce(ss_quantity#69, 0))#88, sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89, sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90] -Results [5]: [ss_item_sk#67, sum(coalesce(sr_return_quantity#74, 0))#87, sum(coalesce(ss_quantity#69, 0))#88, sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89, sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90] +Input [5]: [ss_item_sk#68, #24, #24, #25, #25] +Keys [1]: [ss_item_sk#68] +Functions [4]: [sum(coalesce(sr_return_quantity#75, 0)), sum(coalesce(ss_quantity#70, 0)), sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00)), sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))] +Aggregate Attributes [4]: [sum(coalesce(sr_return_quantity#75, 0))#88, sum(coalesce(ss_quantity#70, 0))#89, sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90, sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91] +Results [5]: [ss_item_sk#68, sum(coalesce(sr_return_quantity#75, 0))#88, sum(coalesce(ss_quantity#70, 0))#89, sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90, sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91] (139) NativeProject -Output [3]: [ss_item_sk#67 AS item#91, (cast(sum(coalesce(sr_return_quantity#74, 0))#87 as decimal(15,4)) / cast(sum(coalesce(ss_quantity#69, 0))#88 as decimal(15,4))) AS return_ratio#92, (cast(sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89 as decimal(15,4)) / cast(sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90 as decimal(15,4))) AS currency_ratio#93] -Input [5]: [ss_item_sk#67, sum(coalesce(sr_return_quantity#74, 0))#87, sum(coalesce(ss_quantity#69, 0))#88, sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89, sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90] +Output [3]: [ss_item_sk#68 AS item#92, (cast(sum(coalesce(sr_return_quantity#75, 0))#88 as decimal(15,4)) / cast(sum(coalesce(ss_quantity#70, 0))#89 as decimal(15,4))) AS return_ratio#93, (cast(sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90 as decimal(15,4)) / cast(sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91 as decimal(15,4))) AS currency_ratio#94] +Input [5]: [ss_item_sk#68, sum(coalesce(sr_return_quantity#75, 0))#88, sum(coalesce(ss_quantity#70, 0))#89, sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90, sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91] (140) NativeShuffleExchange -Input [3]: [item#91, return_ratio#92, currency_ratio#93] +Input [3]: [item#92, return_ratio#93, currency_ratio#94] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=16] (141) ShuffleQueryStage -Output [3]: [item#91, return_ratio#92, currency_ratio#93] +Output [3]: [item#92, return_ratio#93, currency_ratio#94] Arguments: X (142) NativeSort -Input [3]: [item#91, return_ratio#92, currency_ratio#93] -Arguments: [return_ratio#92 ASC NULLS FIRST], false +Input [3]: [item#92, return_ratio#93, currency_ratio#94] +Arguments: [return_ratio#93 ASC NULLS FIRST], false (143) NativeWindow -Input [3]: [item#91, return_ratio#92, currency_ratio#93] -Arguments: [rank(return_ratio#92) windowspecdefinition(return_ratio#92 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#94], [return_ratio#92 ASC NULLS FIRST] +Input [3]: [item#92, return_ratio#93, currency_ratio#94] +Arguments: [rank(return_ratio#93) windowspecdefinition(return_ratio#93 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#95], [return_ratio#93 ASC NULLS FIRST] (144) NativeSort -Input [4]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94] -Arguments: [currency_ratio#93 ASC NULLS FIRST], false +Input [4]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95] +Arguments: [currency_ratio#94 ASC NULLS FIRST], false (145) NativeWindow -Input [4]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94] -Arguments: [rank(currency_ratio#93) windowspecdefinition(currency_ratio#93 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#95], [currency_ratio#93 ASC NULLS FIRST] +Input [4]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95] +Arguments: [rank(currency_ratio#94) windowspecdefinition(currency_ratio#94 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#96], [currency_ratio#94 ASC NULLS FIRST] (146) NativeFilter -Input [5]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94, currency_rank#95] -Condition : ((return_rank#94 <= 10) OR (currency_rank#95 <= 10)) +Input [5]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95, currency_rank#96] +Condition : ((return_rank#95 <= 10) OR (currency_rank#96 <= 10)) (147) NativeProject -Output [5]: [store AS channel#96, item#91, return_ratio#92, return_rank#94, currency_rank#95] -Input [5]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94, currency_rank#95] +Output [5]: [store AS channel#97, item#92, return_ratio#93, return_rank#95, currency_rank#96] +Input [5]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95, currency_rank#96] (148) NativeUnion -Arguments: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Arguments: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (149) InputAdapter -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Arguments: [#34, #29, #30, #32, #33] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Arguments: [#35, #30, #31, #33, #34] (150) NativeHashAggregate -Input [5]: [#34#34, #29#29, #30#30, #32#32, #33#33] -Keys [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Input [5]: [#35#35, #30#30, #31#31, #33#33, #34#34] +Keys [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Functions: [] Aggregate Attributes: [] -Results [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Results [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (151) NativeShuffleExchange -Input [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] -Arguments: hashpartitioning(channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, 100), ENSURE_REQUIREMENTS, [plan_id=17] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Arguments: hashpartitioning(channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34, 100), ENSURE_REQUIREMENTS, [plan_id=17] (152) ShuffleQueryStage -Output [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Output [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Arguments: X (153) AQEShuffleRead -Input [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Arguments: coalesced (154) InputAdapter -Input [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (155) NativeHashAggregate -Input [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] -Keys [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Keys [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Functions: [] Aggregate Attributes: [] -Results [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Results [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (156) NativeProject -Output [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Input [6]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, #24#24] +Output [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (157) NativeTakeOrdered -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Arguments: X, [channel#34 ASC NULLS FIRST, return_rank#32 ASC NULLS FIRST, currency_rank#33 ASC NULLS FIRST, item#29 ASC NULLS FIRST] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Arguments: X, [channel#35 ASC NULLS FIRST, return_rank#33 ASC NULLS FIRST, currency_rank#34 ASC NULLS FIRST, item#30 ASC NULLS FIRST] (158) Scan parquet Output [6]: [ws_sold_date_sk#1, ws_item_sk#2, ws_order_number#3, ws_quantity#4, ws_net_paid#5, ws_net_profit#6] @@ -1020,350 +1020,350 @@ Input [5]: [ws_item_sk#2, ws_quantity#4, ws_net_paid#5, wr_return_quantity#9, wr Keys [1]: [ws_item_sk#2] Functions [4]: [partial_sum(coalesce(wr_return_quantity#9, 0)), partial_sum(coalesce(ws_quantity#4, 0)), partial_sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00)), partial_sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))] Aggregate Attributes [6]: [sum#18, sum#19, sum#20, isEmpty#21, sum#22, isEmpty#23] -Results [7]: [ws_item_sk#2, sum#97, sum#98, sum#99, isEmpty#100, sum#101, isEmpty#102] +Results [7]: [ws_item_sk#2, sum#98, sum#99, sum#100, isEmpty#101, sum#102, isEmpty#103] (179) Exchange -Input [7]: [ws_item_sk#2, sum#97, sum#98, sum#99, isEmpty#100, sum#101, isEmpty#102] +Input [7]: [ws_item_sk#2, sum#98, sum#99, sum#100, isEmpty#101, sum#102, isEmpty#103] Arguments: hashpartitioning(ws_item_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=22] (180) HashAggregate -Input [7]: [ws_item_sk#2, sum#97, sum#98, sum#99, isEmpty#100, sum#101, isEmpty#102] +Input [7]: [ws_item_sk#2, sum#98, sum#99, sum#100, isEmpty#101, sum#102, isEmpty#103] Keys [1]: [ws_item_sk#2] Functions [4]: [sum(coalesce(wr_return_quantity#9, 0)), sum(coalesce(ws_quantity#4, 0)), sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00)), sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(wr_return_quantity#9, 0))#25, sum(coalesce(ws_quantity#4, 0))#26, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28] -Results [3]: [ws_item_sk#2 AS item#29, (cast(sum(coalesce(wr_return_quantity#9, 0))#25 as decimal(15,4)) / cast(sum(coalesce(ws_quantity#4, 0))#26 as decimal(15,4))) AS return_ratio#30, (cast(sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#27 as decimal(15,4)) / cast(sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#28 as decimal(15,4))) AS currency_ratio#31] +Aggregate Attributes [4]: [sum(coalesce(wr_return_quantity#9, 0))#26, sum(coalesce(ws_quantity#4, 0))#27, sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28, sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29] +Results [3]: [ws_item_sk#2 AS item#30, (cast(sum(coalesce(wr_return_quantity#9, 0))#26 as decimal(15,4)) / cast(sum(coalesce(ws_quantity#4, 0))#27 as decimal(15,4))) AS return_ratio#31, (cast(sum(coalesce(cast(wr_return_amt#10 as decimal(12,2)), 0.00))#28 as decimal(15,4)) / cast(sum(coalesce(cast(ws_net_paid#5 as decimal(12,2)), 0.00))#29 as decimal(15,4))) AS currency_ratio#32] (181) Exchange -Input [3]: [item#29, return_ratio#30, currency_ratio#31] +Input [3]: [item#30, return_ratio#31, currency_ratio#32] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=23] (182) Sort -Input [3]: [item#29, return_ratio#30, currency_ratio#31] -Arguments: [return_ratio#30 ASC NULLS FIRST], false, 0 +Input [3]: [item#30, return_ratio#31, currency_ratio#32] +Arguments: [return_ratio#31 ASC NULLS FIRST], false, 0 (183) Window -Input [3]: [item#29, return_ratio#30, currency_ratio#31] -Arguments: [rank(return_ratio#30) windowspecdefinition(return_ratio#30 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#32], [return_ratio#30 ASC NULLS FIRST] +Input [3]: [item#30, return_ratio#31, currency_ratio#32] +Arguments: [rank(return_ratio#31) windowspecdefinition(return_ratio#31 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#33], [return_ratio#31 ASC NULLS FIRST] (184) Sort -Input [4]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32] -Arguments: [currency_ratio#31 ASC NULLS FIRST], false, 0 +Input [4]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33] +Arguments: [currency_ratio#32 ASC NULLS FIRST], false, 0 (185) Window -Input [4]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32] -Arguments: [rank(currency_ratio#31) windowspecdefinition(currency_ratio#31 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#33], [currency_ratio#31 ASC NULLS FIRST] +Input [4]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33] +Arguments: [rank(currency_ratio#32) windowspecdefinition(currency_ratio#32 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#34], [currency_ratio#32 ASC NULLS FIRST] (186) Filter -Input [5]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32, currency_rank#33] -Condition : ((return_rank#32 <= 10) OR (currency_rank#33 <= 10)) +Input [5]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33, currency_rank#34] +Condition : ((return_rank#33 <= 10) OR (currency_rank#34 <= 10)) (187) Project -Output [5]: [web AS channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Input [5]: [item#29, return_ratio#30, currency_ratio#31, return_rank#32, currency_rank#33] +Output [5]: [web AS channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Input [5]: [item#30, return_ratio#31, currency_ratio#32, return_rank#33, currency_rank#34] (188) Scan parquet -Output [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cs_net_profit#40] +Output [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cs_net_profit#41] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_net_profit), IsNotNull(cs_net_paid), IsNotNull(cs_quantity), GreaterThan(cs_net_profit,1.00), GreaterThan(cs_net_paid,0.00), GreaterThan(cs_quantity,0), IsNotNull(cs_order_number), IsNotNull(cs_item_sk), IsNotNull(cs_sold_date_sk)] ReadSchema: struct (189) Filter -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cs_net_profit#40] -Condition : ((((((((isnotnull(cs_net_profit#40) AND isnotnull(cs_net_paid#39)) AND isnotnull(cs_quantity#38)) AND (cs_net_profit#40 > 1.00)) AND (cs_net_paid#39 > 0.00)) AND (cs_quantity#38 > 0)) AND isnotnull(cs_order_number#37)) AND isnotnull(cs_item_sk#36)) AND isnotnull(cs_sold_date_sk#35)) +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cs_net_profit#41] +Condition : ((((((((isnotnull(cs_net_profit#41) AND isnotnull(cs_net_paid#40)) AND isnotnull(cs_quantity#39)) AND (cs_net_profit#41 > 1.00)) AND (cs_net_paid#40 > 0.00)) AND (cs_quantity#39 > 0)) AND isnotnull(cs_order_number#38)) AND isnotnull(cs_item_sk#37)) AND isnotnull(cs_sold_date_sk#36)) (190) Project -Output [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cs_net_profit#40] +Output [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cs_net_profit#41] (191) Exchange -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Arguments: hashpartitioning(cs_order_number#37, cs_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Arguments: hashpartitioning(cs_order_number#38, cs_item_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=24] (192) Sort -Input [5]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39] -Arguments: [cs_order_number#37 ASC NULLS FIRST, cs_item_sk#36 ASC NULLS FIRST], false, 0 +Input [5]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40] +Arguments: [cs_order_number#38 ASC NULLS FIRST, cs_item_sk#37 ASC NULLS FIRST], false, 0 (193) Scan parquet -Output [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] +Output [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cr_return_amount), GreaterThan(cr_return_amount,10000.00), IsNotNull(cr_order_number), IsNotNull(cr_item_sk)] ReadSchema: struct (194) Filter -Input [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] -Condition : (((isnotnull(cr_return_amount#44) AND (cr_return_amount#44 > 10000.00)) AND isnotnull(cr_order_number#42)) AND isnotnull(cr_item_sk#41)) +Input [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] +Condition : (((isnotnull(cr_return_amount#45) AND (cr_return_amount#45 > 10000.00)) AND isnotnull(cr_order_number#43)) AND isnotnull(cr_item_sk#42)) (195) Exchange -Input [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] -Arguments: hashpartitioning(cr_order_number#42, cr_item_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] +Arguments: hashpartitioning(cr_order_number#43, cr_item_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=25] (196) Sort -Input [4]: [cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] -Arguments: [cr_order_number#42 ASC NULLS FIRST, cr_item_sk#41 ASC NULLS FIRST], false, 0 +Input [4]: [cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] +Arguments: [cr_order_number#43 ASC NULLS FIRST, cr_item_sk#42 ASC NULLS FIRST], false, 0 (197) SortMergeJoin -Left keys [2]: [cs_order_number#37, cs_item_sk#36] -Right keys [2]: [cr_order_number#42, cr_item_sk#41] +Left keys [2]: [cs_order_number#38, cs_item_sk#37] +Right keys [2]: [cr_order_number#43, cr_item_sk#42] Join type: Inner Join condition: None (198) Project -Output [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Input [9]: [cs_sold_date_sk#35, cs_item_sk#36, cs_order_number#37, cs_quantity#38, cs_net_paid#39, cr_item_sk#41, cr_order_number#42, cr_return_quantity#43, cr_return_amount#44] +Output [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Input [9]: [cs_sold_date_sk#36, cs_item_sk#37, cs_order_number#38, cs_quantity#39, cs_net_paid#40, cr_item_sk#42, cr_order_number#43, cr_return_quantity#44, cr_return_amount#45] (199) Exchange -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Arguments: hashpartitioning(cs_sold_date_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Arguments: hashpartitioning(cs_sold_date_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=26] (200) Sort -Input [6]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Arguments: [cs_sold_date_sk#35 ASC NULLS FIRST], false, 0 +Input [6]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Arguments: [cs_sold_date_sk#36 ASC NULLS FIRST], false, 0 (201) Scan parquet -Output [3]: [d_date_sk#45, d_year#103, d_moy#104] +Output [3]: [d_date_sk#46, d_year#104, d_moy#105] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,12), IsNotNull(d_date_sk)] ReadSchema: struct (202) Filter -Input [3]: [d_date_sk#45, d_year#103, d_moy#104] -Condition : ((((isnotnull(d_year#103) AND isnotnull(d_moy#104)) AND (d_year#103 = 2001)) AND (d_moy#104 = 12)) AND isnotnull(d_date_sk#45)) +Input [3]: [d_date_sk#46, d_year#104, d_moy#105] +Condition : ((((isnotnull(d_year#104) AND isnotnull(d_moy#105)) AND (d_year#104 = 2001)) AND (d_moy#105 = 12)) AND isnotnull(d_date_sk#46)) (203) Project -Output [1]: [d_date_sk#45] -Input [3]: [d_date_sk#45, d_year#103, d_moy#104] +Output [1]: [d_date_sk#46] +Input [3]: [d_date_sk#46, d_year#104, d_moy#105] (204) Exchange -Input [1]: [d_date_sk#45] -Arguments: hashpartitioning(d_date_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [1]: [d_date_sk#46] +Arguments: hashpartitioning(d_date_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=27] (205) Sort -Input [1]: [d_date_sk#45] -Arguments: [d_date_sk#45 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#46] +Arguments: [d_date_sk#46 ASC NULLS FIRST], false, 0 (206) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#35] -Right keys [1]: [d_date_sk#45] +Left keys [1]: [cs_sold_date_sk#36] +Right keys [1]: [d_date_sk#46] Join type: Inner Join condition: None (207) Project -Output [5]: [cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Input [7]: [cs_sold_date_sk#35, cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44, d_date_sk#45] +Output [5]: [cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Input [7]: [cs_sold_date_sk#36, cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45, d_date_sk#46] (208) HashAggregate -Input [5]: [cs_item_sk#36, cs_quantity#38, cs_net_paid#39, cr_return_quantity#43, cr_return_amount#44] -Keys [1]: [cs_item_sk#36] -Functions [4]: [partial_sum(coalesce(cr_return_quantity#43, 0)), partial_sum(coalesce(cs_quantity#38, 0)), partial_sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00)), partial_sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))] -Aggregate Attributes [6]: [sum#50, sum#51, sum#52, isEmpty#53, sum#54, isEmpty#55] -Results [7]: [cs_item_sk#36, sum#105, sum#106, sum#107, isEmpty#108, sum#109, isEmpty#110] +Input [5]: [cs_item_sk#37, cs_quantity#39, cs_net_paid#40, cr_return_quantity#44, cr_return_amount#45] +Keys [1]: [cs_item_sk#37] +Functions [4]: [partial_sum(coalesce(cr_return_quantity#44, 0)), partial_sum(coalesce(cs_quantity#39, 0)), partial_sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00)), partial_sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))] +Aggregate Attributes [6]: [sum#51, sum#52, sum#53, isEmpty#54, sum#55, isEmpty#56] +Results [7]: [cs_item_sk#37, sum#106, sum#107, sum#108, isEmpty#109, sum#110, isEmpty#111] (209) Exchange -Input [7]: [cs_item_sk#36, sum#105, sum#106, sum#107, isEmpty#108, sum#109, isEmpty#110] -Arguments: hashpartitioning(cs_item_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [7]: [cs_item_sk#37, sum#106, sum#107, sum#108, isEmpty#109, sum#110, isEmpty#111] +Arguments: hashpartitioning(cs_item_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=28] (210) HashAggregate -Input [7]: [cs_item_sk#36, sum#105, sum#106, sum#107, isEmpty#108, sum#109, isEmpty#110] -Keys [1]: [cs_item_sk#36] -Functions [4]: [sum(coalesce(cr_return_quantity#43, 0)), sum(coalesce(cs_quantity#38, 0)), sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00)), sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(cr_return_quantity#43, 0))#56, sum(coalesce(cs_quantity#38, 0))#57, sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58, sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59] -Results [3]: [cs_item_sk#36 AS item#60, (cast(sum(coalesce(cr_return_quantity#43, 0))#56 as decimal(15,4)) / cast(sum(coalesce(cs_quantity#38, 0))#57 as decimal(15,4))) AS return_ratio#61, (cast(sum(coalesce(cast(cr_return_amount#44 as decimal(12,2)), 0.00))#58 as decimal(15,4)) / cast(sum(coalesce(cast(cs_net_paid#39 as decimal(12,2)), 0.00))#59 as decimal(15,4))) AS currency_ratio#62] +Input [7]: [cs_item_sk#37, sum#106, sum#107, sum#108, isEmpty#109, sum#110, isEmpty#111] +Keys [1]: [cs_item_sk#37] +Functions [4]: [sum(coalesce(cr_return_quantity#44, 0)), sum(coalesce(cs_quantity#39, 0)), sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00)), sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))] +Aggregate Attributes [4]: [sum(coalesce(cr_return_quantity#44, 0))#57, sum(coalesce(cs_quantity#39, 0))#58, sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59, sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60] +Results [3]: [cs_item_sk#37 AS item#61, (cast(sum(coalesce(cr_return_quantity#44, 0))#57 as decimal(15,4)) / cast(sum(coalesce(cs_quantity#39, 0))#58 as decimal(15,4))) AS return_ratio#62, (cast(sum(coalesce(cast(cr_return_amount#45 as decimal(12,2)), 0.00))#59 as decimal(15,4)) / cast(sum(coalesce(cast(cs_net_paid#40 as decimal(12,2)), 0.00))#60 as decimal(15,4))) AS currency_ratio#63] (211) Exchange -Input [3]: [item#60, return_ratio#61, currency_ratio#62] +Input [3]: [item#61, return_ratio#62, currency_ratio#63] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=29] (212) Sort -Input [3]: [item#60, return_ratio#61, currency_ratio#62] -Arguments: [return_ratio#61 ASC NULLS FIRST], false, 0 +Input [3]: [item#61, return_ratio#62, currency_ratio#63] +Arguments: [return_ratio#62 ASC NULLS FIRST], false, 0 (213) Window -Input [3]: [item#60, return_ratio#61, currency_ratio#62] -Arguments: [rank(return_ratio#61) windowspecdefinition(return_ratio#61 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#63], [return_ratio#61 ASC NULLS FIRST] +Input [3]: [item#61, return_ratio#62, currency_ratio#63] +Arguments: [rank(return_ratio#62) windowspecdefinition(return_ratio#62 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#64], [return_ratio#62 ASC NULLS FIRST] (214) Sort -Input [4]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63] -Arguments: [currency_ratio#62 ASC NULLS FIRST], false, 0 +Input [4]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64] +Arguments: [currency_ratio#63 ASC NULLS FIRST], false, 0 (215) Window -Input [4]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63] -Arguments: [rank(currency_ratio#62) windowspecdefinition(currency_ratio#62 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#64], [currency_ratio#62 ASC NULLS FIRST] +Input [4]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64] +Arguments: [rank(currency_ratio#63) windowspecdefinition(currency_ratio#63 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#65], [currency_ratio#63 ASC NULLS FIRST] (216) Filter -Input [5]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63, currency_rank#64] -Condition : ((return_rank#63 <= 10) OR (currency_rank#64 <= 10)) +Input [5]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64, currency_rank#65] +Condition : ((return_rank#64 <= 10) OR (currency_rank#65 <= 10)) (217) Project -Output [5]: [catalog AS channel#65, item#60, return_ratio#61, return_rank#63, currency_rank#64] -Input [5]: [item#60, return_ratio#61, currency_ratio#62, return_rank#63, currency_rank#64] +Output [5]: [catalog AS channel#66, item#61, return_ratio#62, return_rank#64, currency_rank#65] +Input [5]: [item#61, return_ratio#62, currency_ratio#63, return_rank#64, currency_rank#65] (218) Scan parquet -Output [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, ss_net_profit#71] +Output [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, ss_net_profit#72] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_net_profit), IsNotNull(ss_net_paid), IsNotNull(ss_quantity), GreaterThan(ss_net_profit,1.00), GreaterThan(ss_net_paid,0.00), GreaterThan(ss_quantity,0), IsNotNull(ss_ticket_number), IsNotNull(ss_item_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (219) Filter -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, ss_net_profit#71] -Condition : ((((((((isnotnull(ss_net_profit#71) AND isnotnull(ss_net_paid#70)) AND isnotnull(ss_quantity#69)) AND (ss_net_profit#71 > 1.00)) AND (ss_net_paid#70 > 0.00)) AND (ss_quantity#69 > 0)) AND isnotnull(ss_ticket_number#68)) AND isnotnull(ss_item_sk#67)) AND isnotnull(ss_sold_date_sk#66)) +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, ss_net_profit#72] +Condition : ((((((((isnotnull(ss_net_profit#72) AND isnotnull(ss_net_paid#71)) AND isnotnull(ss_quantity#70)) AND (ss_net_profit#72 > 1.00)) AND (ss_net_paid#71 > 0.00)) AND (ss_quantity#70 > 0)) AND isnotnull(ss_ticket_number#69)) AND isnotnull(ss_item_sk#68)) AND isnotnull(ss_sold_date_sk#67)) (220) Project -Output [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, ss_net_profit#71] +Output [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, ss_net_profit#72] (221) Exchange -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Arguments: hashpartitioning(ss_ticket_number#68, ss_item_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Arguments: hashpartitioning(ss_ticket_number#69, ss_item_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=30] (222) Sort -Input [5]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70] -Arguments: [ss_ticket_number#68 ASC NULLS FIRST, ss_item_sk#67 ASC NULLS FIRST], false, 0 +Input [5]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71] +Arguments: [ss_ticket_number#69 ASC NULLS FIRST, ss_item_sk#68 ASC NULLS FIRST], false, 0 (223) Scan parquet -Output [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] +Output [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(sr_return_amt), GreaterThan(sr_return_amt,10000.00), IsNotNull(sr_ticket_number), IsNotNull(sr_item_sk)] ReadSchema: struct (224) Filter -Input [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] -Condition : (((isnotnull(sr_return_amt#75) AND (sr_return_amt#75 > 10000.00)) AND isnotnull(sr_ticket_number#73)) AND isnotnull(sr_item_sk#72)) +Input [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] +Condition : (((isnotnull(sr_return_amt#76) AND (sr_return_amt#76 > 10000.00)) AND isnotnull(sr_ticket_number#74)) AND isnotnull(sr_item_sk#73)) (225) Exchange -Input [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] -Arguments: hashpartitioning(sr_ticket_number#73, sr_item_sk#72, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] +Arguments: hashpartitioning(sr_ticket_number#74, sr_item_sk#73, 100), ENSURE_REQUIREMENTS, [plan_id=31] (226) Sort -Input [4]: [sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] -Arguments: [sr_ticket_number#73 ASC NULLS FIRST, sr_item_sk#72 ASC NULLS FIRST], false, 0 +Input [4]: [sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] +Arguments: [sr_ticket_number#74 ASC NULLS FIRST, sr_item_sk#73 ASC NULLS FIRST], false, 0 (227) SortMergeJoin -Left keys [2]: [ss_ticket_number#68, ss_item_sk#67] -Right keys [2]: [sr_ticket_number#73, sr_item_sk#72] +Left keys [2]: [ss_ticket_number#69, ss_item_sk#68] +Right keys [2]: [sr_ticket_number#74, sr_item_sk#73] Join type: Inner Join condition: None (228) Project -Output [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Input [9]: [ss_sold_date_sk#66, ss_item_sk#67, ss_ticket_number#68, ss_quantity#69, ss_net_paid#70, sr_item_sk#72, sr_ticket_number#73, sr_return_quantity#74, sr_return_amt#75] +Output [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Input [9]: [ss_sold_date_sk#67, ss_item_sk#68, ss_ticket_number#69, ss_quantity#70, ss_net_paid#71, sr_item_sk#73, sr_ticket_number#74, sr_return_quantity#75, sr_return_amt#76] (229) Exchange -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Arguments: hashpartitioning(ss_sold_date_sk#66, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Arguments: hashpartitioning(ss_sold_date_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=32] (230) Sort -Input [6]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Arguments: [ss_sold_date_sk#66 ASC NULLS FIRST], false, 0 +Input [6]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Arguments: [ss_sold_date_sk#67 ASC NULLS FIRST], false, 0 (231) Scan parquet -Output [3]: [d_date_sk#76, d_year#111, d_moy#112] +Output [3]: [d_date_sk#77, d_year#112, d_moy#113] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,12), IsNotNull(d_date_sk)] ReadSchema: struct (232) Filter -Input [3]: [d_date_sk#76, d_year#111, d_moy#112] -Condition : ((((isnotnull(d_year#111) AND isnotnull(d_moy#112)) AND (d_year#111 = 2001)) AND (d_moy#112 = 12)) AND isnotnull(d_date_sk#76)) +Input [3]: [d_date_sk#77, d_year#112, d_moy#113] +Condition : ((((isnotnull(d_year#112) AND isnotnull(d_moy#113)) AND (d_year#112 = 2001)) AND (d_moy#113 = 12)) AND isnotnull(d_date_sk#77)) (233) Project -Output [1]: [d_date_sk#76] -Input [3]: [d_date_sk#76, d_year#111, d_moy#112] +Output [1]: [d_date_sk#77] +Input [3]: [d_date_sk#77, d_year#112, d_moy#113] (234) Exchange -Input [1]: [d_date_sk#76] -Arguments: hashpartitioning(d_date_sk#76, 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [1]: [d_date_sk#77] +Arguments: hashpartitioning(d_date_sk#77, 100), ENSURE_REQUIREMENTS, [plan_id=33] (235) Sort -Input [1]: [d_date_sk#76] -Arguments: [d_date_sk#76 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#77] +Arguments: [d_date_sk#77 ASC NULLS FIRST], false, 0 (236) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#66] -Right keys [1]: [d_date_sk#76] +Left keys [1]: [ss_sold_date_sk#67] +Right keys [1]: [d_date_sk#77] Join type: Inner Join condition: None (237) Project -Output [5]: [ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Input [7]: [ss_sold_date_sk#66, ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75, d_date_sk#76] +Output [5]: [ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Input [7]: [ss_sold_date_sk#67, ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76, d_date_sk#77] (238) HashAggregate -Input [5]: [ss_item_sk#67, ss_quantity#69, ss_net_paid#70, sr_return_quantity#74, sr_return_amt#75] -Keys [1]: [ss_item_sk#67] -Functions [4]: [partial_sum(coalesce(sr_return_quantity#74, 0)), partial_sum(coalesce(ss_quantity#69, 0)), partial_sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00)), partial_sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))] -Aggregate Attributes [6]: [sum#81, sum#82, sum#83, isEmpty#84, sum#85, isEmpty#86] -Results [7]: [ss_item_sk#67, sum#113, sum#114, sum#115, isEmpty#116, sum#117, isEmpty#118] +Input [5]: [ss_item_sk#68, ss_quantity#70, ss_net_paid#71, sr_return_quantity#75, sr_return_amt#76] +Keys [1]: [ss_item_sk#68] +Functions [4]: [partial_sum(coalesce(sr_return_quantity#75, 0)), partial_sum(coalesce(ss_quantity#70, 0)), partial_sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00)), partial_sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))] +Aggregate Attributes [6]: [sum#82, sum#83, sum#84, isEmpty#85, sum#86, isEmpty#87] +Results [7]: [ss_item_sk#68, sum#114, sum#115, sum#116, isEmpty#117, sum#118, isEmpty#119] (239) Exchange -Input [7]: [ss_item_sk#67, sum#113, sum#114, sum#115, isEmpty#116, sum#117, isEmpty#118] -Arguments: hashpartitioning(ss_item_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [7]: [ss_item_sk#68, sum#114, sum#115, sum#116, isEmpty#117, sum#118, isEmpty#119] +Arguments: hashpartitioning(ss_item_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=34] (240) HashAggregate -Input [7]: [ss_item_sk#67, sum#113, sum#114, sum#115, isEmpty#116, sum#117, isEmpty#118] -Keys [1]: [ss_item_sk#67] -Functions [4]: [sum(coalesce(sr_return_quantity#74, 0)), sum(coalesce(ss_quantity#69, 0)), sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00)), sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))] -Aggregate Attributes [4]: [sum(coalesce(sr_return_quantity#74, 0))#87, sum(coalesce(ss_quantity#69, 0))#88, sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89, sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90] -Results [3]: [ss_item_sk#67 AS item#91, (cast(sum(coalesce(sr_return_quantity#74, 0))#87 as decimal(15,4)) / cast(sum(coalesce(ss_quantity#69, 0))#88 as decimal(15,4))) AS return_ratio#92, (cast(sum(coalesce(cast(sr_return_amt#75 as decimal(12,2)), 0.00))#89 as decimal(15,4)) / cast(sum(coalesce(cast(ss_net_paid#70 as decimal(12,2)), 0.00))#90 as decimal(15,4))) AS currency_ratio#93] +Input [7]: [ss_item_sk#68, sum#114, sum#115, sum#116, isEmpty#117, sum#118, isEmpty#119] +Keys [1]: [ss_item_sk#68] +Functions [4]: [sum(coalesce(sr_return_quantity#75, 0)), sum(coalesce(ss_quantity#70, 0)), sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00)), sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))] +Aggregate Attributes [4]: [sum(coalesce(sr_return_quantity#75, 0))#88, sum(coalesce(ss_quantity#70, 0))#89, sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90, sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91] +Results [3]: [ss_item_sk#68 AS item#92, (cast(sum(coalesce(sr_return_quantity#75, 0))#88 as decimal(15,4)) / cast(sum(coalesce(ss_quantity#70, 0))#89 as decimal(15,4))) AS return_ratio#93, (cast(sum(coalesce(cast(sr_return_amt#76 as decimal(12,2)), 0.00))#90 as decimal(15,4)) / cast(sum(coalesce(cast(ss_net_paid#71 as decimal(12,2)), 0.00))#91 as decimal(15,4))) AS currency_ratio#94] (241) Exchange -Input [3]: [item#91, return_ratio#92, currency_ratio#93] +Input [3]: [item#92, return_ratio#93, currency_ratio#94] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=35] (242) Sort -Input [3]: [item#91, return_ratio#92, currency_ratio#93] -Arguments: [return_ratio#92 ASC NULLS FIRST], false, 0 +Input [3]: [item#92, return_ratio#93, currency_ratio#94] +Arguments: [return_ratio#93 ASC NULLS FIRST], false, 0 (243) Window -Input [3]: [item#91, return_ratio#92, currency_ratio#93] -Arguments: [rank(return_ratio#92) windowspecdefinition(return_ratio#92 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#94], [return_ratio#92 ASC NULLS FIRST] +Input [3]: [item#92, return_ratio#93, currency_ratio#94] +Arguments: [rank(return_ratio#93) windowspecdefinition(return_ratio#93 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS return_rank#95], [return_ratio#93 ASC NULLS FIRST] (244) Sort -Input [4]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94] -Arguments: [currency_ratio#93 ASC NULLS FIRST], false, 0 +Input [4]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95] +Arguments: [currency_ratio#94 ASC NULLS FIRST], false, 0 (245) Window -Input [4]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94] -Arguments: [rank(currency_ratio#93) windowspecdefinition(currency_ratio#93 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#95], [currency_ratio#93 ASC NULLS FIRST] +Input [4]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95] +Arguments: [rank(currency_ratio#94) windowspecdefinition(currency_ratio#94 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS currency_rank#96], [currency_ratio#94 ASC NULLS FIRST] (246) Filter -Input [5]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94, currency_rank#95] -Condition : ((return_rank#94 <= 10) OR (currency_rank#95 <= 10)) +Input [5]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95, currency_rank#96] +Condition : ((return_rank#95 <= 10) OR (currency_rank#96 <= 10)) (247) Project -Output [5]: [store AS channel#96, item#91, return_ratio#92, return_rank#94, currency_rank#95] -Input [5]: [item#91, return_ratio#92, currency_ratio#93, return_rank#94, currency_rank#95] +Output [5]: [store AS channel#97, item#92, return_ratio#93, return_rank#95, currency_rank#96] +Input [5]: [item#92, return_ratio#93, currency_ratio#94, return_rank#95, currency_rank#96] (248) Union (249) HashAggregate -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Keys [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Keys [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Functions: [] Aggregate Attributes: [] -Results [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Results [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (250) Exchange -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Arguments: hashpartitioning(channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33, 100), ENSURE_REQUIREMENTS, [plan_id=36] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Arguments: hashpartitioning(channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34, 100), ENSURE_REQUIREMENTS, [plan_id=36] (251) HashAggregate -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Keys [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Keys [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Functions: [] Aggregate Attributes: [] -Results [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Results [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (252) TakeOrderedAndProject -Input [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] -Arguments: X, [channel#34 ASC NULLS FIRST, return_rank#32 ASC NULLS FIRST, currency_rank#33 ASC NULLS FIRST, item#29 ASC NULLS FIRST], [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Input [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] +Arguments: X, [channel#35 ASC NULLS FIRST, return_rank#33 ASC NULLS FIRST, currency_rank#34 ASC NULLS FIRST, item#30 ASC NULLS FIRST], [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] (253) AdaptiveSparkPlan -Output [5]: [channel#34, item#29, return_ratio#30, return_rank#32, currency_rank#33] +Output [5]: [channel#35, item#30, return_ratio#31, return_rank#33, currency_rank#34] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q5.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q5.txt index 024708d43..12e94f133 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q5.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q5.txt @@ -448,25 +448,25 @@ Input [5]: [s_store_id#24, _c1#25, _c2#26, _c3#27, _c4#28] Keys [1]: [s_store_id#24] Functions [4]: [partial_sum(_c1#25), partial_sum(_c2#26), partial_sum(_c3#27), partial_sum(_c4#28)] Aggregate Attributes [4]: [sum#29, sum#30, sum#31, sum#32] -Results [2]: [s_store_id#24, #33#33] +Results [5]: [s_store_id#24, #33, #33, #33, #33] (44) NativeShuffleExchange -Input [2]: [s_store_id#24, #33#33] +Input [5]: [s_store_id#24, #33, #33, #33, #33] Arguments: hashpartitioning(s_store_id#24, 100), ENSURE_REQUIREMENTS, [plan_id=5] (45) ShuffleQueryStage -Output [2]: [s_store_id#24, #33#33] +Output [5]: [s_store_id#24, #33, #33, #33, #33] Arguments: X (46) AQEShuffleRead -Input [2]: [s_store_id#24, #33#33] +Input [5]: [s_store_id#24, #33, #33, #33, #33] Arguments: coalesced (47) InputAdapter -Input [2]: [s_store_id#24, #33#33] +Input [5]: [s_store_id#24, #33, #33, #33, #33] (48) NativeHashAggregate -Input [2]: [s_store_id#24, #33#33] +Input [5]: [s_store_id#24, #33, #33, #33, #33] Keys [1]: [s_store_id#24] Functions [4]: [sum(UnscaledValue(sales_price#7)), sum(UnscaledValue(return_amt#9)), sum(UnscaledValue(profit#8)), sum(UnscaledValue(net_loss#10))] Aggregate Attributes [4]: [sum(UnscaledValue(sales_price#7))#34, sum(UnscaledValue(return_amt#9))#35, sum(UnscaledValue(profit#8))#36, sum(UnscaledValue(net_loss#10))#37] @@ -644,25 +644,25 @@ Input [5]: [cp_catalog_page_id#65, _c1#66, _c2#67, _c3#68, _c4#69] Keys [1]: [cp_catalog_page_id#65] Functions [4]: [partial_sum(_c1#66), partial_sum(_c2#67), partial_sum(_c3#68), partial_sum(_c4#69)] Aggregate Attributes [4]: [sum#70, sum#71, sum#72, sum#73] -Results [2]: [cp_catalog_page_id#65, #33#33] +Results [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] (90) NativeShuffleExchange -Input [2]: [cp_catalog_page_id#65, #33#33] +Input [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] Arguments: hashpartitioning(cp_catalog_page_id#65, 100), ENSURE_REQUIREMENTS, [plan_id=9] (91) ShuffleQueryStage -Output [2]: [cp_catalog_page_id#65, #33#33] +Output [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] Arguments: X (92) AQEShuffleRead -Input [2]: [cp_catalog_page_id#65, #33#33] +Input [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] Arguments: coalesced (93) InputAdapter -Input [2]: [cp_catalog_page_id#65, #33#33] +Input [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] (94) NativeHashAggregate -Input [2]: [cp_catalog_page_id#65, #33#33] +Input [5]: [cp_catalog_page_id#65, #33, #33, #33, #33] Keys [1]: [cp_catalog_page_id#65] Functions [4]: [sum(UnscaledValue(sales_price#49)), sum(UnscaledValue(return_amt#51)), sum(UnscaledValue(profit#50)), sum(UnscaledValue(net_loss#52))] Aggregate Attributes [4]: [sum(UnscaledValue(sales_price#49))#74, sum(UnscaledValue(return_amt#51))#75, sum(UnscaledValue(profit#50))#76, sum(UnscaledValue(net_loss#52))#77] @@ -899,25 +899,25 @@ Input [5]: [web_site_id#109, _c1#110, _c2#111, _c3#112, _c4#113] Keys [1]: [web_site_id#109] Functions [4]: [partial_sum(_c1#110), partial_sum(_c2#111), partial_sum(_c3#112), partial_sum(_c4#113)] Aggregate Attributes [4]: [sum#114, sum#115, sum#116, sum#117] -Results [2]: [web_site_id#109, #33#33] +Results [5]: [web_site_id#109, #33, #33, #33, #33] (150) NativeShuffleExchange -Input [2]: [web_site_id#109, #33#33] +Input [5]: [web_site_id#109, #33, #33, #33, #33] Arguments: hashpartitioning(web_site_id#109, 100), ENSURE_REQUIREMENTS, [plan_id=15] (151) ShuffleQueryStage -Output [2]: [web_site_id#109, #33#33] +Output [5]: [web_site_id#109, #33, #33, #33, #33] Arguments: X (152) AQEShuffleRead -Input [2]: [web_site_id#109, #33#33] +Input [5]: [web_site_id#109, #33, #33, #33, #33] Arguments: coalesced (153) InputAdapter -Input [2]: [web_site_id#109, #33#33] +Input [5]: [web_site_id#109, #33, #33, #33, #33] (154) NativeHashAggregate -Input [2]: [web_site_id#109, #33#33] +Input [5]: [web_site_id#109, #33, #33, #33, #33] Keys [1]: [web_site_id#109] Functions [4]: [sum(UnscaledValue(sales_price#89)), sum(UnscaledValue(return_amt#91)), sum(UnscaledValue(profit#90)), sum(UnscaledValue(net_loss#92))] Aggregate Attributes [4]: [sum(UnscaledValue(sales_price#89))#118, sum(UnscaledValue(return_amt#91))#119, sum(UnscaledValue(profit#90))#120, sum(UnscaledValue(net_loss#92))#121] @@ -943,25 +943,25 @@ Input [6]: [sales#38, returns#39, profit#40, channel#127, id#128, spark_grouping Keys [3]: [channel#127, id#128, spark_grouping_id#129] Functions [3]: [partial_sum(sales#38), partial_sum(returns#39), partial_sum(profit#40)] Aggregate Attributes [6]: [sum#130, isEmpty#131, sum#132, isEmpty#133, sum#134, isEmpty#135] -Results [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Results [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] (160) NativeShuffleExchange -Input [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Input [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] Arguments: hashpartitioning(channel#127, id#128, spark_grouping_id#129, 100), ENSURE_REQUIREMENTS, [plan_id=16] (161) ShuffleQueryStage -Output [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Output [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] Arguments: X (162) AQEShuffleRead -Input [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Input [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] Arguments: coalesced (163) InputAdapter -Input [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Input [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] (164) NativeHashAggregate -Input [4]: [channel#127, id#128, spark_grouping_id#129, #33#33] +Input [6]: [channel#127, id#128, spark_grouping_id#129, #64, #64, #64] Keys [3]: [channel#127, id#128, spark_grouping_id#129] Functions [3]: [sum(sales#38), sum(returns#39), sum(profit#40)] Aggregate Attributes [3]: [sum(sales#38)#136, sum(returns#39)#137, sum(profit#40)#138] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q50.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q50.txt index b1d712f97..2e1a60582 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q50.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q50.txt @@ -396,25 +396,25 @@ Input [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name Keys [10]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20] Functions [5]: [partial_sum(_c10#25), partial_sum(_c11#26), partial_sum(_c12#27), partial_sum(_c13#28), partial_sum(_c14#29)] Aggregate Attributes [5]: [sum#30, sum#31, sum#32, sum#33, sum#34] -Results [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Results [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] (67) NativeShuffleExchange -Input [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Input [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] Arguments: hashpartitioning(s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, 100), ENSURE_REQUIREMENTS, [plan_id=9] (68) ShuffleQueryStage -Output [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Output [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] Arguments: X (69) AQEShuffleRead -Input [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Input [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] Arguments: coalesced (70) InputAdapter -Input [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Input [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] (71) NativeHashAggregate -Input [11]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35#35] +Input [15]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20, #35, #35, #35, #35, #35] Keys [10]: [s_store_name#11, s_company_id#12, s_street_number#13, s_street_name#14, s_street_type#15, s_suite_number#16, s_city#17, s_county#18, s_state#19, s_zip#20] Functions [5]: [sum(CASE WHEN ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END), sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 30) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END), sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 60) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END), sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 90) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END), sum(CASE WHEN ((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)] Aggregate Attributes [5]: [sum(CASE WHEN ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END)#36, sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 30) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END)#37, sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 60) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END)#38, sum(CASE WHEN (((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 90) AND ((sr_returned_date_sk#6 - ss_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END)#39, sum(CASE WHEN ((sr_returned_date_sk#6 - ss_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)#40] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt index 9f404f29e..c5c77f480 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt @@ -229,25 +229,25 @@ Input [3]: [ws_item_sk#2, d_date#5, _c2#7] Keys [2]: [ws_item_sk#2, d_date#5] Functions [1]: [partial_sum(_c2#7)] Aggregate Attributes [1]: [sum#8] -Results [3]: [ws_item_sk#2, d_date#5, #9#9] +Results [3]: [ws_item_sk#2, d_date#5, #9] (22) NativeShuffleExchange -Input [3]: [ws_item_sk#2, d_date#5, #9#9] +Input [3]: [ws_item_sk#2, d_date#5, #9] Arguments: hashpartitioning(ws_item_sk#2, d_date#5, 100), ENSURE_REQUIREMENTS, [plan_id=3] (23) ShuffleQueryStage -Output [3]: [ws_item_sk#2, d_date#5, #9#9] +Output [3]: [ws_item_sk#2, d_date#5, #9] Arguments: X (24) AQEShuffleRead -Input [3]: [ws_item_sk#2, d_date#5, #9#9] +Input [3]: [ws_item_sk#2, d_date#5, #9] Arguments: coalesced (25) InputAdapter -Input [3]: [ws_item_sk#2, d_date#5, #9#9] +Input [3]: [ws_item_sk#2, d_date#5, #9] (26) NativeHashAggregate -Input [3]: [ws_item_sk#2, d_date#5, #9#9] +Input [3]: [ws_item_sk#2, d_date#5, #9] Keys [2]: [ws_item_sk#2, d_date#5] Functions [1]: [sum(UnscaledValue(ws_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_sales_price#3))#10] @@ -381,25 +381,25 @@ Input [3]: [ss_item_sk#15, d_date#18, _c2#19] Keys [2]: [ss_item_sk#15, d_date#18] Functions [1]: [partial_sum(_c2#19)] Aggregate Attributes [1]: [sum#20] -Results [3]: [ss_item_sk#15, d_date#18, #9#9] +Results [3]: [ss_item_sk#15, d_date#18, #9] (59) NativeShuffleExchange -Input [3]: [ss_item_sk#15, d_date#18, #9#9] +Input [3]: [ss_item_sk#15, d_date#18, #9] Arguments: hashpartitioning(ss_item_sk#15, d_date#18, 100), ENSURE_REQUIREMENTS, [plan_id=7] (60) ShuffleQueryStage -Output [3]: [ss_item_sk#15, d_date#18, #9#9] +Output [3]: [ss_item_sk#15, d_date#18, #9] Arguments: X (61) AQEShuffleRead -Input [3]: [ss_item_sk#15, d_date#18, #9#9] +Input [3]: [ss_item_sk#15, d_date#18, #9] Arguments: coalesced (62) InputAdapter -Input [3]: [ss_item_sk#15, d_date#18, #9#9] +Input [3]: [ss_item_sk#15, d_date#18, #9] (63) NativeHashAggregate -Input [3]: [ss_item_sk#15, d_date#18, #9#9] +Input [3]: [ss_item_sk#15, d_date#18, #9] Keys [2]: [ss_item_sk#15, d_date#18] Functions [1]: [sum(UnscaledValue(ss_sales_price#16))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#16))#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q52.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q52.txt index 1f78f8291..2e5625ad6 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q52.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q52.txt @@ -230,25 +230,25 @@ Input [4]: [d_year#2, i_brand#9, i_brand_id#8, _c3#11] Keys [3]: [d_year#2, i_brand#9, i_brand_id#8] Functions [1]: [partial_sum(_c3#11)] Aggregate Attributes [1]: [sum#12] -Results [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Results [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] (38) NativeShuffleExchange -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: hashpartitioning(d_year#2, i_brand#9, i_brand_id#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Output [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: X (40) AQEShuffleRead -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Arguments: coalesced (41) InputAdapter -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] (42) NativeHashAggregate -Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13#13] +Input [4]: [d_year#2, i_brand#9, i_brand_id#8, #13] Keys [3]: [d_year#2, i_brand#9, i_brand_id#8] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#6))#14] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt index 1143f107b..8472f3c0c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt @@ -329,25 +329,25 @@ Input [3]: [i_manufact_id#5, d_qoy#16, _c2#18] Keys [2]: [i_manufact_id#5, d_qoy#16] Functions [1]: [partial_sum(_c2#18)] Aggregate Attributes [1]: [sum#19] -Results [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Results [3]: [i_manufact_id#5, d_qoy#16, #20] (53) NativeShuffleExchange -Input [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Input [3]: [i_manufact_id#5, d_qoy#16, #20] Arguments: hashpartitioning(i_manufact_id#5, d_qoy#16, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Output [3]: [i_manufact_id#5, d_qoy#16, #20] Arguments: X (55) AQEShuffleRead -Input [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Input [3]: [i_manufact_id#5, d_qoy#16, #20] Arguments: coalesced (56) InputAdapter -Input [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Input [3]: [i_manufact_id#5, d_qoy#16, #20] (57) NativeHashAggregate -Input [3]: [i_manufact_id#5, d_qoy#16, #20#20] +Input [3]: [i_manufact_id#5, d_qoy#16, #20] Keys [2]: [i_manufact_id#5, d_qoy#16] Functions [1]: [sum(UnscaledValue(ss_sales_price#13))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#13))#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q54.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q54.txt index 82b5d3633..4f02333fe 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q54.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q54.txt @@ -457,321 +457,321 @@ Input [2]: [c_customer_sk#19, c_current_addr_sk#20] Keys [2]: [c_customer_sk#19, c_current_addr_sk#20] Functions: [] Aggregate Attributes: [] -Results [3]: [c_customer_sk#19, c_current_addr_sk#20, #21#21] +Results [2]: [c_customer_sk#19, c_current_addr_sk#20] (59) NativeHashAggregate -Input [3]: [c_customer_sk#19, c_current_addr_sk#20, #21#21] +Input [2]: [c_customer_sk#19, c_current_addr_sk#20] Keys [2]: [c_customer_sk#19, c_current_addr_sk#20] Functions: [] Aggregate Attributes: [] -Results [3]: [c_customer_sk#19, c_current_addr_sk#20, #21#21] +Results [2]: [c_customer_sk#19, c_current_addr_sk#20] (60) NativeProject Output [2]: [c_customer_sk#19, c_current_addr_sk#20] -Input [3]: [c_customer_sk#19, c_current_addr_sk#20, #21#21] +Input [2]: [c_customer_sk#19, c_current_addr_sk#20] (61) NativeSort Input [2]: [c_customer_sk#19, c_current_addr_sk#20] Arguments: [c_customer_sk#19 ASC NULLS FIRST], false (169) Scan parquet -Output [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] +Output [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (63) InputAdapter -Input [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] -Arguments: [#22, #23, #24] +Input [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] +Arguments: [#21, #22, #23] (64) NativeFilter -Input [3]: [#22#22, #23#23, #24#24] -Condition : (isnotnull(ss_customer_sk#23) AND isnotnull(ss_sold_date_sk#22)) +Input [3]: [#21#21, #22#22, #23#23] +Condition : (isnotnull(ss_customer_sk#22) AND isnotnull(ss_sold_date_sk#21)) (65) NativeShuffleExchange -Input [3]: [#22#22, #23#23, #24#24] -Arguments: hashpartitioning(ss_customer_sk#23, 100), ENSURE_REQUIREMENTS, [plan_id=7] +Input [3]: [#21#21, #22#22, #23#23] +Arguments: hashpartitioning(ss_customer_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=7] (66) ShuffleQueryStage -Output [3]: [#22#22, #23#23, #24#24] +Output [3]: [#21#21, #22#22, #23#23] Arguments: X (67) AQEShuffleRead -Input [3]: [#22#22, #23#23, #24#24] +Input [3]: [#21#21, #22#22, #23#23] Arguments: coalesced (68) InputAdapter -Input [3]: [#22#22, #23#23, #24#24] +Input [3]: [#21#21, #22#22, #23#23] (69) NativeSort -Input [3]: [#22#22, #23#23, #24#24] -Arguments: [ss_customer_sk#23 ASC NULLS FIRST], false +Input [3]: [#21#21, #22#22, #23#23] +Arguments: [ss_customer_sk#22 ASC NULLS FIRST], false (70) NativeSortMergeJoin Left keys [1]: [c_customer_sk#19] -Right keys [1]: [ss_customer_sk#23] +Right keys [1]: [ss_customer_sk#22] Join type: Inner Join condition: None (71) NativeProject -Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] -Input [5]: [c_customer_sk#19, c_current_addr_sk#20, #22#22, #23#23, #24#24] +Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] +Input [5]: [c_customer_sk#19, c_current_addr_sk#20, #21#21, #22#22, #23#23] (72) NativeShuffleExchange -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: hashpartitioning(c_current_addr_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=8] (73) ShuffleQueryStage -Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: X (74) AQEShuffleRead -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: coalesced (75) InputAdapter -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] (76) NativeSort -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: [c_current_addr_sk#20 ASC NULLS FIRST], false (177) Scan parquet -Output [3]: [ca_address_sk#25, ca_county#26, ca_state#27] +Output [3]: [ca_address_sk#24, ca_county#25, ca_state#26] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk), IsNotNull(ca_county), IsNotNull(ca_state)] ReadSchema: struct (78) InputAdapter -Input [3]: [ca_address_sk#25, ca_county#26, ca_state#27] -Arguments: [#25, #26, #27] +Input [3]: [ca_address_sk#24, ca_county#25, ca_state#26] +Arguments: [#24, #25, #26] (79) NativeFilter -Input [3]: [#25#25, #26#26, #27#27] -Condition : ((isnotnull(ca_address_sk#25) AND isnotnull(ca_county#26)) AND isnotnull(ca_state#27)) +Input [3]: [#24#24, #25#25, #26#26] +Condition : ((isnotnull(ca_address_sk#24) AND isnotnull(ca_county#25)) AND isnotnull(ca_state#26)) (80) NativeShuffleExchange -Input [3]: [#25#25, #26#26, #27#27] -Arguments: hashpartitioning(ca_address_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [3]: [#24#24, #25#25, #26#26] +Arguments: hashpartitioning(ca_address_sk#24, 100), ENSURE_REQUIREMENTS, [plan_id=9] (81) ShuffleQueryStage -Output [3]: [#25#25, #26#26, #27#27] +Output [3]: [#24#24, #25#25, #26#26] Arguments: X (82) AQEShuffleRead -Input [3]: [#25#25, #26#26, #27#27] +Input [3]: [#24#24, #25#25, #26#26] Arguments: coalesced (83) InputAdapter -Input [3]: [#25#25, #26#26, #27#27] +Input [3]: [#24#24, #25#25, #26#26] (84) NativeSort -Input [3]: [#25#25, #26#26, #27#27] -Arguments: [ca_address_sk#25 ASC NULLS FIRST], false +Input [3]: [#24#24, #25#25, #26#26] +Arguments: [ca_address_sk#24 ASC NULLS FIRST], false (85) NativeSortMergeJoin Left keys [1]: [c_current_addr_sk#20] -Right keys [1]: [ca_address_sk#25] +Right keys [1]: [ca_address_sk#24] Join type: Inner Join condition: None (86) NativeProject -Output [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Input [7]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24, #25#25, #26#26, #27#27] +Output [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Input [7]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23, #24#24, #25#25, #26#26] (87) NativeShuffleExchange -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Arguments: hashpartitioning(ca_county#26, ca_state#27, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Arguments: hashpartitioning(ca_county#25, ca_state#26, 100), ENSURE_REQUIREMENTS, [plan_id=10] (88) ShuffleQueryStage -Output [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] +Output [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] Arguments: X (89) AQEShuffleRead -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] Arguments: coalesced (90) InputAdapter -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] (91) NativeSort -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Arguments: [ca_county#26 ASC NULLS FIRST, ca_state#27 ASC NULLS FIRST], false +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Arguments: [ca_county#25 ASC NULLS FIRST, ca_state#26 ASC NULLS FIRST], false (185) Scan parquet -Output [2]: [s_county#28, s_state#29] +Output [2]: [s_county#27, s_state#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_county), IsNotNull(s_state)] ReadSchema: struct (93) InputAdapter -Input [2]: [s_county#28, s_state#29] -Arguments: [#28, #29] +Input [2]: [s_county#27, s_state#28] +Arguments: [#27, #28] (94) NativeFilter -Input [2]: [#28#28, #29#29] -Condition : (isnotnull(s_county#28) AND isnotnull(s_state#29)) +Input [2]: [#27#27, #28#28] +Condition : (isnotnull(s_county#27) AND isnotnull(s_state#28)) (95) NativeShuffleExchange -Input [2]: [#28#28, #29#29] -Arguments: hashpartitioning(s_county#28, s_state#29, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [2]: [#27#27, #28#28] +Arguments: hashpartitioning(s_county#27, s_state#28, 100), ENSURE_REQUIREMENTS, [plan_id=11] (96) ShuffleQueryStage -Output [2]: [#28#28, #29#29] +Output [2]: [#27#27, #28#28] Arguments: X (97) AQEShuffleRead -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] Arguments: coalesced (98) InputAdapter -Input [2]: [#28#28, #29#29] +Input [2]: [#27#27, #28#28] (99) NativeSort -Input [2]: [#28#28, #29#29] -Arguments: [s_county#28 ASC NULLS FIRST, s_state#29 ASC NULLS FIRST], false +Input [2]: [#27#27, #28#28] +Arguments: [s_county#27 ASC NULLS FIRST, s_state#28 ASC NULLS FIRST], false (100) NativeSortMergeJoin -Left keys [2]: [ca_county#26, ca_state#27] -Right keys [2]: [s_county#28, s_state#29] +Left keys [2]: [ca_county#25, ca_state#26] +Right keys [2]: [s_county#27, s_state#28] Join type: Inner Join condition: None (101) NativeProject -Output [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Input [7]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27, #28#28, #29#29] +Output [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Input [7]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26, #27#27, #28#28] (102) NativeShuffleExchange -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Arguments: hashpartitioning(ss_sold_date_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Arguments: hashpartitioning(ss_sold_date_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=12] (103) ShuffleQueryStage -Output [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] +Output [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: X (104) AQEShuffleRead -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: coalesced (105) InputAdapter -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] (106) NativeSort -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Arguments: [ss_sold_date_sk#22 ASC NULLS FIRST], false +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Arguments: [ss_sold_date_sk#21 ASC NULLS FIRST], false (193) Scan parquet -Output [2]: [d_date_sk#30, d_month_seq#31] +Output [2]: [d_date_sk#29, d_month_seq#30] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), IsNotNull(d_date_sk)] ReadSchema: struct (108) InputAdapter -Input [2]: [d_date_sk#30, d_month_seq#31] -Arguments: [#30, #31] +Input [2]: [d_date_sk#29, d_month_seq#30] +Arguments: [#29, #30] (109) NativeFilter -Input [2]: [#30#30, #31#31] -Condition : (((isnotnull(d_month_seq#31) AND (d_month_seq#31 >= Subquery subquery#32, [id=#33])) AND (d_month_seq#31 <= Subquery subquery#34, [id=#35])) AND isnotnull(d_date_sk#30)) +Input [2]: [#29#29, #30#30] +Condition : (((isnotnull(d_month_seq#30) AND (d_month_seq#30 >= Subquery subquery#31, [id=#32])) AND (d_month_seq#30 <= Subquery subquery#33, [id=#34])) AND isnotnull(d_date_sk#29)) (110) NativeProject -Output [1]: [d_date_sk#30] -Input [2]: [#30#30, #31#31] +Output [1]: [d_date_sk#29] +Input [2]: [#29#29, #30#30] (111) NativeShuffleExchange -Input [1]: [d_date_sk#30] -Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [1]: [d_date_sk#29] +Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=13] (112) ShuffleQueryStage -Output [1]: [d_date_sk#30] +Output [1]: [d_date_sk#29] Arguments: X (113) AQEShuffleRead -Input [1]: [d_date_sk#30] +Input [1]: [d_date_sk#29] Arguments: coalesced (114) InputAdapter -Input [1]: [d_date_sk#30] +Input [1]: [d_date_sk#29] (115) NativeSort -Input [1]: [d_date_sk#30] -Arguments: [d_date_sk#30 ASC NULLS FIRST], false +Input [1]: [d_date_sk#29] +Arguments: [d_date_sk#29 ASC NULLS FIRST], false (116) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#22] -Right keys [1]: [d_date_sk#30] +Left keys [1]: [ss_sold_date_sk#21] +Right keys [1]: [d_date_sk#29] Join type: Inner Join condition: None (117) NativeProject -Output [2]: [c_customer_sk#19, ss_ext_sales_price#24] -Input [4]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, d_date_sk#30] +Output [2]: [c_customer_sk#19, ss_ext_sales_price#23] +Input [4]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, d_date_sk#29] (118) NativeProject -Output [2]: [c_customer_sk#19 AS c_customer_sk#19, UnscaledValue(ss_ext_sales_price#24) AS _c1#36] -Input [2]: [c_customer_sk#19, ss_ext_sales_price#24] +Output [2]: [c_customer_sk#19 AS c_customer_sk#19, UnscaledValue(ss_ext_sales_price#23) AS _c1#35] +Input [2]: [c_customer_sk#19, ss_ext_sales_price#23] (119) NativeHashAggregate -Input [2]: [c_customer_sk#19, _c1#36] +Input [2]: [c_customer_sk#19, _c1#35] Keys [1]: [c_customer_sk#19] -Functions [1]: [partial_sum(_c1#36)] -Aggregate Attributes [1]: [sum#37] -Results [2]: [c_customer_sk#19, #21#21] +Functions [1]: [partial_sum(_c1#35)] +Aggregate Attributes [1]: [sum#36] +Results [2]: [c_customer_sk#19, #37] (120) NativeShuffleExchange -Input [2]: [c_customer_sk#19, #21#21] +Input [2]: [c_customer_sk#19, #37] Arguments: hashpartitioning(c_customer_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=14] (121) ShuffleQueryStage -Output [2]: [c_customer_sk#19, #21#21] +Output [2]: [c_customer_sk#19, #37] Arguments: X (122) AQEShuffleRead -Input [2]: [c_customer_sk#19, #21#21] +Input [2]: [c_customer_sk#19, #37] Arguments: coalesced (123) InputAdapter -Input [2]: [c_customer_sk#19, #21#21] +Input [2]: [c_customer_sk#19, #37] (124) NativeHashAggregate -Input [2]: [c_customer_sk#19, #21#21] +Input [2]: [c_customer_sk#19, #37] Keys [1]: [c_customer_sk#19] -Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#24))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#24))#38] -Results [2]: [c_customer_sk#19, sum(UnscaledValue(ss_ext_sales_price#24))#38] +Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#23))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#23))#38] +Results [2]: [c_customer_sk#19, sum(UnscaledValue(ss_ext_sales_price#23))#38] (125) NativeProject -Output [1]: [cast((MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#24))#38,17,2) / 50) as int) AS segment#39] -Input [2]: [c_customer_sk#19, sum(UnscaledValue(ss_ext_sales_price#24))#38] +Output [1]: [cast((MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#23))#38,17,2) / 50) as int) AS segment#39] +Input [2]: [c_customer_sk#19, sum(UnscaledValue(ss_ext_sales_price#23))#38] (126) NativeHashAggregate Input [1]: [segment#39] Keys [1]: [segment#39] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#40] -Results [2]: [segment#39, #21#21] +Results [2]: [segment#39, #37] (127) NativeShuffleExchange -Input [2]: [segment#39, #21#21] +Input [2]: [segment#39, #37] Arguments: hashpartitioning(segment#39, 100), ENSURE_REQUIREMENTS, [plan_id=15] (128) ShuffleQueryStage -Output [2]: [segment#39, #21#21] +Output [2]: [segment#39, #37] Arguments: X (129) AQEShuffleRead -Input [2]: [segment#39, #21#21] +Input [2]: [segment#39, #37] Arguments: coalesced (130) InputAdapter -Input [2]: [segment#39, #21#21] +Input [2]: [segment#39, #37] (131) NativeHashAggregate -Input [2]: [segment#39, #21#21] +Input [2]: [segment#39, #37] Keys [1]: [segment#39] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#41] @@ -951,154 +951,154 @@ Input [2]: [c_customer_sk#19, c_current_addr_sk#20] Arguments: [c_customer_sk#19 ASC NULLS FIRST], false, 0 (169) Scan parquet -Output [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] +Output [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_customer_sk), IsNotNull(ss_sold_date_sk)] ReadSchema: struct (170) Filter -Input [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] -Condition : (isnotnull(ss_customer_sk#23) AND isnotnull(ss_sold_date_sk#22)) +Input [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] +Condition : (isnotnull(ss_customer_sk#22) AND isnotnull(ss_sold_date_sk#21)) (171) Exchange -Input [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] -Arguments: hashpartitioning(ss_customer_sk#23, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] +Arguments: hashpartitioning(ss_customer_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=22] (172) Sort -Input [3]: [ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] -Arguments: [ss_customer_sk#23 ASC NULLS FIRST], false, 0 +Input [3]: [ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] +Arguments: [ss_customer_sk#22 ASC NULLS FIRST], false, 0 (173) SortMergeJoin Left keys [1]: [c_customer_sk#19] -Right keys [1]: [ss_customer_sk#23] +Right keys [1]: [ss_customer_sk#22] Join type: Inner Join condition: None (174) Project -Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] -Input [5]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_customer_sk#23, ss_ext_sales_price#24] +Output [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] +Input [5]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_customer_sk#22, ss_ext_sales_price#23] (175) Exchange -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: hashpartitioning(c_current_addr_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=23] (176) Sort -Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24] +Input [4]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23] Arguments: [c_current_addr_sk#20 ASC NULLS FIRST], false, 0 (177) Scan parquet -Output [3]: [ca_address_sk#25, ca_county#26, ca_state#27] +Output [3]: [ca_address_sk#24, ca_county#25, ca_state#26] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk), IsNotNull(ca_county), IsNotNull(ca_state)] ReadSchema: struct (178) Filter -Input [3]: [ca_address_sk#25, ca_county#26, ca_state#27] -Condition : ((isnotnull(ca_address_sk#25) AND isnotnull(ca_county#26)) AND isnotnull(ca_state#27)) +Input [3]: [ca_address_sk#24, ca_county#25, ca_state#26] +Condition : ((isnotnull(ca_address_sk#24) AND isnotnull(ca_county#25)) AND isnotnull(ca_state#26)) (179) Exchange -Input [3]: [ca_address_sk#25, ca_county#26, ca_state#27] -Arguments: hashpartitioning(ca_address_sk#25, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [3]: [ca_address_sk#24, ca_county#25, ca_state#26] +Arguments: hashpartitioning(ca_address_sk#24, 100), ENSURE_REQUIREMENTS, [plan_id=24] (180) Sort -Input [3]: [ca_address_sk#25, ca_county#26, ca_state#27] -Arguments: [ca_address_sk#25 ASC NULLS FIRST], false, 0 +Input [3]: [ca_address_sk#24, ca_county#25, ca_state#26] +Arguments: [ca_address_sk#24 ASC NULLS FIRST], false, 0 (181) SortMergeJoin Left keys [1]: [c_current_addr_sk#20] -Right keys [1]: [ca_address_sk#25] +Right keys [1]: [ca_address_sk#24] Join type: Inner Join condition: None (182) Project -Output [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Input [7]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_address_sk#25, ca_county#26, ca_state#27] +Output [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Input [7]: [c_customer_sk#19, c_current_addr_sk#20, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_address_sk#24, ca_county#25, ca_state#26] (183) Exchange -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Arguments: hashpartitioning(ca_county#26, ca_state#27, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Arguments: hashpartitioning(ca_county#25, ca_state#26, 100), ENSURE_REQUIREMENTS, [plan_id=25] (184) Sort -Input [5]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27] -Arguments: [ca_county#26 ASC NULLS FIRST, ca_state#27 ASC NULLS FIRST], false, 0 +Input [5]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26] +Arguments: [ca_county#25 ASC NULLS FIRST, ca_state#26 ASC NULLS FIRST], false, 0 (185) Scan parquet -Output [2]: [s_county#28, s_state#29] +Output [2]: [s_county#27, s_state#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_county), IsNotNull(s_state)] ReadSchema: struct (186) Filter -Input [2]: [s_county#28, s_state#29] -Condition : (isnotnull(s_county#28) AND isnotnull(s_state#29)) +Input [2]: [s_county#27, s_state#28] +Condition : (isnotnull(s_county#27) AND isnotnull(s_state#28)) (187) Exchange -Input [2]: [s_county#28, s_state#29] -Arguments: hashpartitioning(s_county#28, s_state#29, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [2]: [s_county#27, s_state#28] +Arguments: hashpartitioning(s_county#27, s_state#28, 100), ENSURE_REQUIREMENTS, [plan_id=26] (188) Sort -Input [2]: [s_county#28, s_state#29] -Arguments: [s_county#28 ASC NULLS FIRST, s_state#29 ASC NULLS FIRST], false, 0 +Input [2]: [s_county#27, s_state#28] +Arguments: [s_county#27 ASC NULLS FIRST, s_state#28 ASC NULLS FIRST], false, 0 (189) SortMergeJoin -Left keys [2]: [ca_county#26, ca_state#27] -Right keys [2]: [s_county#28, s_state#29] +Left keys [2]: [ca_county#25, ca_state#26] +Right keys [2]: [s_county#27, s_state#28] Join type: Inner Join condition: None (190) Project -Output [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Input [7]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, ca_county#26, ca_state#27, s_county#28, s_state#29] +Output [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Input [7]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, ca_county#25, ca_state#26, s_county#27, s_state#28] (191) Exchange -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Arguments: hashpartitioning(ss_sold_date_sk#22, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Arguments: hashpartitioning(ss_sold_date_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=27] (192) Sort -Input [3]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24] -Arguments: [ss_sold_date_sk#22 ASC NULLS FIRST], false, 0 +Input [3]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23] +Arguments: [ss_sold_date_sk#21 ASC NULLS FIRST], false, 0 (193) Scan parquet -Output [2]: [d_date_sk#30, d_month_seq#31] +Output [2]: [d_date_sk#29, d_month_seq#30] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), IsNotNull(d_date_sk)] ReadSchema: struct (194) Filter -Input [2]: [d_date_sk#30, d_month_seq#31] -Condition : (((isnotnull(d_month_seq#31) AND (d_month_seq#31 >= Subquery subquery#32, [id=#33])) AND (d_month_seq#31 <= Subquery subquery#34, [id=#35])) AND isnotnull(d_date_sk#30)) +Input [2]: [d_date_sk#29, d_month_seq#30] +Condition : (((isnotnull(d_month_seq#30) AND (d_month_seq#30 >= Subquery subquery#31, [id=#32])) AND (d_month_seq#30 <= Subquery subquery#33, [id=#34])) AND isnotnull(d_date_sk#29)) (195) Project -Output [1]: [d_date_sk#30] -Input [2]: [d_date_sk#30, d_month_seq#31] +Output [1]: [d_date_sk#29] +Input [2]: [d_date_sk#29, d_month_seq#30] (196) Exchange -Input [1]: [d_date_sk#30] -Arguments: hashpartitioning(d_date_sk#30, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [1]: [d_date_sk#29] +Arguments: hashpartitioning(d_date_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=28] (197) Sort -Input [1]: [d_date_sk#30] -Arguments: [d_date_sk#30 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#29] +Arguments: [d_date_sk#29 ASC NULLS FIRST], false, 0 (198) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#22] -Right keys [1]: [d_date_sk#30] +Left keys [1]: [ss_sold_date_sk#21] +Right keys [1]: [d_date_sk#29] Join type: Inner Join condition: None (199) Project -Output [2]: [c_customer_sk#19, ss_ext_sales_price#24] -Input [4]: [c_customer_sk#19, ss_sold_date_sk#22, ss_ext_sales_price#24, d_date_sk#30] +Output [2]: [c_customer_sk#19, ss_ext_sales_price#23] +Input [4]: [c_customer_sk#19, ss_sold_date_sk#21, ss_ext_sales_price#23, d_date_sk#29] (200) HashAggregate -Input [2]: [c_customer_sk#19, ss_ext_sales_price#24] +Input [2]: [c_customer_sk#19, ss_ext_sales_price#23] Keys [1]: [c_customer_sk#19] -Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#24))] -Aggregate Attributes [1]: [sum#37] +Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#23))] +Aggregate Attributes [1]: [sum#36] Results [2]: [c_customer_sk#19, sum#44] (201) Exchange @@ -1108,9 +1108,9 @@ Arguments: hashpartitioning(c_customer_sk#19, 100), ENSURE_REQUIREMENTS, [plan_i (202) HashAggregate Input [2]: [c_customer_sk#19, sum#44] Keys [1]: [c_customer_sk#19] -Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#24))] -Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#24))#38] -Results [1]: [cast((MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#24))#38,17,2) / 50) as int) AS segment#39] +Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#23))] +Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#23))#38] +Results [1]: [cast((MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#23))#38,17,2) / 50) as int) AS segment#39] (203) HashAggregate Input [1]: [segment#39] @@ -1140,7 +1140,7 @@ Arguments: isFinalPlan=true ===== Subqueries ===== -Subquery:1 Hosting operator id = 109 Hosting Expression = Subquery subquery#32, [id=#33] +Subquery:1 Hosting operator id = 109 Hosting Expression = Subquery subquery#31, [id=#32] AdaptiveSparkPlan (225) +- == Final Plan == NativeProject (218) @@ -1187,33 +1187,33 @@ Input [1]: [(d_month_seq + 1)#49] Keys [1]: [(d_month_seq + 1)#49] Functions: [] Aggregate Attributes: [] -Results [2]: [(d_month_seq + 1)#49, #21#21] +Results [1]: [(d_month_seq + 1)#49] (213) NativeShuffleExchange -Input [2]: [(d_month_seq + 1)#49, #21#21] +Input [1]: [(d_month_seq + 1)#49] Arguments: hashpartitioning((d_month_seq + 1)#49, 100), ENSURE_REQUIREMENTS, [plan_id=31] (214) ShuffleQueryStage -Output [2]: [(d_month_seq + 1)#49, #21#21] +Output [1]: [(d_month_seq + 1)#49] Arguments: X (215) AQEShuffleRead -Input [2]: [(d_month_seq + 1)#49, #21#21] +Input [1]: [(d_month_seq + 1)#49] Arguments: coalesced (216) InputAdapter -Input [2]: [(d_month_seq + 1)#49, #21#21] +Input [1]: [(d_month_seq + 1)#49] (217) NativeHashAggregate -Input [2]: [(d_month_seq + 1)#49, #21#21] +Input [1]: [(d_month_seq + 1)#49] Keys [1]: [(d_month_seq + 1)#49] Functions: [] Aggregate Attributes: [] -Results [2]: [(d_month_seq + 1)#49, #21#21] +Results [1]: [(d_month_seq + 1)#49] (218) NativeProject Output [1]: [(d_month_seq + 1)#49] -Input [2]: [(d_month_seq + 1)#49, #21#21] +Input [1]: [(d_month_seq + 1)#49] (219) Scan parquet Output [3]: [d_month_seq#46, d_year#47, d_moy#48] @@ -1252,7 +1252,7 @@ Results [1]: [(d_month_seq + 1)#49] Output [1]: [(d_month_seq + 1)#49] Arguments: isFinalPlan=true -Subquery:2 Hosting operator id = 109 Hosting Expression = Subquery subquery#34, [id=#35] +Subquery:2 Hosting operator id = 109 Hosting Expression = Subquery subquery#33, [id=#34] AdaptiveSparkPlan (243) +- == Final Plan == NativeProject (236) @@ -1299,33 +1299,33 @@ Input [1]: [(d_month_seq + 3)#53] Keys [1]: [(d_month_seq + 3)#53] Functions: [] Aggregate Attributes: [] -Results [2]: [(d_month_seq + 3)#53, #21#21] +Results [1]: [(d_month_seq + 3)#53] (231) NativeShuffleExchange -Input [2]: [(d_month_seq + 3)#53, #21#21] +Input [1]: [(d_month_seq + 3)#53] Arguments: hashpartitioning((d_month_seq + 3)#53, 100), ENSURE_REQUIREMENTS, [plan_id=33] (232) ShuffleQueryStage -Output [2]: [(d_month_seq + 3)#53, #21#21] +Output [1]: [(d_month_seq + 3)#53] Arguments: X (233) AQEShuffleRead -Input [2]: [(d_month_seq + 3)#53, #21#21] +Input [1]: [(d_month_seq + 3)#53] Arguments: coalesced (234) InputAdapter -Input [2]: [(d_month_seq + 3)#53, #21#21] +Input [1]: [(d_month_seq + 3)#53] (235) NativeHashAggregate -Input [2]: [(d_month_seq + 3)#53, #21#21] +Input [1]: [(d_month_seq + 3)#53] Keys [1]: [(d_month_seq + 3)#53] Functions: [] Aggregate Attributes: [] -Results [2]: [(d_month_seq + 3)#53, #21#21] +Results [1]: [(d_month_seq + 3)#53] (236) NativeProject Output [1]: [(d_month_seq + 3)#53] -Input [2]: [(d_month_seq + 3)#53, #21#21] +Input [1]: [(d_month_seq + 3)#53] (237) Scan parquet Output [3]: [d_month_seq#50, d_year#51, d_moy#52] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q55.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q55.txt index 986c55b05..bc1a58f28 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q55.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q55.txt @@ -230,25 +230,25 @@ Input [3]: [i_brand#9, i_brand_id#8, _c2#11] Keys [2]: [i_brand#9, i_brand_id#8] Functions [1]: [partial_sum(_c2#11)] Aggregate Attributes [1]: [sum#12] -Results [3]: [i_brand#9, i_brand_id#8, #13#13] +Results [3]: [i_brand#9, i_brand_id#8, #13] (38) NativeShuffleExchange -Input [3]: [i_brand#9, i_brand_id#8, #13#13] +Input [3]: [i_brand#9, i_brand_id#8, #13] Arguments: hashpartitioning(i_brand#9, i_brand_id#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [3]: [i_brand#9, i_brand_id#8, #13#13] +Output [3]: [i_brand#9, i_brand_id#8, #13] Arguments: X (40) AQEShuffleRead -Input [3]: [i_brand#9, i_brand_id#8, #13#13] +Input [3]: [i_brand#9, i_brand_id#8, #13] Arguments: coalesced (41) InputAdapter -Input [3]: [i_brand#9, i_brand_id#8, #13#13] +Input [3]: [i_brand#9, i_brand_id#8, #13] (42) NativeHashAggregate -Input [3]: [i_brand#9, i_brand_id#8, #13#13] +Input [3]: [i_brand#9, i_brand_id#8, #13] Keys [2]: [i_brand#9, i_brand_id#8] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#6))#14] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q56.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q56.txt index cd5325dad..885ce41ef 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q56.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q56.txt @@ -593,25 +593,25 @@ Input [2]: [i_item_id#11, _c1#14] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(_c1#14)] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_item_id#11, #16#16] +Results [2]: [i_item_id#11, #16] (68) NativeShuffleExchange -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=9] (69) ShuffleQueryStage -Output [2]: [i_item_id#11, #16#16] +Output [2]: [i_item_id#11, #16] Arguments: X (70) AQEShuffleRead -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Arguments: coalesced (71) InputAdapter -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] (72) NativeHashAggregate -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Keys [1]: [i_item_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -798,25 +798,25 @@ Input [2]: [i_item_id#26, _c1#27] Keys [1]: [i_item_id#26] Functions [1]: [partial_sum(_c1#27)] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_item_id#26, #16#16] +Results [2]: [i_item_id#26, #16] (118) NativeShuffleExchange -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Arguments: hashpartitioning(i_item_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=13] (119) ShuffleQueryStage -Output [2]: [i_item_id#26, #16#16] +Output [2]: [i_item_id#26, #16] Arguments: X (120) AQEShuffleRead -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Arguments: coalesced (121) InputAdapter -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] (122) NativeHashAggregate -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Keys [1]: [i_item_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1003,25 +1003,25 @@ Input [2]: [i_item_id#38, _c1#39] Keys [1]: [i_item_id#38] Functions [1]: [partial_sum(_c1#39)] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_item_id#38, #16#16] +Results [2]: [i_item_id#38, #16] (168) NativeShuffleExchange -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Arguments: hashpartitioning(i_item_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=17] (169) ShuffleQueryStage -Output [2]: [i_item_id#38, #16#16] +Output [2]: [i_item_id#38, #16] Arguments: X (170) AQEShuffleRead -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Arguments: coalesced (171) InputAdapter -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] (172) NativeHashAggregate -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Keys [1]: [i_item_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1043,37 +1043,37 @@ Input [2]: [#11#11, #18#18] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [2]: [i_item_id#11, #16#16] +Results [2]: [i_item_id#11, #45] (177) NativeShuffleExchange -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=18] (178) ShuffleQueryStage -Output [2]: [i_item_id#11, #16#16] +Output [2]: [i_item_id#11, #45] Arguments: X (179) AQEShuffleRead -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Arguments: coalesced (180) InputAdapter -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] (181) NativeHashAggregate -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Keys [1]: [i_item_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_item_id#11, sum(total_sales#18)#45] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_item_id#11, sum(total_sales#18)#46] (182) NativeProject -Output [2]: [i_item_id#11, sum(total_sales#18)#45 AS total_sales#46] -Input [2]: [i_item_id#11, sum(total_sales#18)#45] +Output [2]: [i_item_id#11, sum(total_sales#18)#46 AS total_sales#47] +Input [2]: [i_item_id#11, sum(total_sales#18)#46] (183) NativeTakeOrdered -Input [2]: [i_item_id#11, total_sales#46] -Arguments: X, [total_sales#46 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST] +Input [2]: [i_item_id#11, total_sales#47] +Arguments: X, [total_sales#47 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST] (184) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_item_sk#2, ss_addr_sk#3, ss_ext_sales_price#4] @@ -1247,14 +1247,14 @@ Input [2]: [ss_ext_sales_price#4, i_item_id#11] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_item_id#11, sum#47] +Results [2]: [i_item_id#11, sum#48] (221) Exchange -Input [2]: [i_item_id#11, sum#47] +Input [2]: [i_item_id#11, sum#48] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=27] (222) HashAggregate -Input [2]: [i_item_id#11, sum#47] +Input [2]: [i_item_id#11, sum#48] Keys [1]: [i_item_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -1280,19 +1280,19 @@ Input [4]: [cs_sold_date_sk#19, cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_ Arguments: [cs_sold_date_sk#19 ASC NULLS FIRST], false, 0 (227) Scan parquet -Output [3]: [d_date_sk#23, d_year#48, d_moy#49] +Output [3]: [d_date_sk#23, d_year#49, d_moy#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (228) Filter -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] -Condition : ((((isnotnull(d_year#48) AND isnotnull(d_moy#49)) AND (d_year#48 = 2001)) AND (d_moy#49 = 2)) AND isnotnull(d_date_sk#23)) +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] +Condition : ((((isnotnull(d_year#49) AND isnotnull(d_moy#50)) AND (d_year#49 = 2001)) AND (d_moy#50 = 2)) AND isnotnull(d_date_sk#23)) (229) Project Output [1]: [d_date_sk#23] -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] (230) Exchange Input [1]: [d_date_sk#23] @@ -1321,19 +1321,19 @@ Input [3]: [cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_price#22] Arguments: [cs_bill_addr_sk#20 ASC NULLS FIRST], false, 0 (236) Scan parquet -Output [2]: [ca_address_sk#24, ca_gmt_offset#50] +Output [2]: [ca_address_sk#24, ca_gmt_offset#51] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (237) Filter -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] -Condition : ((isnotnull(ca_gmt_offset#50) AND (ca_gmt_offset#50 = -5.00)) AND isnotnull(ca_address_sk#24)) +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] +Condition : ((isnotnull(ca_gmt_offset#51) AND (ca_gmt_offset#51 = -5.00)) AND isnotnull(ca_address_sk#24)) (238) Project Output [1]: [ca_address_sk#24] -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] (239) Exchange Input [1]: [ca_address_sk#24] @@ -1381,31 +1381,31 @@ Input [2]: [i_item_sk#25, i_item_id#26] Arguments: [i_item_id#26 ASC NULLS FIRST], false, 0 (249) Scan parquet -Output [2]: [i_item_id#51, i_color#52] +Output [2]: [i_item_id#52, i_color#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(i_color, [blanched,burnished,slate])] ReadSchema: struct (250) Filter -Input [2]: [i_item_id#51, i_color#52] -Condition : i_color#52 IN (slate,blanched,burnished) +Input [2]: [i_item_id#52, i_color#53] +Condition : i_color#53 IN (slate,blanched,burnished) (251) Project -Output [1]: [i_item_id#51] -Input [2]: [i_item_id#51, i_color#52] +Output [1]: [i_item_id#52] +Input [2]: [i_item_id#52, i_color#53] (252) Exchange -Input [1]: [i_item_id#51] -Arguments: hashpartitioning(i_item_id#51, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [1]: [i_item_id#52] +Arguments: hashpartitioning(i_item_id#52, 100), ENSURE_REQUIREMENTS, [plan_id=34] (253) Sort -Input [1]: [i_item_id#51] -Arguments: [i_item_id#51 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_id#52] +Arguments: [i_item_id#52 ASC NULLS FIRST], false, 0 (254) SortMergeJoin Left keys [1]: [i_item_id#26] -Right keys [1]: [i_item_id#51] +Right keys [1]: [i_item_id#52] Join type: LeftSemi Join condition: None @@ -1432,14 +1432,14 @@ Input [2]: [cs_ext_sales_price#22, i_item_id#26] Keys [1]: [i_item_id#26] Functions [1]: [partial_sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_item_id#26, sum#53] +Results [2]: [i_item_id#26, sum#54] (260) Exchange -Input [2]: [i_item_id#26, sum#53] +Input [2]: [i_item_id#26, sum#54] Arguments: hashpartitioning(i_item_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=36] (261) HashAggregate -Input [2]: [i_item_id#26, sum#53] +Input [2]: [i_item_id#26, sum#54] Keys [1]: [i_item_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1465,19 +1465,19 @@ Input [4]: [ws_sold_date_sk#31, ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_ Arguments: [ws_sold_date_sk#31 ASC NULLS FIRST], false, 0 (266) Scan parquet -Output [3]: [d_date_sk#35, d_year#54, d_moy#55] +Output [3]: [d_date_sk#35, d_year#55, d_moy#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,2), IsNotNull(d_date_sk)] ReadSchema: struct (267) Filter -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] -Condition : ((((isnotnull(d_year#54) AND isnotnull(d_moy#55)) AND (d_year#54 = 2001)) AND (d_moy#55 = 2)) AND isnotnull(d_date_sk#35)) +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] +Condition : ((((isnotnull(d_year#55) AND isnotnull(d_moy#56)) AND (d_year#55 = 2001)) AND (d_moy#56 = 2)) AND isnotnull(d_date_sk#35)) (268) Project Output [1]: [d_date_sk#35] -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] (269) Exchange Input [1]: [d_date_sk#35] @@ -1506,19 +1506,19 @@ Input [3]: [ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_price#34] Arguments: [ws_bill_addr_sk#33 ASC NULLS FIRST], false, 0 (275) Scan parquet -Output [2]: [ca_address_sk#36, ca_gmt_offset#56] +Output [2]: [ca_address_sk#36, ca_gmt_offset#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (276) Filter -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] -Condition : ((isnotnull(ca_gmt_offset#56) AND (ca_gmt_offset#56 = -5.00)) AND isnotnull(ca_address_sk#36)) +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] +Condition : ((isnotnull(ca_gmt_offset#57) AND (ca_gmt_offset#57 = -5.00)) AND isnotnull(ca_address_sk#36)) (277) Project Output [1]: [ca_address_sk#36] -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] (278) Exchange Input [1]: [ca_address_sk#36] @@ -1566,31 +1566,31 @@ Input [2]: [i_item_sk#37, i_item_id#38] Arguments: [i_item_id#38 ASC NULLS FIRST], false, 0 (288) Scan parquet -Output [2]: [i_item_id#57, i_color#58] +Output [2]: [i_item_id#58, i_color#59] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [In(i_color, [blanched,burnished,slate])] ReadSchema: struct (289) Filter -Input [2]: [i_item_id#57, i_color#58] -Condition : i_color#58 IN (slate,blanched,burnished) +Input [2]: [i_item_id#58, i_color#59] +Condition : i_color#59 IN (slate,blanched,burnished) (290) Project -Output [1]: [i_item_id#57] -Input [2]: [i_item_id#57, i_color#58] +Output [1]: [i_item_id#58] +Input [2]: [i_item_id#58, i_color#59] (291) Exchange -Input [1]: [i_item_id#57] -Arguments: hashpartitioning(i_item_id#57, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [1]: [i_item_id#58] +Arguments: hashpartitioning(i_item_id#58, 100), ENSURE_REQUIREMENTS, [plan_id=43] (292) Sort -Input [1]: [i_item_id#57] -Arguments: [i_item_id#57 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_id#58] +Arguments: [i_item_id#58 ASC NULLS FIRST], false, 0 (293) SortMergeJoin Left keys [1]: [i_item_id#38] -Right keys [1]: [i_item_id#57] +Right keys [1]: [i_item_id#58] Join type: LeftSemi Join condition: None @@ -1617,14 +1617,14 @@ Input [2]: [ws_ext_sales_price#34, i_item_id#38] Keys [1]: [i_item_id#38] Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_item_id#38, sum#59] +Results [2]: [i_item_id#38, sum#60] (299) Exchange -Input [2]: [i_item_id#38, sum#59] +Input [2]: [i_item_id#38, sum#60] Arguments: hashpartitioning(i_item_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=45] (300) HashAggregate -Input [2]: [i_item_id#38, sum#59] +Input [2]: [i_item_id#38, sum#60] Keys [1]: [i_item_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1637,24 +1637,24 @@ Input [2]: [i_item_id#11, total_sales#18] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [3]: [i_item_id#11, sum#60, isEmpty#61] +Results [3]: [i_item_id#11, sum#61, isEmpty#62] (303) Exchange -Input [3]: [i_item_id#11, sum#60, isEmpty#61] +Input [3]: [i_item_id#11, sum#61, isEmpty#62] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=46] (304) HashAggregate -Input [3]: [i_item_id#11, sum#60, isEmpty#61] +Input [3]: [i_item_id#11, sum#61, isEmpty#62] Keys [1]: [i_item_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_item_id#11, sum(total_sales#18)#45 AS total_sales#46] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_item_id#11, sum(total_sales#18)#46 AS total_sales#47] (305) TakeOrderedAndProject -Input [2]: [i_item_id#11, total_sales#46] -Arguments: X, [total_sales#46 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST], [i_item_id#11, total_sales#46] +Input [2]: [i_item_id#11, total_sales#47] +Arguments: X, [total_sales#47 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST], [i_item_id#11, total_sales#47] (306) AdaptiveSparkPlan -Output [2]: [i_item_id#11, total_sales#46] +Output [2]: [i_item_id#11, total_sales#47] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt index 17fb351f5..3ee7d5b02 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt @@ -439,25 +439,25 @@ Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, _c5#13] Keys [5]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10] Functions [1]: [partial_sum(_c5#13)] Aggregate Attributes [1]: [sum#14] -Results [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Results [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] (51) NativeShuffleExchange -Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] Arguments: hashpartitioning(i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] (52) ShuffleQueryStage -Output [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Output [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] Arguments: X (53) AQEShuffleRead -Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] Arguments: coalesced (54) InputAdapter -Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] (55) NativeHashAggregate -Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15#15] +Input [6]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, #15] Keys [5]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10] Functions [1]: [sum(UnscaledValue(cs_sales_price#7))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_sales_price#7))#16] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt index b93dc834d..22236d1b4 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt @@ -464,25 +464,25 @@ Input [2]: [i_item_id#5, _c1#12] Keys [1]: [i_item_id#5] Functions [1]: [partial_sum(_c1#12)] Aggregate Attributes [1]: [sum#13] -Results [2]: [i_item_id#5, #14#14] +Results [2]: [i_item_id#5, #14] (52) NativeShuffleExchange -Input [2]: [i_item_id#5, #14#14] +Input [2]: [i_item_id#5, #14] Arguments: hashpartitioning(i_item_id#5, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [2]: [i_item_id#5, #14#14] +Output [2]: [i_item_id#5, #14] Arguments: X (54) AQEShuffleRead -Input [2]: [i_item_id#5, #14#14] +Input [2]: [i_item_id#5, #14] Arguments: coalesced (55) InputAdapter -Input [2]: [i_item_id#5, #14#14] +Input [2]: [i_item_id#5, #14] (56) NativeHashAggregate -Input [2]: [i_item_id#5, #14#14] +Input [2]: [i_item_id#5, #14] Keys [1]: [i_item_id#5] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#3))#15] @@ -626,25 +626,25 @@ Input [2]: [i_item_id#22, _c1#24] Keys [1]: [i_item_id#22] Functions [1]: [partial_sum(_c1#24)] Aggregate Attributes [1]: [sum#25] -Results [2]: [i_item_id#22, #14#14] +Results [2]: [i_item_id#22, #14] (91) NativeShuffleExchange -Input [2]: [i_item_id#22, #14#14] +Input [2]: [i_item_id#22, #14] Arguments: hashpartitioning(i_item_id#22, 100), ENSURE_REQUIREMENTS, [plan_id=10] (92) ShuffleQueryStage -Output [2]: [i_item_id#22, #14#14] +Output [2]: [i_item_id#22, #14] Arguments: X (93) AQEShuffleRead -Input [2]: [i_item_id#22, #14#14] +Input [2]: [i_item_id#22, #14] Arguments: coalesced (94) InputAdapter -Input [2]: [i_item_id#22, #14#14] +Input [2]: [i_item_id#22, #14] (95) NativeHashAggregate -Input [2]: [i_item_id#22, #14#14] +Input [2]: [i_item_id#22, #14] Keys [1]: [i_item_id#22] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#20))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#20))#26] @@ -798,25 +798,25 @@ Input [2]: [i_item_id#33, _c1#35] Keys [1]: [i_item_id#33] Functions [1]: [partial_sum(_c1#35)] Aggregate Attributes [1]: [sum#36] -Results [2]: [i_item_id#33, #14#14] +Results [2]: [i_item_id#33, #14] (132) NativeShuffleExchange -Input [2]: [i_item_id#33, #14#14] +Input [2]: [i_item_id#33, #14] Arguments: hashpartitioning(i_item_id#33, 100), ENSURE_REQUIREMENTS, [plan_id=13] (133) ShuffleQueryStage -Output [2]: [i_item_id#33, #14#14] +Output [2]: [i_item_id#33, #14] Arguments: X (134) AQEShuffleRead -Input [2]: [i_item_id#33, #14#14] +Input [2]: [i_item_id#33, #14] Arguments: coalesced (135) InputAdapter -Input [2]: [i_item_id#33, #14#14] +Input [2]: [i_item_id#33, #14] (136) NativeHashAggregate -Input [2]: [i_item_id#33, #14#14] +Input [2]: [i_item_id#33, #14] Keys [1]: [i_item_id#33] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#31))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#31))#37] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q59.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q59.txt index 216f4c6cf..06fef646c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q59.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q59.txt @@ -260,25 +260,25 @@ Input [9]: [d_week_seq#5, ss_store_sk#2, _c2#7, _c3#8, _c4#9, _c5#10, _c6#11, _c Keys [2]: [d_week_seq#5, ss_store_sk#2] Functions [7]: [partial_sum(_c2#7), partial_sum(_c3#8), partial_sum(_c4#9), partial_sum(_c5#10), partial_sum(_c6#11), partial_sum(_c7#12), partial_sum(_c8#13)] Aggregate Attributes [7]: [sum#14, sum#15, sum#16, sum#17, sum#18, sum#19, sum#20] -Results [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Results [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] (21) NativeShuffleExchange -Input [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Input [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] Arguments: hashpartitioning(d_week_seq#5, ss_store_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=3] (22) ShuffleQueryStage -Output [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Output [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] Arguments: X (23) AQEShuffleRead -Input [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Input [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] Arguments: coalesced (24) InputAdapter -Input [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Input [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] (25) NativeHashAggregate -Input [3]: [d_week_seq#5, ss_store_sk#2, #21#21] +Input [9]: [d_week_seq#5, ss_store_sk#2, #21, #21, #21, #21, #21, #21, #21] Keys [2]: [d_week_seq#5, ss_store_sk#2] Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 END))] Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 END))#22, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 END))#23, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 END))#24, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 END))#25, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 END))#26, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 END))#27, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 END))#28] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt index ea9187c71..169958386 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt @@ -435,51 +435,51 @@ Input [2]: [i_category#16, _c1#17] Keys [1]: [i_category#16] Functions [1]: [partial_avg(_c1#17)] Aggregate Attributes [2]: [sum#18, count#19] -Results [2]: [i_category#16, #20#20] +Results [3]: [i_category#16, #20, #21] (68) NativeShuffleExchange -Input [2]: [i_category#16, #20#20] +Input [3]: [i_category#16, #20, #21] Arguments: hashpartitioning(i_category#16, 100), ENSURE_REQUIREMENTS, [plan_id=9] (69) ShuffleQueryStage -Output [2]: [i_category#16, #20#20] +Output [3]: [i_category#16, #20, #21] Arguments: X (70) AQEShuffleRead -Input [2]: [i_category#16, #20#20] +Input [3]: [i_category#16, #20, #21] Arguments: coalesced (71) InputAdapter -Input [2]: [i_category#16, #20#20] +Input [3]: [i_category#16, #20, #21] (72) NativeHashAggregate -Input [2]: [i_category#16, #20#20] +Input [3]: [i_category#16, #20, #21] Keys [1]: [i_category#16] Functions [1]: [avg(UnscaledValue(i_current_price#15))] -Aggregate Attributes [1]: [avg(UnscaledValue(i_current_price#15))#21] -Results [2]: [i_category#16, avg(UnscaledValue(i_current_price#15))#21] +Aggregate Attributes [1]: [avg(UnscaledValue(i_current_price#15))#22] +Results [2]: [i_category#16, avg(UnscaledValue(i_current_price#15))#22] (73) NativeProject -Output [2]: [cast((avg(UnscaledValue(i_current_price#15))#21 / 100.0) as decimal(11,6)) AS avg(i_current_price)#22, i_category#16] -Input [2]: [i_category#16, avg(UnscaledValue(i_current_price#15))#21] +Output [2]: [cast((avg(UnscaledValue(i_current_price#15))#22 / 100.0) as decimal(11,6)) AS avg(i_current_price)#23, i_category#16] +Input [2]: [i_category#16, avg(UnscaledValue(i_current_price#15))#22] (74) NativeFilter -Input [2]: [avg(i_current_price)#22, i_category#16] -Condition : isnotnull(avg(i_current_price)#22) +Input [2]: [avg(i_current_price)#23, i_category#16] +Condition : isnotnull(avg(i_current_price)#23) (75) NativeSort -Input [2]: [avg(i_current_price)#22, i_category#16] +Input [2]: [avg(i_current_price)#23, i_category#16] Arguments: [i_category#16 ASC NULLS FIRST], false (76) SortMergeJoin [codegen id : X] Left keys [1]: [i_category#14] Right keys [1]: [i_category#16] Join type: Inner -Join condition: (cast(i_current_price#13 as decimal(14,7)) > (1.2 * avg(i_current_price)#22)) +Join condition: (cast(i_current_price#13 as decimal(14,7)) > (1.2 * avg(i_current_price)#23)) (77) Project [codegen id : X] Output [1]: [i_item_sk#12] -Input [5]: [#12#12, #13#13, #14#14, avg(i_current_price)#22, i_category#16] +Input [5]: [#12#12, #13#13, #14#14, avg(i_current_price)#23, i_category#16] (78) ConvertToNative Input [1]: [i_item_sk#12] @@ -517,46 +517,46 @@ Input [3]: [ca_state#2, ss_item_sk#6, i_item_sk#12] Input [1]: [ca_state#2] Keys [1]: [ca_state#2] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#23] -Results [2]: [ca_state#2, #20#20] +Aggregate Attributes [1]: [count#24] +Results [2]: [ca_state#2, #21] (87) NativeShuffleExchange -Input [2]: [ca_state#2, #20#20] +Input [2]: [ca_state#2, #21] Arguments: hashpartitioning(ca_state#2, 100), ENSURE_REQUIREMENTS, [plan_id=11] (88) ShuffleQueryStage -Output [2]: [ca_state#2, #20#20] +Output [2]: [ca_state#2, #21] Arguments: X (89) AQEShuffleRead -Input [2]: [ca_state#2, #20#20] +Input [2]: [ca_state#2, #21] Arguments: coalesced (90) InputAdapter -Input [2]: [ca_state#2, #20#20] +Input [2]: [ca_state#2, #21] (91) NativeHashAggregate -Input [2]: [ca_state#2, #20#20] +Input [2]: [ca_state#2, #21] Keys [1]: [ca_state#2] Functions [1]: [count(1)] -Aggregate Attributes [1]: [count(1)#24] -Results [2]: [ca_state#2, count(1)#24] +Aggregate Attributes [1]: [count(1)#25] +Results [2]: [ca_state#2, count(1)#25] (92) NativeProject -Output [3]: [ca_state#2 AS state#25, count(1)#24 AS cnt#26, ca_state#2] -Input [2]: [ca_state#2, count(1)#24] +Output [3]: [ca_state#2 AS state#26, count(1)#25 AS cnt#27, ca_state#2] +Input [2]: [ca_state#2, count(1)#25] (93) NativeFilter -Input [3]: [state#25, cnt#26, ca_state#2] -Condition : (cnt#26 >= 10) +Input [3]: [state#26, cnt#27, ca_state#2] +Condition : (cnt#27 >= 10) (94) NativeTakeOrdered -Input [3]: [state#25, cnt#26, ca_state#2] -Arguments: X, [cnt#26 ASC NULLS FIRST, ca_state#2 ASC NULLS FIRST] +Input [3]: [state#26, cnt#27, ca_state#2] +Arguments: X, [cnt#27 ASC NULLS FIRST, ca_state#2 ASC NULLS FIRST] (95) NativeProject -Output [2]: [state#25, cnt#26] -Input [3]: [state#25, cnt#26, ca_state#2] +Output [2]: [state#26, cnt#27] +Input [3]: [state#26, cnt#27, ca_state#2] (96) Scan parquet Output [2]: [ca_address_sk#1, ca_state#2] @@ -727,36 +727,36 @@ Input [2]: [i_current_price#15, i_category#16] Keys [1]: [i_category#16] Functions [1]: [partial_avg(UnscaledValue(i_current_price#15))] Aggregate Attributes [2]: [sum#18, count#19] -Results [3]: [i_category#16, sum#27, count#28] +Results [3]: [i_category#16, sum#28, count#29] (132) Exchange -Input [3]: [i_category#16, sum#27, count#28] +Input [3]: [i_category#16, sum#28, count#29] Arguments: hashpartitioning(i_category#16, 100), ENSURE_REQUIREMENTS, [plan_id=20] (133) HashAggregate -Input [3]: [i_category#16, sum#27, count#28] +Input [3]: [i_category#16, sum#28, count#29] Keys [1]: [i_category#16] Functions [1]: [avg(UnscaledValue(i_current_price#15))] -Aggregate Attributes [1]: [avg(UnscaledValue(i_current_price#15))#21] -Results [2]: [cast((avg(UnscaledValue(i_current_price#15))#21 / 100.0) as decimal(11,6)) AS avg(i_current_price)#22, i_category#16] +Aggregate Attributes [1]: [avg(UnscaledValue(i_current_price#15))#22] +Results [2]: [cast((avg(UnscaledValue(i_current_price#15))#22 / 100.0) as decimal(11,6)) AS avg(i_current_price)#23, i_category#16] (134) Filter -Input [2]: [avg(i_current_price)#22, i_category#16] -Condition : isnotnull(avg(i_current_price)#22) +Input [2]: [avg(i_current_price)#23, i_category#16] +Condition : isnotnull(avg(i_current_price)#23) (135) Sort -Input [2]: [avg(i_current_price)#22, i_category#16] +Input [2]: [avg(i_current_price)#23, i_category#16] Arguments: [i_category#16 ASC NULLS FIRST], false, 0 (136) SortMergeJoin Left keys [1]: [i_category#14] Right keys [1]: [i_category#16] Join type: Inner -Join condition: (cast(i_current_price#13 as decimal(14,7)) > (1.2 * avg(i_current_price)#22)) +Join condition: (cast(i_current_price#13 as decimal(14,7)) > (1.2 * avg(i_current_price)#23)) (137) Project Output [1]: [i_item_sk#12] -Input [5]: [i_item_sk#12, i_current_price#13, i_category#14, avg(i_current_price)#22, i_category#16] +Input [5]: [i_item_sk#12, i_current_price#13, i_category#14, avg(i_current_price)#23, i_category#16] (138) Exchange Input [1]: [i_item_sk#12] @@ -780,30 +780,30 @@ Input [3]: [ca_state#2, ss_item_sk#6, i_item_sk#12] Input [1]: [ca_state#2] Keys [1]: [ca_state#2] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#23] -Results [2]: [ca_state#2, count#29] +Aggregate Attributes [1]: [count#24] +Results [2]: [ca_state#2, count#30] (143) Exchange -Input [2]: [ca_state#2, count#29] +Input [2]: [ca_state#2, count#30] Arguments: hashpartitioning(ca_state#2, 100), ENSURE_REQUIREMENTS, [plan_id=22] (144) HashAggregate -Input [2]: [ca_state#2, count#29] +Input [2]: [ca_state#2, count#30] Keys [1]: [ca_state#2] Functions [1]: [count(1)] -Aggregate Attributes [1]: [count(1)#24] -Results [3]: [ca_state#2 AS state#25, count(1)#24 AS cnt#26, ca_state#2] +Aggregate Attributes [1]: [count(1)#25] +Results [3]: [ca_state#2 AS state#26, count(1)#25 AS cnt#27, ca_state#2] (145) Filter -Input [3]: [state#25, cnt#26, ca_state#2] -Condition : (cnt#26 >= 10) +Input [3]: [state#26, cnt#27, ca_state#2] +Condition : (cnt#27 >= 10) (146) TakeOrderedAndProject -Input [3]: [state#25, cnt#26, ca_state#2] -Arguments: X, [cnt#26 ASC NULLS FIRST, ca_state#2 ASC NULLS FIRST], [state#25, cnt#26] +Input [3]: [state#26, cnt#27, ca_state#2] +Arguments: X, [cnt#27 ASC NULLS FIRST, ca_state#2 ASC NULLS FIRST], [state#26, cnt#27] (147) AdaptiveSparkPlan -Output [2]: [state#25, cnt#26] +Output [2]: [state#26, cnt#27] Arguments: isFinalPlan=true ===== Subqueries ===== @@ -832,92 +832,92 @@ AdaptiveSparkPlan (165) (159) Scan parquet -Output [3]: [d_month_seq#30, d_year#31, d_moy#32] +Output [3]: [d_month_seq#31, d_year#32, d_moy#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,1)] ReadSchema: struct (149) InputAdapter -Input [3]: [d_month_seq#30, d_year#31, d_moy#32] -Arguments: [#30, #31, #32] +Input [3]: [d_month_seq#31, d_year#32, d_moy#33] +Arguments: [#31, #32, #33] (150) NativeFilter -Input [3]: [#30#30, #31#31, #32#32] -Condition : (((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2000)) AND (d_moy#32 = 1)) +Input [3]: [#31#31, #32#32, #33#33] +Condition : (((isnotnull(d_year#32) AND isnotnull(d_moy#33)) AND (d_year#32 = 2000)) AND (d_moy#33 = 1)) (151) NativeProject -Output [1]: [d_month_seq#30] -Input [3]: [#30#30, #31#31, #32#32] +Output [1]: [d_month_seq#31] +Input [3]: [#31#31, #32#32, #33#33] (152) NativeHashAggregate -Input [1]: [d_month_seq#30] -Keys [1]: [d_month_seq#30] +Input [1]: [d_month_seq#31] +Keys [1]: [d_month_seq#31] Functions: [] Aggregate Attributes: [] -Results [2]: [d_month_seq#30, #20#20] +Results [1]: [d_month_seq#31] (153) NativeShuffleExchange -Input [2]: [d_month_seq#30, #20#20] -Arguments: hashpartitioning(d_month_seq#30, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [1]: [d_month_seq#31] +Arguments: hashpartitioning(d_month_seq#31, 100), ENSURE_REQUIREMENTS, [plan_id=23] (154) ShuffleQueryStage -Output [2]: [d_month_seq#30, #20#20] +Output [1]: [d_month_seq#31] Arguments: X (155) AQEShuffleRead -Input [2]: [d_month_seq#30, #20#20] +Input [1]: [d_month_seq#31] Arguments: coalesced (156) InputAdapter -Input [2]: [d_month_seq#30, #20#20] +Input [1]: [d_month_seq#31] (157) NativeHashAggregate -Input [2]: [d_month_seq#30, #20#20] -Keys [1]: [d_month_seq#30] +Input [1]: [d_month_seq#31] +Keys [1]: [d_month_seq#31] Functions: [] Aggregate Attributes: [] -Results [2]: [d_month_seq#30, #20#20] +Results [1]: [d_month_seq#31] (158) NativeProject -Output [1]: [d_month_seq#30] -Input [2]: [d_month_seq#30, #20#20] +Output [1]: [d_month_seq#31] +Input [1]: [d_month_seq#31] (159) Scan parquet -Output [3]: [d_month_seq#30, d_year#31, d_moy#32] +Output [3]: [d_month_seq#31, d_year#32, d_moy#33] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2000), EqualTo(d_moy,1)] ReadSchema: struct (160) Filter -Input [3]: [d_month_seq#30, d_year#31, d_moy#32] -Condition : (((isnotnull(d_year#31) AND isnotnull(d_moy#32)) AND (d_year#31 = 2000)) AND (d_moy#32 = 1)) +Input [3]: [d_month_seq#31, d_year#32, d_moy#33] +Condition : (((isnotnull(d_year#32) AND isnotnull(d_moy#33)) AND (d_year#32 = 2000)) AND (d_moy#33 = 1)) (161) Project -Output [1]: [d_month_seq#30] -Input [3]: [d_month_seq#30, d_year#31, d_moy#32] +Output [1]: [d_month_seq#31] +Input [3]: [d_month_seq#31, d_year#32, d_moy#33] (162) HashAggregate -Input [1]: [d_month_seq#30] -Keys [1]: [d_month_seq#30] +Input [1]: [d_month_seq#31] +Keys [1]: [d_month_seq#31] Functions: [] Aggregate Attributes: [] -Results [1]: [d_month_seq#30] +Results [1]: [d_month_seq#31] (163) Exchange -Input [1]: [d_month_seq#30] -Arguments: hashpartitioning(d_month_seq#30, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [1]: [d_month_seq#31] +Arguments: hashpartitioning(d_month_seq#31, 100), ENSURE_REQUIREMENTS, [plan_id=24] (164) HashAggregate -Input [1]: [d_month_seq#30] -Keys [1]: [d_month_seq#30] +Input [1]: [d_month_seq#31] +Keys [1]: [d_month_seq#31] Functions: [] Aggregate Attributes: [] -Results [1]: [d_month_seq#30] +Results [1]: [d_month_seq#31] (165) AdaptiveSparkPlan -Output [1]: [d_month_seq#30] +Output [1]: [d_month_seq#31] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q60.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q60.txt index 657598799..52698607f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q60.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q60.txt @@ -593,25 +593,25 @@ Input [2]: [i_item_id#11, _c1#14] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(_c1#14)] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_item_id#11, #16#16] +Results [2]: [i_item_id#11, #16] (68) NativeShuffleExchange -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=9] (69) ShuffleQueryStage -Output [2]: [i_item_id#11, #16#16] +Output [2]: [i_item_id#11, #16] Arguments: X (70) AQEShuffleRead -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Arguments: coalesced (71) InputAdapter -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] (72) NativeHashAggregate -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #16] Keys [1]: [i_item_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -798,25 +798,25 @@ Input [2]: [i_item_id#26, _c1#27] Keys [1]: [i_item_id#26] Functions [1]: [partial_sum(_c1#27)] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_item_id#26, #16#16] +Results [2]: [i_item_id#26, #16] (118) NativeShuffleExchange -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Arguments: hashpartitioning(i_item_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=13] (119) ShuffleQueryStage -Output [2]: [i_item_id#26, #16#16] +Output [2]: [i_item_id#26, #16] Arguments: X (120) AQEShuffleRead -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Arguments: coalesced (121) InputAdapter -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] (122) NativeHashAggregate -Input [2]: [i_item_id#26, #16#16] +Input [2]: [i_item_id#26, #16] Keys [1]: [i_item_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1003,25 +1003,25 @@ Input [2]: [i_item_id#38, _c1#39] Keys [1]: [i_item_id#38] Functions [1]: [partial_sum(_c1#39)] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_item_id#38, #16#16] +Results [2]: [i_item_id#38, #16] (168) NativeShuffleExchange -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Arguments: hashpartitioning(i_item_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=17] (169) ShuffleQueryStage -Output [2]: [i_item_id#38, #16#16] +Output [2]: [i_item_id#38, #16] Arguments: X (170) AQEShuffleRead -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Arguments: coalesced (171) InputAdapter -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] (172) NativeHashAggregate -Input [2]: [i_item_id#38, #16#16] +Input [2]: [i_item_id#38, #16] Keys [1]: [i_item_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1043,37 +1043,37 @@ Input [2]: [#11#11, #18#18] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [2]: [i_item_id#11, #16#16] +Results [2]: [i_item_id#11, #45] (177) NativeShuffleExchange -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=18] (178) ShuffleQueryStage -Output [2]: [i_item_id#11, #16#16] +Output [2]: [i_item_id#11, #45] Arguments: X (179) AQEShuffleRead -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Arguments: coalesced (180) InputAdapter -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] (181) NativeHashAggregate -Input [2]: [i_item_id#11, #16#16] +Input [2]: [i_item_id#11, #45] Keys [1]: [i_item_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_item_id#11, sum(total_sales#18)#45] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_item_id#11, sum(total_sales#18)#46] (182) NativeProject -Output [2]: [i_item_id#11, sum(total_sales#18)#45 AS total_sales#46] -Input [2]: [i_item_id#11, sum(total_sales#18)#45] +Output [2]: [i_item_id#11, sum(total_sales#18)#46 AS total_sales#47] +Input [2]: [i_item_id#11, sum(total_sales#18)#46] (183) NativeTakeOrdered -Input [2]: [i_item_id#11, total_sales#46] -Arguments: X, [i_item_id#11 ASC NULLS FIRST, total_sales#46 ASC NULLS FIRST] +Input [2]: [i_item_id#11, total_sales#47] +Arguments: X, [i_item_id#11 ASC NULLS FIRST, total_sales#47 ASC NULLS FIRST] (184) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_item_sk#2, ss_addr_sk#3, ss_ext_sales_price#4] @@ -1247,14 +1247,14 @@ Input [2]: [ss_ext_sales_price#4, i_item_id#11] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum#15] -Results [2]: [i_item_id#11, sum#47] +Results [2]: [i_item_id#11, sum#48] (221) Exchange -Input [2]: [i_item_id#11, sum#47] +Input [2]: [i_item_id#11, sum#48] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=27] (222) HashAggregate -Input [2]: [i_item_id#11, sum#47] +Input [2]: [i_item_id#11, sum#48] Keys [1]: [i_item_id#11] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#4))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#4))#17] @@ -1280,19 +1280,19 @@ Input [4]: [cs_sold_date_sk#19, cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_ Arguments: [cs_sold_date_sk#19 ASC NULLS FIRST], false, 0 (227) Scan parquet -Output [3]: [d_date_sk#23, d_year#48, d_moy#49] +Output [3]: [d_date_sk#23, d_year#49, d_moy#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,1998), EqualTo(d_moy,9), IsNotNull(d_date_sk)] ReadSchema: struct (228) Filter -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] -Condition : ((((isnotnull(d_year#48) AND isnotnull(d_moy#49)) AND (d_year#48 = 1998)) AND (d_moy#49 = 9)) AND isnotnull(d_date_sk#23)) +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] +Condition : ((((isnotnull(d_year#49) AND isnotnull(d_moy#50)) AND (d_year#49 = 1998)) AND (d_moy#50 = 9)) AND isnotnull(d_date_sk#23)) (229) Project Output [1]: [d_date_sk#23] -Input [3]: [d_date_sk#23, d_year#48, d_moy#49] +Input [3]: [d_date_sk#23, d_year#49, d_moy#50] (230) Exchange Input [1]: [d_date_sk#23] @@ -1321,19 +1321,19 @@ Input [3]: [cs_bill_addr_sk#20, cs_item_sk#21, cs_ext_sales_price#22] Arguments: [cs_bill_addr_sk#20 ASC NULLS FIRST], false, 0 (236) Scan parquet -Output [2]: [ca_address_sk#24, ca_gmt_offset#50] +Output [2]: [ca_address_sk#24, ca_gmt_offset#51] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (237) Filter -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] -Condition : ((isnotnull(ca_gmt_offset#50) AND (ca_gmt_offset#50 = -5.00)) AND isnotnull(ca_address_sk#24)) +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] +Condition : ((isnotnull(ca_gmt_offset#51) AND (ca_gmt_offset#51 = -5.00)) AND isnotnull(ca_address_sk#24)) (238) Project Output [1]: [ca_address_sk#24] -Input [2]: [ca_address_sk#24, ca_gmt_offset#50] +Input [2]: [ca_address_sk#24, ca_gmt_offset#51] (239) Exchange Input [1]: [ca_address_sk#24] @@ -1381,31 +1381,31 @@ Input [2]: [i_item_sk#25, i_item_id#26] Arguments: [i_item_id#26 ASC NULLS FIRST], false, 0 (249) Scan parquet -Output [2]: [i_item_id#51, i_category#52] +Output [2]: [i_item_id#52, i_category#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_category), EqualTo(i_category,Music)] ReadSchema: struct (250) Filter -Input [2]: [i_item_id#51, i_category#52] -Condition : (isnotnull(i_category#52) AND (i_category#52 = Music)) +Input [2]: [i_item_id#52, i_category#53] +Condition : (isnotnull(i_category#53) AND (i_category#53 = Music)) (251) Project -Output [1]: [i_item_id#51] -Input [2]: [i_item_id#51, i_category#52] +Output [1]: [i_item_id#52] +Input [2]: [i_item_id#52, i_category#53] (252) Exchange -Input [1]: [i_item_id#51] -Arguments: hashpartitioning(i_item_id#51, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [1]: [i_item_id#52] +Arguments: hashpartitioning(i_item_id#52, 100), ENSURE_REQUIREMENTS, [plan_id=34] (253) Sort -Input [1]: [i_item_id#51] -Arguments: [i_item_id#51 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_id#52] +Arguments: [i_item_id#52 ASC NULLS FIRST], false, 0 (254) SortMergeJoin Left keys [1]: [i_item_id#26] -Right keys [1]: [i_item_id#51] +Right keys [1]: [i_item_id#52] Join type: LeftSemi Join condition: None @@ -1432,14 +1432,14 @@ Input [2]: [cs_ext_sales_price#22, i_item_id#26] Keys [1]: [i_item_id#26] Functions [1]: [partial_sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum#28] -Results [2]: [i_item_id#26, sum#53] +Results [2]: [i_item_id#26, sum#54] (260) Exchange -Input [2]: [i_item_id#26, sum#53] +Input [2]: [i_item_id#26, sum#54] Arguments: hashpartitioning(i_item_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=36] (261) HashAggregate -Input [2]: [i_item_id#26, sum#53] +Input [2]: [i_item_id#26, sum#54] Keys [1]: [i_item_id#26] Functions [1]: [sum(UnscaledValue(cs_ext_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(cs_ext_sales_price#22))#29] @@ -1465,19 +1465,19 @@ Input [4]: [ws_sold_date_sk#31, ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_ Arguments: [ws_sold_date_sk#31 ASC NULLS FIRST], false, 0 (266) Scan parquet -Output [3]: [d_date_sk#35, d_year#54, d_moy#55] +Output [3]: [d_date_sk#35, d_year#55, d_moy#56] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,1998), EqualTo(d_moy,9), IsNotNull(d_date_sk)] ReadSchema: struct (267) Filter -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] -Condition : ((((isnotnull(d_year#54) AND isnotnull(d_moy#55)) AND (d_year#54 = 1998)) AND (d_moy#55 = 9)) AND isnotnull(d_date_sk#35)) +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] +Condition : ((((isnotnull(d_year#55) AND isnotnull(d_moy#56)) AND (d_year#55 = 1998)) AND (d_moy#56 = 9)) AND isnotnull(d_date_sk#35)) (268) Project Output [1]: [d_date_sk#35] -Input [3]: [d_date_sk#35, d_year#54, d_moy#55] +Input [3]: [d_date_sk#35, d_year#55, d_moy#56] (269) Exchange Input [1]: [d_date_sk#35] @@ -1506,19 +1506,19 @@ Input [3]: [ws_item_sk#32, ws_bill_addr_sk#33, ws_ext_sales_price#34] Arguments: [ws_bill_addr_sk#33 ASC NULLS FIRST], false, 0 (275) Scan parquet -Output [2]: [ca_address_sk#36, ca_gmt_offset#56] +Output [2]: [ca_address_sk#36, ca_gmt_offset#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_gmt_offset), EqualTo(ca_gmt_offset,-5.00), IsNotNull(ca_address_sk)] ReadSchema: struct (276) Filter -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] -Condition : ((isnotnull(ca_gmt_offset#56) AND (ca_gmt_offset#56 = -5.00)) AND isnotnull(ca_address_sk#36)) +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] +Condition : ((isnotnull(ca_gmt_offset#57) AND (ca_gmt_offset#57 = -5.00)) AND isnotnull(ca_address_sk#36)) (277) Project Output [1]: [ca_address_sk#36] -Input [2]: [ca_address_sk#36, ca_gmt_offset#56] +Input [2]: [ca_address_sk#36, ca_gmt_offset#57] (278) Exchange Input [1]: [ca_address_sk#36] @@ -1566,31 +1566,31 @@ Input [2]: [i_item_sk#37, i_item_id#38] Arguments: [i_item_id#38 ASC NULLS FIRST], false, 0 (288) Scan parquet -Output [2]: [i_item_id#57, i_category#58] +Output [2]: [i_item_id#58, i_category#59] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_category), EqualTo(i_category,Music)] ReadSchema: struct (289) Filter -Input [2]: [i_item_id#57, i_category#58] -Condition : (isnotnull(i_category#58) AND (i_category#58 = Music)) +Input [2]: [i_item_id#58, i_category#59] +Condition : (isnotnull(i_category#59) AND (i_category#59 = Music)) (290) Project -Output [1]: [i_item_id#57] -Input [2]: [i_item_id#57, i_category#58] +Output [1]: [i_item_id#58] +Input [2]: [i_item_id#58, i_category#59] (291) Exchange -Input [1]: [i_item_id#57] -Arguments: hashpartitioning(i_item_id#57, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [1]: [i_item_id#58] +Arguments: hashpartitioning(i_item_id#58, 100), ENSURE_REQUIREMENTS, [plan_id=43] (292) Sort -Input [1]: [i_item_id#57] -Arguments: [i_item_id#57 ASC NULLS FIRST], false, 0 +Input [1]: [i_item_id#58] +Arguments: [i_item_id#58 ASC NULLS FIRST], false, 0 (293) SortMergeJoin Left keys [1]: [i_item_id#38] -Right keys [1]: [i_item_id#57] +Right keys [1]: [i_item_id#58] Join type: LeftSemi Join condition: None @@ -1617,14 +1617,14 @@ Input [2]: [ws_ext_sales_price#34, i_item_id#38] Keys [1]: [i_item_id#38] Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum#40] -Results [2]: [i_item_id#38, sum#59] +Results [2]: [i_item_id#38, sum#60] (299) Exchange -Input [2]: [i_item_id#38, sum#59] +Input [2]: [i_item_id#38, sum#60] Arguments: hashpartitioning(i_item_id#38, 100), ENSURE_REQUIREMENTS, [plan_id=45] (300) HashAggregate -Input [2]: [i_item_id#38, sum#59] +Input [2]: [i_item_id#38, sum#60] Keys [1]: [i_item_id#38] Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#34))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#34))#41] @@ -1637,24 +1637,24 @@ Input [2]: [i_item_id#11, total_sales#18] Keys [1]: [i_item_id#11] Functions [1]: [partial_sum(total_sales#18)] Aggregate Attributes [2]: [sum#43, isEmpty#44] -Results [3]: [i_item_id#11, sum#60, isEmpty#61] +Results [3]: [i_item_id#11, sum#61, isEmpty#62] (303) Exchange -Input [3]: [i_item_id#11, sum#60, isEmpty#61] +Input [3]: [i_item_id#11, sum#61, isEmpty#62] Arguments: hashpartitioning(i_item_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=46] (304) HashAggregate -Input [3]: [i_item_id#11, sum#60, isEmpty#61] +Input [3]: [i_item_id#11, sum#61, isEmpty#62] Keys [1]: [i_item_id#11] Functions [1]: [sum(total_sales#18)] -Aggregate Attributes [1]: [sum(total_sales#18)#45] -Results [2]: [i_item_id#11, sum(total_sales#18)#45 AS total_sales#46] +Aggregate Attributes [1]: [sum(total_sales#18)#46] +Results [2]: [i_item_id#11, sum(total_sales#18)#46 AS total_sales#47] (305) TakeOrderedAndProject -Input [2]: [i_item_id#11, total_sales#46] -Arguments: X, [i_item_id#11 ASC NULLS FIRST, total_sales#46 ASC NULLS FIRST], [i_item_id#11, total_sales#46] +Input [2]: [i_item_id#11, total_sales#47] +Arguments: X, [i_item_id#11 ASC NULLS FIRST, total_sales#47 ASC NULLS FIRST], [i_item_id#11, total_sales#47] (306) AdaptiveSparkPlan -Output [2]: [i_item_id#11, total_sales#46] +Output [2]: [i_item_id#11, total_sales#47] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt index b8eabc015..6a37c9f2e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt @@ -715,18 +715,18 @@ Input [1]: [_c0#22] Keys: [] Functions [1]: [partial_sum(_c0#22)] Aggregate Attributes [1]: [sum#23] -Results [1]: [#24#24] +Results [1]: [#24] (101) NativeShuffleExchange -Input [1]: [#24#24] +Input [1]: [#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=13] (102) ShuffleQueryStage -Output [1]: [#24#24] +Output [1]: [#24] Arguments: X (103) NativeHashAggregate -Input [1]: [#24#24] +Input [1]: [#24] Keys: [] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#6))#25] @@ -1015,18 +1015,18 @@ Input [1]: [_c0#38] Keys: [] Functions [1]: [partial_sum(_c0#38)] Aggregate Attributes [1]: [sum#39] -Results [1]: [#24#24] +Results [1]: [#24] (175) NativeShuffleExchange -Input [1]: [#24#24] +Input [1]: [#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=19] (176) ShuffleQueryStage -Output [1]: [#24#24] +Output [1]: [#24] Arguments: X (177) NativeHashAggregate -Input [1]: [#24#24] +Input [1]: [#24] Keys: [] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#31))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#31))#40] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q62.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q62.txt index fb391275f..76af56ebc 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q62.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q62.txt @@ -396,25 +396,25 @@ Input [8]: [_groupingexpression#14, sm_type#9, web_name#11, _c3#15, _c4#16, _c5# Keys [3]: [_groupingexpression#14, sm_type#9, web_name#11] Functions [5]: [partial_sum(_c3#15), partial_sum(_c4#16), partial_sum(_c5#17), partial_sum(_c6#18), partial_sum(_c7#19)] Aggregate Attributes [5]: [sum#20, sum#21, sum#22, sum#23, sum#24] -Results [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Results [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] (67) NativeShuffleExchange -Input [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] Arguments: hashpartitioning(_groupingexpression#14, sm_type#9, web_name#11, 100), ENSURE_REQUIREMENTS, [plan_id=9] (68) ShuffleQueryStage -Output [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Output [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] Arguments: X (69) AQEShuffleRead -Input [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] Arguments: coalesced (70) InputAdapter -Input [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] (71) NativeHashAggregate -Input [4]: [_groupingexpression#14, sm_type#9, web_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, web_name#11, #25, #25, #25, #25, #25] Keys [3]: [_groupingexpression#14, sm_type#9, web_name#11] Functions [5]: [sum(CASE WHEN ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END), sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 30) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END), sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 60) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END), sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 90) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END), sum(CASE WHEN ((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)] Aggregate Attributes [5]: [sum(CASE WHEN ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END)#26, sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 30) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END)#27, sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 60) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END)#28, sum(CASE WHEN (((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 90) AND ((ws_ship_date_sk#2 - ws_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END)#29, sum(CASE WHEN ((ws_ship_date_sk#2 - ws_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)#30] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt index 1ef1f32bd..c654ddc1f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt @@ -329,25 +329,25 @@ Input [3]: [i_manager_id#5, d_moy#16, _c2#18] Keys [2]: [i_manager_id#5, d_moy#16] Functions [1]: [partial_sum(_c2#18)] Aggregate Attributes [1]: [sum#19] -Results [3]: [i_manager_id#5, d_moy#16, #20#20] +Results [3]: [i_manager_id#5, d_moy#16, #20] (53) NativeShuffleExchange -Input [3]: [i_manager_id#5, d_moy#16, #20#20] +Input [3]: [i_manager_id#5, d_moy#16, #20] Arguments: hashpartitioning(i_manager_id#5, d_moy#16, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [3]: [i_manager_id#5, d_moy#16, #20#20] +Output [3]: [i_manager_id#5, d_moy#16, #20] Arguments: X (55) AQEShuffleRead -Input [3]: [i_manager_id#5, d_moy#16, #20#20] +Input [3]: [i_manager_id#5, d_moy#16, #20] Arguments: coalesced (56) InputAdapter -Input [3]: [i_manager_id#5, d_moy#16, #20#20] +Input [3]: [i_manager_id#5, d_moy#16, #20] (57) NativeHashAggregate -Input [3]: [i_manager_id#5, d_moy#16, #20#20] +Input [3]: [i_manager_id#5, d_moy#16, #20] Keys [2]: [i_manager_id#5, d_moy#16] Functions [1]: [sum(UnscaledValue(ss_sales_price#13))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#13))#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt index d4bbb1865..830c34425 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt @@ -998,41 +998,41 @@ Input [3]: [cs_item_sk#15, _c1#23, _c2#24] Keys [1]: [cs_item_sk#15] Functions [2]: [partial_sum(_c1#23), partial_sum(_c2#24)] Aggregate Attributes [3]: [sum#25, sum#26, isEmpty#27] -Results [2]: [cs_item_sk#15, #28#28] +Results [3]: [cs_item_sk#15, #28, #29] (44) NativeShuffleExchange -Input [2]: [cs_item_sk#15, #28#28] +Input [3]: [cs_item_sk#15, #28, #29] Arguments: hashpartitioning(cs_item_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=6] (45) ShuffleQueryStage -Output [2]: [cs_item_sk#15, #28#28] +Output [3]: [cs_item_sk#15, #28, #29] Arguments: X (46) AQEShuffleRead -Input [2]: [cs_item_sk#15, #28#28] +Input [3]: [cs_item_sk#15, #28, #29] Arguments: coalesced (47) InputAdapter -Input [2]: [cs_item_sk#15, #28#28] +Input [3]: [cs_item_sk#15, #28, #29] (48) NativeHashAggregate -Input [2]: [cs_item_sk#15, #28#28] +Input [3]: [cs_item_sk#15, #28, #29] Keys [1]: [cs_item_sk#15] Functions [2]: [sum(UnscaledValue(cs_ext_list_price#17)), sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))] -Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#17))#29, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30] -Results [3]: [cs_item_sk#15, sum(UnscaledValue(cs_ext_list_price#17))#29, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30] +Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#17))#30, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31] +Results [3]: [cs_item_sk#15, sum(UnscaledValue(cs_ext_list_price#17))#30, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31] (49) NativeProject -Output [3]: [cs_item_sk#15, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#17))#29,17,2) AS sale#31, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30 AS refund#32] -Input [3]: [cs_item_sk#15, sum(UnscaledValue(cs_ext_list_price#17))#29, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30] +Output [3]: [cs_item_sk#15, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#17))#30,17,2) AS sale#32, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31 AS refund#33] +Input [3]: [cs_item_sk#15, sum(UnscaledValue(cs_ext_list_price#17))#30, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31] (50) NativeFilter -Input [3]: [cs_item_sk#15, sale#31, refund#32] -Condition : ((isnotnull(sale#31) AND isnotnull(refund#32)) AND (cast(sale#31 as decimal(21,2)) > (2 * refund#32))) +Input [3]: [cs_item_sk#15, sale#32, refund#33] +Condition : ((isnotnull(sale#32) AND isnotnull(refund#33)) AND (cast(sale#32 as decimal(21,2)) > (2 * refund#33))) (51) NativeProject Output [1]: [cs_item_sk#15] -Input [3]: [cs_item_sk#15, sale#31, refund#32] +Input [3]: [cs_item_sk#15, sale#32, refund#33] (52) NativeSort Input [1]: [cs_item_sk#15] @@ -1068,1774 +1068,1774 @@ Input [11]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, s Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false (529) Scan parquet -Output [2]: [d_date_sk#33, d_year#34] +Output [2]: [d_date_sk#34, d_year#35] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,1999), IsNotNull(d_date_sk)] ReadSchema: struct (61) InputAdapter -Input [2]: [d_date_sk#33, d_year#34] -Arguments: [#33, #34] +Input [2]: [d_date_sk#34, d_year#35] +Arguments: [#34, #35] (62) NativeFilter -Input [2]: [#33#33, #34#34] -Condition : ((isnotnull(d_year#34) AND (d_year#34 = 1999)) AND isnotnull(d_date_sk#33)) +Input [2]: [#34#34, #35#35] +Condition : ((isnotnull(d_year#35) AND (d_year#35 = 1999)) AND isnotnull(d_date_sk#34)) (63) NativeShuffleExchange -Input [2]: [#33#33, #34#34] -Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=8] +Input [2]: [#34#34, #35#35] +Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=8] (64) ShuffleQueryStage -Output [2]: [#33#33, #34#34] +Output [2]: [#34#34, #35#35] Arguments: X (65) AQEShuffleRead -Input [2]: [#33#33, #34#34] +Input [2]: [#34#34, #35#35] Arguments: coalesced (66) InputAdapter -Input [2]: [#33#33, #34#34] +Input [2]: [#34#34, #35#35] (67) NativeSort -Input [2]: [#33#33, #34#34] -Arguments: [d_date_sk#33 ASC NULLS FIRST], false +Input [2]: [#34#34, #35#35] +Arguments: [d_date_sk#34 ASC NULLS FIRST], false (68) NativeSortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#33] +Right keys [1]: [d_date_sk#34] Join type: Inner Join condition: None (69) NativeProject -Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] -Input [13]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, #33#33, #34#34] +Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] +Input [13]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, #34#34, #35#35] (70) NativeShuffleExchange -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: hashpartitioning(ss_store_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=9] (71) ShuffleQueryStage -Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: X (72) AQEShuffleRead -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: coalesced (73) InputAdapter -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] (74) NativeSort -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: [ss_store_sk#7 ASC NULLS FIRST], false (537) Scan parquet -Output [3]: [s_store_sk#35, s_store_name#36, s_zip#37] +Output [3]: [s_store_sk#36, s_store_name#37, s_zip#38] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_name), IsNotNull(s_zip)] ReadSchema: struct (76) InputAdapter -Input [3]: [s_store_sk#35, s_store_name#36, s_zip#37] -Arguments: [#35, #36, #37] +Input [3]: [s_store_sk#36, s_store_name#37, s_zip#38] +Arguments: [#36, #37, #38] (77) NativeFilter -Input [3]: [#35#35, #36#36, #37#37] -Condition : ((isnotnull(s_store_sk#35) AND isnotnull(s_store_name#36)) AND isnotnull(s_zip#37)) +Input [3]: [#36#36, #37#37, #38#38] +Condition : ((isnotnull(s_store_sk#36) AND isnotnull(s_store_name#37)) AND isnotnull(s_zip#38)) (78) NativeShuffleExchange -Input [3]: [#35#35, #36#36, #37#37] -Arguments: hashpartitioning(s_store_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [3]: [#36#36, #37#37, #38#38] +Arguments: hashpartitioning(s_store_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=10] (79) ShuffleQueryStage -Output [3]: [#35#35, #36#36, #37#37] +Output [3]: [#36#36, #37#37, #38#38] Arguments: X (80) AQEShuffleRead -Input [3]: [#35#35, #36#36, #37#37] +Input [3]: [#36#36, #37#37, #38#38] Arguments: coalesced (81) InputAdapter -Input [3]: [#35#35, #36#36, #37#37] +Input [3]: [#36#36, #37#37, #38#38] (82) NativeSort -Input [3]: [#35#35, #36#36, #37#37] -Arguments: [s_store_sk#35 ASC NULLS FIRST], false +Input [3]: [#36#36, #37#37, #38#38] +Arguments: [s_store_sk#36 ASC NULLS FIRST], false (83) NativeSortMergeJoin Left keys [1]: [ss_store_sk#7] -Right keys [1]: [s_store_sk#35] +Right keys [1]: [s_store_sk#36] Join type: Inner Join condition: None (84) NativeProject -Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] -Input [14]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, #35#35, #36#36, #37#37] +Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] +Input [14]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, #36#36, #37#37, #38#38] (85) NativeShuffleExchange -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: hashpartitioning(ss_customer_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=11] (86) ShuffleQueryStage -Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: X (87) AQEShuffleRead -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: coalesced (88) InputAdapter -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] (89) NativeSort -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: [ss_customer_sk#3 ASC NULLS FIRST], false (545) Scan parquet -Output [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Output [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_first_sales_date_sk), IsNotNull(c_first_shipto_date_sk), IsNotNull(c_current_cdemo_sk), IsNotNull(c_current_hdemo_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (91) InputAdapter -Input [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: [#38, #39, #40, #41, #42, #43] +Input [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: [#39, #40, #41, #42, #43, #44] (92) NativeFilter -Input [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Condition : (((((isnotnull(c_customer_sk#38) AND isnotnull(c_first_sales_date_sk#43)) AND isnotnull(c_first_shipto_date_sk#42)) AND isnotnull(c_current_cdemo_sk#39)) AND isnotnull(c_current_hdemo_sk#40)) AND isnotnull(c_current_addr_sk#41)) +Input [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Condition : (((((isnotnull(c_customer_sk#39) AND isnotnull(c_first_sales_date_sk#44)) AND isnotnull(c_first_shipto_date_sk#43)) AND isnotnull(c_current_cdemo_sk#40)) AND isnotnull(c_current_hdemo_sk#41)) AND isnotnull(c_current_addr_sk#42)) (93) NativeShuffleExchange -Input [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Arguments: hashpartitioning(c_customer_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Arguments: hashpartitioning(c_customer_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=12] (94) ShuffleQueryStage -Output [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Output [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] Arguments: X (95) AQEShuffleRead -Input [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Input [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] Arguments: coalesced (96) InputAdapter -Input [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Input [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] (97) NativeSort -Input [6]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Arguments: [c_customer_sk#38 ASC NULLS FIRST], false +Input [6]: [#39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Arguments: [c_customer_sk#39 ASC NULLS FIRST], false (98) NativeSortMergeJoin Left keys [1]: [ss_customer_sk#3] -Right keys [1]: [c_customer_sk#38] +Right keys [1]: [c_customer_sk#39] Join type: Inner Join condition: None (99) NativeProject -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Input [18]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Input [18]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] (100) NativeShuffleExchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: hashpartitioning(c_first_sales_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: hashpartitioning(c_first_sales_date_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=13] (101) ShuffleQueryStage -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] Arguments: X (102) AQEShuffleRead -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] Arguments: coalesced (103) InputAdapter -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] (104) NativeSort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: [c_first_sales_date_sk#43 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: [c_first_sales_date_sk#44 ASC NULLS FIRST], false (553) Scan parquet -Output [2]: [d_date_sk#44, d_year#45] +Output [2]: [d_date_sk#45, d_year#46] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date_sk)] ReadSchema: struct (106) InputAdapter -Input [2]: [d_date_sk#44, d_year#45] -Arguments: [#44, #45] +Input [2]: [d_date_sk#45, d_year#46] +Arguments: [#45, #46] (107) NativeFilter -Input [2]: [#44#44, #45#45] -Condition : isnotnull(d_date_sk#44) +Input [2]: [#45#45, #46#46] +Condition : isnotnull(d_date_sk#45) (108) NativeShuffleExchange -Input [2]: [#44#44, #45#45] -Arguments: hashpartitioning(d_date_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [2]: [#45#45, #46#46] +Arguments: hashpartitioning(d_date_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=14] (109) ShuffleQueryStage -Output [2]: [#44#44, #45#45] +Output [2]: [#45#45, #46#46] Arguments: X (110) AQEShuffleRead -Input [2]: [#44#44, #45#45] +Input [2]: [#45#45, #46#46] Arguments: coalesced (111) InputAdapter -Input [2]: [#44#44, #45#45] +Input [2]: [#45#45, #46#46] (112) NativeSort -Input [2]: [#44#44, #45#45] -Arguments: [d_date_sk#44 ASC NULLS FIRST], false +Input [2]: [#45#45, #46#46] +Arguments: [d_date_sk#45 ASC NULLS FIRST], false (113) NativeSortMergeJoin -Left keys [1]: [c_first_sales_date_sk#43] -Right keys [1]: [d_date_sk#44] +Left keys [1]: [c_first_sales_date_sk#44] +Right keys [1]: [d_date_sk#45] Join type: Inner Join condition: None (114) NativeProject -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43, #44#44, #45#45] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44, #45#45, #46#46] (115) NativeShuffleExchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Arguments: hashpartitioning(c_first_shipto_date_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Arguments: hashpartitioning(c_first_shipto_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=15] (116) ShuffleQueryStage -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] Arguments: X (117) AQEShuffleRead -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] Arguments: coalesced (118) InputAdapter -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] (119) NativeSort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Arguments: [c_first_shipto_date_sk#42 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Arguments: [c_first_shipto_date_sk#43 ASC NULLS FIRST], false (120) ReusedExchange [Reuses operator id: 108] -Output [2]: [d_date_sk#46, d_year#47] +Output [2]: [d_date_sk#47, d_year#48] (121) ShuffleQueryStage -Output [2]: [d_date_sk#46, d_year#47] +Output [2]: [d_date_sk#47, d_year#48] Arguments: X (122) AQEShuffleRead -Input [2]: [d_date_sk#46, d_year#47] +Input [2]: [d_date_sk#47, d_year#48] Arguments: coalesced (123) InputAdapter -Input [2]: [d_date_sk#46, d_year#47] -Arguments: [#46, #47] +Input [2]: [d_date_sk#47, d_year#48] +Arguments: [#47, #48] (124) InputAdapter -Input [2]: [#46#46, #47#47] +Input [2]: [#47#47, #48#48] (125) NativeSort -Input [2]: [#46#46, #47#47] -Arguments: [d_date_sk#46 ASC NULLS FIRST], false +Input [2]: [#47#47, #48#48] +Arguments: [d_date_sk#47 ASC NULLS FIRST], false (126) NativeSortMergeJoin -Left keys [1]: [c_first_shipto_date_sk#42] -Right keys [1]: [d_date_sk#46] +Left keys [1]: [c_first_shipto_date_sk#43] +Right keys [1]: [d_date_sk#47] Join type: Inner Join condition: None (127) NativeProject -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45, #46#46, #47#47] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46, #47#47, #48#48] (128) NativeShuffleExchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_cdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=16] (129) ShuffleQueryStage -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: X (130) AQEShuffleRead -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: coalesced (131) InputAdapter -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] (132) NativeSort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_cdemo_sk#4 ASC NULLS FIRST], false (569) Scan parquet -Output [2]: [cd_demo_sk#48, cd_marital_status#49] +Output [2]: [cd_demo_sk#49, cd_marital_status#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cd_demo_sk), IsNotNull(cd_marital_status)] ReadSchema: struct (134) InputAdapter -Input [2]: [cd_demo_sk#48, cd_marital_status#49] -Arguments: [#48, #49] +Input [2]: [cd_demo_sk#49, cd_marital_status#50] +Arguments: [#49, #50] (135) NativeFilter -Input [2]: [#48#48, #49#49] -Condition : (isnotnull(cd_demo_sk#48) AND isnotnull(cd_marital_status#49)) +Input [2]: [#49#49, #50#50] +Condition : (isnotnull(cd_demo_sk#49) AND isnotnull(cd_marital_status#50)) (136) NativeShuffleExchange -Input [2]: [#48#48, #49#49] -Arguments: hashpartitioning(cd_demo_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=17] +Input [2]: [#49#49, #50#50] +Arguments: hashpartitioning(cd_demo_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=17] (137) ShuffleQueryStage -Output [2]: [#48#48, #49#49] +Output [2]: [#49#49, #50#50] Arguments: X (138) AQEShuffleRead -Input [2]: [#48#48, #49#49] +Input [2]: [#49#49, #50#50] Arguments: coalesced (139) InputAdapter -Input [2]: [#48#48, #49#49] +Input [2]: [#49#49, #50#50] (140) NativeSort -Input [2]: [#48#48, #49#49] -Arguments: [cd_demo_sk#48 ASC NULLS FIRST], false +Input [2]: [#49#49, #50#50] +Arguments: [cd_demo_sk#49 ASC NULLS FIRST], false (141) NativeSortMergeJoin Left keys [1]: [ss_cdemo_sk#4] -Right keys [1]: [cd_demo_sk#48] +Right keys [1]: [cd_demo_sk#49] Join type: Inner Join condition: None (142) NativeProject -Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, #48#48, #49#49] +Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, #49#49, #50#50] (143) NativeShuffleExchange -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Arguments: hashpartitioning(c_current_cdemo_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=18] +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Arguments: hashpartitioning(c_current_cdemo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=18] (144) ShuffleQueryStage -Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] +Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] Arguments: X (145) AQEShuffleRead -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] Arguments: coalesced (146) InputAdapter -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] (147) NativeSort -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Arguments: [c_current_cdemo_sk#39 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Arguments: [c_current_cdemo_sk#40 ASC NULLS FIRST], false (148) ReusedExchange [Reuses operator id: 136] -Output [2]: [cd_demo_sk#50, cd_marital_status#51] +Output [2]: [cd_demo_sk#51, cd_marital_status#52] (149) ShuffleQueryStage -Output [2]: [cd_demo_sk#50, cd_marital_status#51] +Output [2]: [cd_demo_sk#51, cd_marital_status#52] Arguments: X (150) AQEShuffleRead -Input [2]: [cd_demo_sk#50, cd_marital_status#51] +Input [2]: [cd_demo_sk#51, cd_marital_status#52] Arguments: coalesced (151) InputAdapter -Input [2]: [cd_demo_sk#50, cd_marital_status#51] -Arguments: [#50, #51] +Input [2]: [cd_demo_sk#51, cd_marital_status#52] +Arguments: [#51, #52] (152) InputAdapter -Input [2]: [#50#50, #51#51] +Input [2]: [#51#51, #52#52] (153) NativeSort -Input [2]: [#50#50, #51#51] -Arguments: [cd_demo_sk#50 ASC NULLS FIRST], false +Input [2]: [#51#51, #52#52] +Arguments: [cd_demo_sk#51 ASC NULLS FIRST], false (154) SortMergeJoin [codegen id : X] -Left keys [1]: [c_current_cdemo_sk#39] -Right keys [1]: [cd_demo_sk#50] +Left keys [1]: [c_current_cdemo_sk#40] +Right keys [1]: [cd_demo_sk#51] Join type: Inner -Join condition: NOT (cd_marital_status#49 = cd_marital_status#51) +Join condition: NOT (cd_marital_status#50 = cd_marital_status#52) (155) Project [codegen id : X] -Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [18]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49, #50#50, #51#51] +Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [18]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50, #51#51, #52#52] (156) ConvertToNative -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] (157) NativeShuffleExchange -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_promo_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=19] (158) ShuffleQueryStage -Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: X (159) AQEShuffleRead -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: coalesced (160) InputAdapter -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] (161) NativeSort -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_promo_sk#8 ASC NULLS FIRST], false (585) Scan parquet -Output [1]: [p_promo_sk#52] +Output [1]: [p_promo_sk#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(p_promo_sk)] ReadSchema: struct (163) InputAdapter -Input [1]: [p_promo_sk#52] -Arguments: [#52] +Input [1]: [p_promo_sk#53] +Arguments: [#53] (164) NativeFilter -Input [1]: [#52#52] -Condition : isnotnull(p_promo_sk#52) +Input [1]: [#53#53] +Condition : isnotnull(p_promo_sk#53) (165) NativeShuffleExchange -Input [1]: [#52#52] -Arguments: hashpartitioning(p_promo_sk#52, 100), ENSURE_REQUIREMENTS, [plan_id=20] +Input [1]: [#53#53] +Arguments: hashpartitioning(p_promo_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=20] (166) ShuffleQueryStage -Output [1]: [#52#52] +Output [1]: [#53#53] Arguments: X (167) AQEShuffleRead -Input [1]: [#52#52] +Input [1]: [#53#53] Arguments: coalesced (168) InputAdapter -Input [1]: [#52#52] +Input [1]: [#53#53] (169) NativeSort -Input [1]: [#52#52] -Arguments: [p_promo_sk#52 ASC NULLS FIRST], false +Input [1]: [#53#53] +Arguments: [p_promo_sk#53 ASC NULLS FIRST], false (170) NativeSortMergeJoin Left keys [1]: [ss_promo_sk#8] -Right keys [1]: [p_promo_sk#52] +Right keys [1]: [p_promo_sk#53] Join type: Inner Join condition: None (171) NativeProject -Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, #52#52] +Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, #53#53] (172) NativeShuffleExchange -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_hdemo_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=21] (173) ShuffleQueryStage -Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: X (174) AQEShuffleRead -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: coalesced (175) InputAdapter -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] (176) NativeSort -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_hdemo_sk#5 ASC NULLS FIRST], false (593) Scan parquet -Output [2]: [hd_demo_sk#53, hd_income_band_sk#54] +Output [2]: [hd_demo_sk#54, hd_income_band_sk#55] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)] ReadSchema: struct (178) InputAdapter -Input [2]: [hd_demo_sk#53, hd_income_band_sk#54] -Arguments: [#53, #54] +Input [2]: [hd_demo_sk#54, hd_income_band_sk#55] +Arguments: [#54, #55] (179) NativeFilter -Input [2]: [#53#53, #54#54] -Condition : (isnotnull(hd_demo_sk#53) AND isnotnull(hd_income_band_sk#54)) +Input [2]: [#54#54, #55#55] +Condition : (isnotnull(hd_demo_sk#54) AND isnotnull(hd_income_band_sk#55)) (180) NativeShuffleExchange -Input [2]: [#53#53, #54#54] -Arguments: hashpartitioning(hd_demo_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [2]: [#54#54, #55#55] +Arguments: hashpartitioning(hd_demo_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=22] (181) ShuffleQueryStage -Output [2]: [#53#53, #54#54] +Output [2]: [#54#54, #55#55] Arguments: X (182) AQEShuffleRead -Input [2]: [#53#53, #54#54] +Input [2]: [#54#54, #55#55] Arguments: coalesced (183) InputAdapter -Input [2]: [#53#53, #54#54] +Input [2]: [#54#54, #55#55] (184) NativeSort -Input [2]: [#53#53, #54#54] -Arguments: [hd_demo_sk#53 ASC NULLS FIRST], false +Input [2]: [#54#54, #55#55] +Arguments: [hd_demo_sk#54 ASC NULLS FIRST], false (185) NativeSortMergeJoin Left keys [1]: [ss_hdemo_sk#5] -Right keys [1]: [hd_demo_sk#53] +Right keys [1]: [hd_demo_sk#54] Join type: Inner Join condition: None (186) NativeProject -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, #53#53, #54#54] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, #54#54, #55#55] (187) NativeShuffleExchange -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Arguments: hashpartitioning(c_current_hdemo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Arguments: hashpartitioning(c_current_hdemo_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=23] (188) ShuffleQueryStage -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] Arguments: X (189) AQEShuffleRead -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] Arguments: coalesced (190) InputAdapter -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] (191) NativeSort -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Arguments: [c_current_hdemo_sk#40 ASC NULLS FIRST], false +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Arguments: [c_current_hdemo_sk#41 ASC NULLS FIRST], false (192) ReusedExchange [Reuses operator id: 180] -Output [2]: [hd_demo_sk#55, hd_income_band_sk#56] +Output [2]: [hd_demo_sk#56, hd_income_band_sk#57] (193) ShuffleQueryStage -Output [2]: [hd_demo_sk#55, hd_income_band_sk#56] +Output [2]: [hd_demo_sk#56, hd_income_band_sk#57] Arguments: X (194) AQEShuffleRead -Input [2]: [hd_demo_sk#55, hd_income_band_sk#56] +Input [2]: [hd_demo_sk#56, hd_income_band_sk#57] Arguments: coalesced (195) InputAdapter -Input [2]: [hd_demo_sk#55, hd_income_band_sk#56] -Arguments: [#55, #56] +Input [2]: [hd_demo_sk#56, hd_income_band_sk#57] +Arguments: [#56, #57] (196) InputAdapter -Input [2]: [#55#55, #56#56] +Input [2]: [#56#56, #57#57] (197) NativeSort -Input [2]: [#55#55, #56#56] -Arguments: [hd_demo_sk#55 ASC NULLS FIRST], false +Input [2]: [#56#56, #57#57] +Arguments: [hd_demo_sk#56 ASC NULLS FIRST], false (198) NativeSortMergeJoin -Left keys [1]: [c_current_hdemo_sk#40] -Right keys [1]: [hd_demo_sk#55] +Left keys [1]: [c_current_hdemo_sk#41] +Right keys [1]: [hd_demo_sk#56] Join type: Inner Join condition: None (199) NativeProject -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] -Input [15]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, #55#55, #56#56] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] +Input [15]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, #56#56, #57#57] (200) NativeShuffleExchange -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: hashpartitioning(ss_addr_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=24] (201) ShuffleQueryStage -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: X (202) AQEShuffleRead -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: coalesced (203) InputAdapter -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] (204) NativeSort -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: [ss_addr_sk#6 ASC NULLS FIRST], false (609) Scan parquet -Output [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Output [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk)] ReadSchema: struct (206) InputAdapter -Input [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: [#57, #58, #59, #60, #61] +Input [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: [#58, #59, #60, #61, #62] (207) NativeFilter -Input [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] -Condition : isnotnull(ca_address_sk#57) +Input [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] +Condition : isnotnull(ca_address_sk#58) (208) NativeShuffleExchange -Input [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] -Arguments: hashpartitioning(ca_address_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] +Arguments: hashpartitioning(ca_address_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=25] (209) ShuffleQueryStage -Output [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] +Output [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] Arguments: X (210) AQEShuffleRead -Input [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] +Input [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] Arguments: coalesced (211) InputAdapter -Input [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] +Input [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] (212) NativeSort -Input [5]: [#57#57, #58#58, #59#59, #60#60, #61#61] -Arguments: [ca_address_sk#57 ASC NULLS FIRST], false +Input [5]: [#58#58, #59#59, #60#60, #61#61, #62#62] +Arguments: [ca_address_sk#58 ASC NULLS FIRST], false (213) NativeSortMergeJoin Left keys [1]: [ss_addr_sk#6] -Right keys [1]: [ca_address_sk#57] +Right keys [1]: [ca_address_sk#58] Join type: Inner Join condition: None (214) NativeProject -Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Input [18]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, #57#57, #58#58, #59#59, #60#60, #61#61] +Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Input [18]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, #58#58, #59#59, #60#60, #61#61, #62#62] (215) NativeShuffleExchange -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: hashpartitioning(c_current_addr_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: hashpartitioning(c_current_addr_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=26] (216) ShuffleQueryStage -Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] Arguments: X (217) AQEShuffleRead -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] Arguments: coalesced (218) InputAdapter -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] (219) NativeSort -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: [c_current_addr_sk#41 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: [c_current_addr_sk#42 ASC NULLS FIRST], false (220) ReusedExchange [Reuses operator id: 208] -Output [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] (221) ShuffleQueryStage -Output [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: X (222) AQEShuffleRead -Input [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: coalesced (223) InputAdapter -Input [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [#62, #63, #64, #65, #66] +Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [#63, #64, #65, #66, #67] (224) InputAdapter -Input [5]: [#62#62, #63#63, #64#64, #65#65, #66#66] +Input [5]: [#63#63, #64#64, #65#65, #66#66, #67#67] (225) NativeSort -Input [5]: [#62#62, #63#63, #64#64, #65#65, #66#66] -Arguments: [ca_address_sk#62 ASC NULLS FIRST], false +Input [5]: [#63#63, #64#64, #65#65, #66#66, #67#67] +Arguments: [ca_address_sk#63 ASC NULLS FIRST], false (226) NativeSortMergeJoin -Left keys [1]: [c_current_addr_sk#41] -Right keys [1]: [ca_address_sk#62] +Left keys [1]: [c_current_addr_sk#42] +Right keys [1]: [ca_address_sk#63] Join type: Inner Join condition: None (227) NativeProject -Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [21]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, #62#62, #63#63, #64#64, #65#65, #66#66] +Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [21]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, #63#63, #64#64, #65#65, #66#66, #67#67] (228) NativeShuffleExchange -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: hashpartitioning(hd_income_band_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: hashpartitioning(hd_income_band_sk#55, 100), ENSURE_REQUIREMENTS, [plan_id=27] (229) ShuffleQueryStage -Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: X (230) AQEShuffleRead -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: coalesced (231) InputAdapter -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] (232) NativeSort -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [hd_income_band_sk#54 ASC NULLS FIRST], false +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [hd_income_band_sk#55 ASC NULLS FIRST], false (625) Scan parquet -Output [1]: [ib_income_band_sk#67] +Output [1]: [ib_income_band_sk#68] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ib_income_band_sk)] ReadSchema: struct (234) InputAdapter -Input [1]: [ib_income_band_sk#67] -Arguments: [#67] +Input [1]: [ib_income_band_sk#68] +Arguments: [#68] (235) NativeFilter -Input [1]: [#67#67] -Condition : isnotnull(ib_income_band_sk#67) +Input [1]: [#68#68] +Condition : isnotnull(ib_income_band_sk#68) (236) NativeShuffleExchange -Input [1]: [#67#67] -Arguments: hashpartitioning(ib_income_band_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [1]: [#68#68] +Arguments: hashpartitioning(ib_income_band_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=28] (237) ShuffleQueryStage -Output [1]: [#67#67] +Output [1]: [#68#68] Arguments: X (238) AQEShuffleRead -Input [1]: [#67#67] +Input [1]: [#68#68] Arguments: coalesced (239) InputAdapter -Input [1]: [#67#67] +Input [1]: [#68#68] (240) NativeSort -Input [1]: [#67#67] -Arguments: [ib_income_band_sk#67 ASC NULLS FIRST], false +Input [1]: [#68#68] +Arguments: [ib_income_band_sk#68 ASC NULLS FIRST], false (241) NativeSortMergeJoin -Left keys [1]: [hd_income_band_sk#54] -Right keys [1]: [ib_income_band_sk#67] +Left keys [1]: [hd_income_band_sk#55] +Right keys [1]: [ib_income_band_sk#68] Join type: Inner Join condition: None (242) NativeProject -Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [20]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, #67#67] +Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [20]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, #68#68] (243) NativeShuffleExchange -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: hashpartitioning(hd_income_band_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: hashpartitioning(hd_income_band_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=29] (244) ShuffleQueryStage -Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: X (245) AQEShuffleRead -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: coalesced (246) InputAdapter -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] (247) NativeSort -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [hd_income_band_sk#56 ASC NULLS FIRST], false +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [hd_income_band_sk#57 ASC NULLS FIRST], false (248) ReusedExchange [Reuses operator id: 236] -Output [1]: [ib_income_band_sk#68] +Output [1]: [ib_income_band_sk#69] (249) ShuffleQueryStage -Output [1]: [ib_income_band_sk#68] +Output [1]: [ib_income_band_sk#69] Arguments: X (250) AQEShuffleRead -Input [1]: [ib_income_band_sk#68] +Input [1]: [ib_income_band_sk#69] Arguments: coalesced (251) InputAdapter -Input [1]: [ib_income_band_sk#68] -Arguments: [#68] +Input [1]: [ib_income_band_sk#69] +Arguments: [#69] (252) InputAdapter -Input [1]: [#68#68] +Input [1]: [#69#69] (253) NativeSort -Input [1]: [#68#68] -Arguments: [ib_income_band_sk#68 ASC NULLS FIRST], false +Input [1]: [#69#69] +Arguments: [ib_income_band_sk#69 ASC NULLS FIRST], false (254) NativeSortMergeJoin -Left keys [1]: [hd_income_band_sk#56] -Right keys [1]: [ib_income_band_sk#68] +Left keys [1]: [hd_income_band_sk#57] +Right keys [1]: [ib_income_band_sk#69] Join type: Inner Join condition: None (255) NativeProject -Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, #68#68] +Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, #69#69] (256) NativeShuffleExchange -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: hashpartitioning(ss_item_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=30] (257) ShuffleQueryStage -Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: X (258) AQEShuffleRead -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: coalesced (259) InputAdapter -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] (260) NativeSort -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: [ss_item_sk#2 ASC NULLS FIRST], false (641) Scan parquet -Output [4]: [i_item_sk#69, i_current_price#70, i_color#71, i_product_name#72] +Output [4]: [i_item_sk#70, i_current_price#71, i_color#72, i_product_name#73] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_current_price), In(i_color, [burlywood,floral,indian,medium,purple,spring]), GreaterThanOrEqual(i_current_price,64.00), LessThanOrEqual(i_current_price,74.00), GreaterThanOrEqual(i_current_price,65.00), LessThanOrEqual(i_current_price,79.00), IsNotNull(i_item_sk)] ReadSchema: struct (262) InputAdapter -Input [4]: [i_item_sk#69, i_current_price#70, i_color#71, i_product_name#72] -Arguments: [#69, #70, #71, #72] +Input [4]: [i_item_sk#70, i_current_price#71, i_color#72, i_product_name#73] +Arguments: [#70, #71, #72, #73] (263) NativeFilter -Input [4]: [#69#69, #70#70, #71#71, #72#72] -Condition : ((((((isnotnull(i_current_price#70) AND i_color#71 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#70 >= 64.00)) AND (i_current_price#70 <= 74.00)) AND (i_current_price#70 >= 65.00)) AND (i_current_price#70 <= 79.00)) AND isnotnull(i_item_sk#69)) +Input [4]: [#70#70, #71#71, #72#72, #73#73] +Condition : ((((((isnotnull(i_current_price#71) AND i_color#72 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#71 >= 64.00)) AND (i_current_price#71 <= 74.00)) AND (i_current_price#71 >= 65.00)) AND (i_current_price#71 <= 79.00)) AND isnotnull(i_item_sk#70)) (264) NativeProject -Output [2]: [i_item_sk#69, i_product_name#72] -Input [4]: [#69#69, #70#70, #71#71, #72#72] +Output [2]: [i_item_sk#70, i_product_name#73] +Input [4]: [#70#70, #71#71, #72#72, #73#73] (265) NativeShuffleExchange -Input [2]: [i_item_sk#69, i_product_name#72] -Arguments: hashpartitioning(i_item_sk#69, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [2]: [i_item_sk#70, i_product_name#73] +Arguments: hashpartitioning(i_item_sk#70, 100), ENSURE_REQUIREMENTS, [plan_id=31] (266) ShuffleQueryStage -Output [2]: [i_item_sk#69, i_product_name#72] +Output [2]: [i_item_sk#70, i_product_name#73] Arguments: X (267) AQEShuffleRead -Input [2]: [i_item_sk#69, i_product_name#72] +Input [2]: [i_item_sk#70, i_product_name#73] Arguments: coalesced (268) InputAdapter -Input [2]: [i_item_sk#69, i_product_name#72] +Input [2]: [i_item_sk#70, i_product_name#73] (269) NativeSort -Input [2]: [i_item_sk#69, i_product_name#72] -Arguments: [i_item_sk#69 ASC NULLS FIRST], false +Input [2]: [i_item_sk#70, i_product_name#73] +Arguments: [i_item_sk#70 ASC NULLS FIRST], false (270) NativeSortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#69] +Right keys [1]: [i_item_sk#70] Join type: Inner Join condition: None (271) NativeProject -Output [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, d_year#45, d_year#47, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] +Output [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, d_year#46, d_year#48, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] (272) NativeProject -Output [18]: [i_product_name#72 AS i_product_name#72, i_item_sk#69 AS i_item_sk#69, s_store_name#36 AS s_store_name#36, s_zip#37 AS s_zip#37, ca_street_number#58 AS ca_street_number#58, ca_street_name#59 AS ca_street_name#59, ca_city#60 AS ca_city#60, ca_zip#61 AS ca_zip#61, ca_street_number#63 AS ca_street_number#63, ca_street_name#64 AS ca_street_name#64, ca_city#65 AS ca_city#65, ca_zip#66 AS ca_zip#66, d_year#34 AS d_year#34, d_year#45 AS d_year#45, d_year#47 AS d_year#47, UnscaledValue(ss_wholesale_cost#10) AS _c15#73, UnscaledValue(ss_list_price#11) AS _c16#74, UnscaledValue(ss_coupon_amt#12) AS _c17#75] -Input [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, d_year#45, d_year#47, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] +Output [18]: [i_product_name#73 AS i_product_name#73, i_item_sk#70 AS i_item_sk#70, s_store_name#37 AS s_store_name#37, s_zip#38 AS s_zip#38, ca_street_number#59 AS ca_street_number#59, ca_street_name#60 AS ca_street_name#60, ca_city#61 AS ca_city#61, ca_zip#62 AS ca_zip#62, ca_street_number#64 AS ca_street_number#64, ca_street_name#65 AS ca_street_name#65, ca_city#66 AS ca_city#66, ca_zip#67 AS ca_zip#67, d_year#35 AS d_year#35, d_year#46 AS d_year#46, d_year#48 AS d_year#48, UnscaledValue(ss_wholesale_cost#10) AS _c15#74, UnscaledValue(ss_list_price#11) AS _c16#75, UnscaledValue(ss_coupon_amt#12) AS _c17#76] +Input [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, d_year#46, d_year#48, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] (273) NativeHashAggregate -Input [18]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, _c15#73, _c16#74, _c17#75] -Keys [15]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47] -Functions [4]: [partial_count(1), partial_sum(_c15#73), partial_sum(_c16#74), partial_sum(_c17#75)] -Aggregate Attributes [4]: [count#76, sum#77, sum#78, sum#79] -Results [16]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, #28#28] +Input [18]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, _c15#74, _c16#75, _c17#76] +Keys [15]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48] +Functions [4]: [partial_count(1), partial_sum(_c15#74), partial_sum(_c16#75), partial_sum(_c17#76)] +Aggregate Attributes [4]: [count#77, sum#78, sum#79, sum#80] +Results [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, #28, #28, #28, #28] (274) NativeHashAggregate -Input [16]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, #28#28] -Keys [15]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47] +Input [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, #28, #28, #28, #28] +Keys [15]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48] Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#10)), sum(UnscaledValue(ss_list_price#11)), sum(UnscaledValue(ss_coupon_amt#12))] -Aggregate Attributes [4]: [count(1)#80, sum(UnscaledValue(ss_wholesale_cost#10))#81, sum(UnscaledValue(ss_list_price#11))#82, sum(UnscaledValue(ss_coupon_amt#12))#83] -Results [19]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, count(1)#80, sum(UnscaledValue(ss_wholesale_cost#10))#81, sum(UnscaledValue(ss_list_price#11))#82, sum(UnscaledValue(ss_coupon_amt#12))#83] +Aggregate Attributes [4]: [count(1)#81, sum(UnscaledValue(ss_wholesale_cost#10))#82, sum(UnscaledValue(ss_list_price#11))#83, sum(UnscaledValue(ss_coupon_amt#12))#84] +Results [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, count(1)#81, sum(UnscaledValue(ss_wholesale_cost#10))#82, sum(UnscaledValue(ss_list_price#11))#83, sum(UnscaledValue(ss_coupon_amt#12))#84] (275) NativeProject -Output [17]: [i_product_name#72 AS product_name#84, i_item_sk#69 AS item_sk#85, s_store_name#36 AS store_name#86, s_zip#37 AS store_zip#87, ca_street_number#58 AS b_street_number#88, ca_street_name#59 AS b_streen_name#89, ca_city#60 AS b_city#90, ca_zip#61 AS b_zip#91, ca_street_number#63 AS c_street_number#92, ca_street_name#64 AS c_street_name#93, ca_city#65 AS c_city#94, ca_zip#66 AS c_zip#95, d_year#34 AS syear#96, count(1)#80 AS cnt#97, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#10))#81,17,2) AS s1#98, MakeDecimal(sum(UnscaledValue(ss_list_price#11))#82,17,2) AS s2#99, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#12))#83,17,2) AS s3#100] -Input [19]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, count(1)#80, sum(UnscaledValue(ss_wholesale_cost#10))#81, sum(UnscaledValue(ss_list_price#11))#82, sum(UnscaledValue(ss_coupon_amt#12))#83] +Output [17]: [i_product_name#73 AS product_name#85, i_item_sk#70 AS item_sk#86, s_store_name#37 AS store_name#87, s_zip#38 AS store_zip#88, ca_street_number#59 AS b_street_number#89, ca_street_name#60 AS b_streen_name#90, ca_city#61 AS b_city#91, ca_zip#62 AS b_zip#92, ca_street_number#64 AS c_street_number#93, ca_street_name#65 AS c_street_name#94, ca_city#66 AS c_city#95, ca_zip#67 AS c_zip#96, d_year#35 AS syear#97, count(1)#81 AS cnt#98, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#10))#82,17,2) AS s1#99, MakeDecimal(sum(UnscaledValue(ss_list_price#11))#83,17,2) AS s2#100, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#12))#84,17,2) AS s3#101] +Input [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, count(1)#81, sum(UnscaledValue(ss_wholesale_cost#10))#82, sum(UnscaledValue(ss_list_price#11))#83, sum(UnscaledValue(ss_coupon_amt#12))#84] (276) NativeShuffleExchange -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] -Arguments: hashpartitioning(item_sk#85, store_name#86, store_zip#87, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] +Arguments: hashpartitioning(item_sk#86, store_name#87, store_zip#88, 100), ENSURE_REQUIREMENTS, [plan_id=32] (277) ShuffleQueryStage -Output [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] +Output [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] Arguments: X (278) AQEShuffleRead -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] Arguments: coalesced (279) InputAdapter -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] (280) NativeSort -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] -Arguments: [item_sk#85 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, store_zip#87 ASC NULLS FIRST], false +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] +Arguments: [item_sk#86 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, store_zip#88 ASC NULLS FIRST], false (281) ReusedExchange [Reuses operator id: 55] -Output [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] +Output [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] (282) ShuffleQueryStage -Output [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] +Output [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] Arguments: X (283) AQEShuffleRead -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] Arguments: coalesced (284) InputAdapter -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: [#101, #102, #103, #104, #105, #106, #107, #108, #109, #110, #111] +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: [#102, #103, #104, #105, #106, #107, #108, #109, #110, #111, #112] (285) InputAdapter -Input [11]: [#101#101, #102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111] +Input [11]: [#102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111, #112#112] (286) NativeSort -Input [11]: [#101#101, #102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111] -Arguments: [ss_sold_date_sk#101 ASC NULLS FIRST], false +Input [11]: [#102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111, #112#112] +Arguments: [ss_sold_date_sk#102 ASC NULLS FIRST], false (684) Scan parquet -Output [2]: [d_date_sk#112, d_year#113] +Output [2]: [d_date_sk#113, d_year#114] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)] ReadSchema: struct (288) InputAdapter -Input [2]: [d_date_sk#112, d_year#113] -Arguments: [#112, #113] +Input [2]: [d_date_sk#113, d_year#114] +Arguments: [#113, #114] (289) NativeFilter -Input [2]: [#112#112, #113#113] -Condition : ((isnotnull(d_year#113) AND (d_year#113 = 2000)) AND isnotnull(d_date_sk#112)) +Input [2]: [#113#113, #114#114] +Condition : ((isnotnull(d_year#114) AND (d_year#114 = 2000)) AND isnotnull(d_date_sk#113)) (290) NativeShuffleExchange -Input [2]: [#112#112, #113#113] -Arguments: hashpartitioning(d_date_sk#112, 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [2]: [#113#113, #114#114] +Arguments: hashpartitioning(d_date_sk#113, 100), ENSURE_REQUIREMENTS, [plan_id=33] (291) ShuffleQueryStage -Output [2]: [#112#112, #113#113] +Output [2]: [#113#113, #114#114] Arguments: X (292) AQEShuffleRead -Input [2]: [#112#112, #113#113] +Input [2]: [#113#113, #114#114] Arguments: coalesced (293) InputAdapter -Input [2]: [#112#112, #113#113] +Input [2]: [#113#113, #114#114] (294) NativeSort -Input [2]: [#112#112, #113#113] -Arguments: [d_date_sk#112 ASC NULLS FIRST], false +Input [2]: [#113#113, #114#114] +Arguments: [d_date_sk#113 ASC NULLS FIRST], false (295) NativeSortMergeJoin -Left keys [1]: [ss_sold_date_sk#101] -Right keys [1]: [d_date_sk#112] +Left keys [1]: [ss_sold_date_sk#102] +Right keys [1]: [d_date_sk#113] Join type: Inner Join condition: None (296) NativeProject -Output [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Input [13]: [#101#101, #102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111, #112#112, #113#113] +Output [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Input [13]: [#102#102, #103#103, #104#104, #105#105, #106#106, #107#107, #108#108, #109#109, #110#110, #111#111, #112#112, #113#113, #114#114] (297) NativeShuffleExchange -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Arguments: hashpartitioning(ss_store_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=34] +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Arguments: hashpartitioning(ss_store_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=34] (298) ShuffleQueryStage -Output [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] +Output [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] Arguments: X (299) AQEShuffleRead -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] Arguments: coalesced (300) InputAdapter -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] (301) NativeSort -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Arguments: [ss_store_sk#107 ASC NULLS FIRST], false +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Arguments: [ss_store_sk#108 ASC NULLS FIRST], false (302) ReusedExchange [Reuses operator id: 78] -Output [3]: [s_store_sk#114, s_store_name#115, s_zip#116] +Output [3]: [s_store_sk#115, s_store_name#116, s_zip#117] (303) ShuffleQueryStage -Output [3]: [s_store_sk#114, s_store_name#115, s_zip#116] +Output [3]: [s_store_sk#115, s_store_name#116, s_zip#117] Arguments: X (304) AQEShuffleRead -Input [3]: [s_store_sk#114, s_store_name#115, s_zip#116] +Input [3]: [s_store_sk#115, s_store_name#116, s_zip#117] Arguments: coalesced (305) InputAdapter -Input [3]: [s_store_sk#114, s_store_name#115, s_zip#116] -Arguments: [#114, #115, #116] +Input [3]: [s_store_sk#115, s_store_name#116, s_zip#117] +Arguments: [#115, #116, #117] (306) InputAdapter -Input [3]: [#114#114, #115#115, #116#116] +Input [3]: [#115#115, #116#116, #117#117] (307) NativeSort -Input [3]: [#114#114, #115#115, #116#116] -Arguments: [s_store_sk#114 ASC NULLS FIRST], false +Input [3]: [#115#115, #116#116, #117#117] +Arguments: [s_store_sk#115 ASC NULLS FIRST], false (308) NativeSortMergeJoin -Left keys [1]: [ss_store_sk#107] -Right keys [1]: [s_store_sk#114] +Left keys [1]: [ss_store_sk#108] +Right keys [1]: [s_store_sk#115] Join type: Inner Join condition: None (309) NativeProject -Output [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Input [14]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, #114#114, #115#115, #116#116] +Output [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Input [14]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, #115#115, #116#116, #117#117] (310) NativeShuffleExchange -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Arguments: hashpartitioning(ss_customer_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=35] +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Arguments: hashpartitioning(ss_customer_sk#104, 100), ENSURE_REQUIREMENTS, [plan_id=35] (311) ShuffleQueryStage -Output [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] +Output [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] Arguments: X (312) AQEShuffleRead -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] Arguments: coalesced (313) InputAdapter -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] (314) NativeSort -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Arguments: [ss_customer_sk#103 ASC NULLS FIRST], false +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Arguments: [ss_customer_sk#104 ASC NULLS FIRST], false (315) ReusedExchange [Reuses operator id: 93] -Output [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Output [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] (316) ShuffleQueryStage -Output [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Output [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] Arguments: X (317) AQEShuffleRead -Input [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Input [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] Arguments: coalesced (318) InputAdapter -Input [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: [#117, #118, #119, #120, #121, #122] +Input [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: [#118, #119, #120, #121, #122, #123] (319) InputAdapter -Input [6]: [#117#117, #118#118, #119#119, #120#120, #121#121, #122#122] +Input [6]: [#118#118, #119#119, #120#120, #121#121, #122#122, #123#123] (320) NativeSort -Input [6]: [#117#117, #118#118, #119#119, #120#120, #121#121, #122#122] -Arguments: [c_customer_sk#117 ASC NULLS FIRST], false +Input [6]: [#118#118, #119#119, #120#120, #121#121, #122#122, #123#123] +Arguments: [c_customer_sk#118 ASC NULLS FIRST], false (321) NativeSortMergeJoin -Left keys [1]: [ss_customer_sk#103] -Right keys [1]: [c_customer_sk#117] +Left keys [1]: [ss_customer_sk#104] +Right keys [1]: [c_customer_sk#118] Join type: Inner Join condition: None (322) NativeProject -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Input [18]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, #117#117, #118#118, #119#119, #120#120, #121#121, #122#122] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Input [18]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, #118#118, #119#119, #120#120, #121#121, #122#122, #123#123] (323) NativeShuffleExchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: hashpartitioning(c_first_sales_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=36] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: hashpartitioning(c_first_sales_date_sk#123, 100), ENSURE_REQUIREMENTS, [plan_id=36] (324) ShuffleQueryStage -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] Arguments: X (325) AQEShuffleRead -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] Arguments: coalesced (326) InputAdapter -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] (327) NativeSort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: [c_first_sales_date_sk#122 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: [c_first_sales_date_sk#123 ASC NULLS FIRST], false (328) ReusedExchange [Reuses operator id: 108] -Output [2]: [d_date_sk#123, d_year#124] +Output [2]: [d_date_sk#124, d_year#125] (329) ShuffleQueryStage -Output [2]: [d_date_sk#123, d_year#124] +Output [2]: [d_date_sk#124, d_year#125] Arguments: X (330) AQEShuffleRead -Input [2]: [d_date_sk#123, d_year#124] +Input [2]: [d_date_sk#124, d_year#125] Arguments: coalesced (331) InputAdapter -Input [2]: [d_date_sk#123, d_year#124] -Arguments: [#123, #124] +Input [2]: [d_date_sk#124, d_year#125] +Arguments: [#124, #125] (332) InputAdapter -Input [2]: [#123#123, #124#124] +Input [2]: [#124#124, #125#125] (333) NativeSort -Input [2]: [#123#123, #124#124] -Arguments: [d_date_sk#123 ASC NULLS FIRST], false +Input [2]: [#124#124, #125#125] +Arguments: [d_date_sk#124 ASC NULLS FIRST], false (334) NativeSortMergeJoin -Left keys [1]: [c_first_sales_date_sk#122] -Right keys [1]: [d_date_sk#123] +Left keys [1]: [c_first_sales_date_sk#123] +Right keys [1]: [d_date_sk#124] Join type: Inner Join condition: None (335) NativeProject -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122, #123#123, #124#124] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123, #124#124, #125#125] (336) NativeShuffleExchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Arguments: hashpartitioning(c_first_shipto_date_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=37] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Arguments: hashpartitioning(c_first_shipto_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=37] (337) ShuffleQueryStage -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] Arguments: X (338) AQEShuffleRead -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] Arguments: coalesced (339) InputAdapter -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] (340) NativeSort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Arguments: [c_first_shipto_date_sk#121 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Arguments: [c_first_shipto_date_sk#122 ASC NULLS FIRST], false (341) ReusedExchange [Reuses operator id: 108] -Output [2]: [d_date_sk#125, d_year#126] +Output [2]: [d_date_sk#126, d_year#127] (342) ShuffleQueryStage -Output [2]: [d_date_sk#125, d_year#126] +Output [2]: [d_date_sk#126, d_year#127] Arguments: X (343) AQEShuffleRead -Input [2]: [d_date_sk#125, d_year#126] +Input [2]: [d_date_sk#126, d_year#127] Arguments: coalesced (344) InputAdapter -Input [2]: [d_date_sk#125, d_year#126] -Arguments: [#125, #126] +Input [2]: [d_date_sk#126, d_year#127] +Arguments: [#126, #127] (345) InputAdapter -Input [2]: [#125#125, #126#126] +Input [2]: [#126#126, #127#127] (346) NativeSort -Input [2]: [#125#125, #126#126] -Arguments: [d_date_sk#125 ASC NULLS FIRST], false +Input [2]: [#126#126, #127#127] +Arguments: [d_date_sk#126 ASC NULLS FIRST], false (347) NativeSortMergeJoin -Left keys [1]: [c_first_shipto_date_sk#121] -Right keys [1]: [d_date_sk#125] +Left keys [1]: [c_first_shipto_date_sk#122] +Right keys [1]: [d_date_sk#126] Join type: Inner Join condition: None (348) NativeProject -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124, #125#125, #126#126] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125, #126#126, #127#127] (349) NativeShuffleExchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_cdemo_sk#104, 100), ENSURE_REQUIREMENTS, [plan_id=38] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_cdemo_sk#105, 100), ENSURE_REQUIREMENTS, [plan_id=38] (350) ShuffleQueryStage -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: X (351) AQEShuffleRead -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: coalesced (352) InputAdapter -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] (353) NativeSort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_cdemo_sk#104 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_cdemo_sk#105 ASC NULLS FIRST], false (354) ReusedExchange [Reuses operator id: 136] -Output [2]: [cd_demo_sk#127, cd_marital_status#128] +Output [2]: [cd_demo_sk#128, cd_marital_status#129] (355) ShuffleQueryStage -Output [2]: [cd_demo_sk#127, cd_marital_status#128] +Output [2]: [cd_demo_sk#128, cd_marital_status#129] Arguments: X (356) AQEShuffleRead -Input [2]: [cd_demo_sk#127, cd_marital_status#128] +Input [2]: [cd_demo_sk#128, cd_marital_status#129] Arguments: coalesced (357) InputAdapter -Input [2]: [cd_demo_sk#127, cd_marital_status#128] -Arguments: [#127, #128] +Input [2]: [cd_demo_sk#128, cd_marital_status#129] +Arguments: [#128, #129] (358) InputAdapter -Input [2]: [#127#127, #128#128] +Input [2]: [#128#128, #129#129] (359) NativeSort -Input [2]: [#127#127, #128#128] -Arguments: [cd_demo_sk#127 ASC NULLS FIRST], false +Input [2]: [#128#128, #129#129] +Arguments: [cd_demo_sk#128 ASC NULLS FIRST], false (360) NativeSortMergeJoin -Left keys [1]: [ss_cdemo_sk#104] -Right keys [1]: [cd_demo_sk#127] +Left keys [1]: [ss_cdemo_sk#105] +Right keys [1]: [cd_demo_sk#128] Join type: Inner Join condition: None (361) NativeProject -Output [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, #127#127, #128#128] +Output [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, #128#128, #129#129] (362) NativeShuffleExchange -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Arguments: hashpartitioning(c_current_cdemo_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=39] +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Arguments: hashpartitioning(c_current_cdemo_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=39] (363) ShuffleQueryStage -Output [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] +Output [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] Arguments: X (364) AQEShuffleRead -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] Arguments: coalesced (365) InputAdapter -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] (366) NativeSort -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Arguments: [c_current_cdemo_sk#118 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Arguments: [c_current_cdemo_sk#119 ASC NULLS FIRST], false (367) ReusedExchange [Reuses operator id: 136] -Output [2]: [cd_demo_sk#129, cd_marital_status#130] +Output [2]: [cd_demo_sk#130, cd_marital_status#131] (368) ShuffleQueryStage -Output [2]: [cd_demo_sk#129, cd_marital_status#130] +Output [2]: [cd_demo_sk#130, cd_marital_status#131] Arguments: X (369) AQEShuffleRead -Input [2]: [cd_demo_sk#129, cd_marital_status#130] +Input [2]: [cd_demo_sk#130, cd_marital_status#131] Arguments: coalesced (370) InputAdapter -Input [2]: [cd_demo_sk#129, cd_marital_status#130] -Arguments: [#129, #130] +Input [2]: [cd_demo_sk#130, cd_marital_status#131] +Arguments: [#130, #131] (371) InputAdapter -Input [2]: [#129#129, #130#130] +Input [2]: [#130#130, #131#131] (372) NativeSort -Input [2]: [#129#129, #130#130] -Arguments: [cd_demo_sk#129 ASC NULLS FIRST], false +Input [2]: [#130#130, #131#131] +Arguments: [cd_demo_sk#130 ASC NULLS FIRST], false (373) SortMergeJoin [codegen id : X] -Left keys [1]: [c_current_cdemo_sk#118] -Right keys [1]: [cd_demo_sk#129] +Left keys [1]: [c_current_cdemo_sk#119] +Right keys [1]: [cd_demo_sk#130] Join type: Inner -Join condition: NOT (cd_marital_status#128 = cd_marital_status#130) +Join condition: NOT (cd_marital_status#129 = cd_marital_status#131) (374) Project [codegen id : X] -Output [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [18]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128, #129#129, #130#130] +Output [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [18]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129, #130#130, #131#131] (375) ConvertToNative -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] (376) NativeShuffleExchange -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_promo_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=40] +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_promo_sk#109, 100), ENSURE_REQUIREMENTS, [plan_id=40] (377) ShuffleQueryStage -Output [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Output [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: X (378) AQEShuffleRead -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: coalesced (379) InputAdapter -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] (380) NativeSort -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_promo_sk#108 ASC NULLS FIRST], false +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_promo_sk#109 ASC NULLS FIRST], false (381) ReusedExchange [Reuses operator id: 165] -Output [1]: [p_promo_sk#131] +Output [1]: [p_promo_sk#132] (382) ShuffleQueryStage -Output [1]: [p_promo_sk#131] +Output [1]: [p_promo_sk#132] Arguments: X (383) AQEShuffleRead -Input [1]: [p_promo_sk#131] +Input [1]: [p_promo_sk#132] Arguments: coalesced (384) InputAdapter -Input [1]: [p_promo_sk#131] -Arguments: [#131] +Input [1]: [p_promo_sk#132] +Arguments: [#132] (385) InputAdapter -Input [1]: [#131#131] +Input [1]: [#132#132] (386) NativeSort -Input [1]: [#131#131] -Arguments: [p_promo_sk#131 ASC NULLS FIRST], false +Input [1]: [#132#132] +Arguments: [p_promo_sk#132 ASC NULLS FIRST], false (387) NativeSortMergeJoin -Left keys [1]: [ss_promo_sk#108] -Right keys [1]: [p_promo_sk#131] +Left keys [1]: [ss_promo_sk#109] +Right keys [1]: [p_promo_sk#132] Join type: Inner Join condition: None (388) NativeProject -Output [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [15]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, #131#131] +Output [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [15]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, #132#132] (389) NativeShuffleExchange -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_hdemo_sk#105, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_hdemo_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=41] (390) ShuffleQueryStage -Output [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Output [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: X (391) AQEShuffleRead -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] Arguments: coalesced (392) InputAdapter -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] (393) NativeSort -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_hdemo_sk#105 ASC NULLS FIRST], false +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_hdemo_sk#106 ASC NULLS FIRST], false (394) ReusedExchange [Reuses operator id: 180] -Output [2]: [hd_demo_sk#132, hd_income_band_sk#133] +Output [2]: [hd_demo_sk#133, hd_income_band_sk#134] (395) ShuffleQueryStage -Output [2]: [hd_demo_sk#132, hd_income_band_sk#133] +Output [2]: [hd_demo_sk#133, hd_income_band_sk#134] Arguments: X (396) AQEShuffleRead -Input [2]: [hd_demo_sk#132, hd_income_band_sk#133] +Input [2]: [hd_demo_sk#133, hd_income_band_sk#134] Arguments: coalesced (397) InputAdapter -Input [2]: [hd_demo_sk#132, hd_income_band_sk#133] -Arguments: [#132, #133] +Input [2]: [hd_demo_sk#133, hd_income_band_sk#134] +Arguments: [#133, #134] (398) InputAdapter -Input [2]: [#132#132, #133#133] +Input [2]: [#133#133, #134#134] (399) NativeSort -Input [2]: [#132#132, #133#133] -Arguments: [hd_demo_sk#132 ASC NULLS FIRST], false +Input [2]: [#133#133, #134#134] +Arguments: [hd_demo_sk#133 ASC NULLS FIRST], false (400) NativeSortMergeJoin -Left keys [1]: [ss_hdemo_sk#105] -Right keys [1]: [hd_demo_sk#132] +Left keys [1]: [ss_hdemo_sk#106] +Right keys [1]: [hd_demo_sk#133] Join type: Inner Join condition: None (401) NativeProject -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Input [15]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, #132#132, #133#133] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Input [15]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, #133#133, #134#134] (402) NativeShuffleExchange -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Arguments: hashpartitioning(c_current_hdemo_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=42] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Arguments: hashpartitioning(c_current_hdemo_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=42] (403) ShuffleQueryStage -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] Arguments: X (404) AQEShuffleRead -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] Arguments: coalesced (405) InputAdapter -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] (406) NativeSort -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Arguments: [c_current_hdemo_sk#119 ASC NULLS FIRST], false +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Arguments: [c_current_hdemo_sk#120 ASC NULLS FIRST], false (407) ReusedExchange [Reuses operator id: 180] -Output [2]: [hd_demo_sk#134, hd_income_band_sk#135] +Output [2]: [hd_demo_sk#135, hd_income_band_sk#136] (408) ShuffleQueryStage -Output [2]: [hd_demo_sk#134, hd_income_band_sk#135] +Output [2]: [hd_demo_sk#135, hd_income_band_sk#136] Arguments: X (409) AQEShuffleRead -Input [2]: [hd_demo_sk#134, hd_income_band_sk#135] +Input [2]: [hd_demo_sk#135, hd_income_band_sk#136] Arguments: coalesced (410) InputAdapter -Input [2]: [hd_demo_sk#134, hd_income_band_sk#135] -Arguments: [#134, #135] +Input [2]: [hd_demo_sk#135, hd_income_band_sk#136] +Arguments: [#135, #136] (411) InputAdapter -Input [2]: [#134#134, #135#135] +Input [2]: [#135#135, #136#136] (412) NativeSort -Input [2]: [#134#134, #135#135] -Arguments: [hd_demo_sk#134 ASC NULLS FIRST], false +Input [2]: [#135#135, #136#136] +Arguments: [hd_demo_sk#135 ASC NULLS FIRST], false (413) NativeSortMergeJoin -Left keys [1]: [c_current_hdemo_sk#119] -Right keys [1]: [hd_demo_sk#134] +Left keys [1]: [c_current_hdemo_sk#120] +Right keys [1]: [hd_demo_sk#135] Join type: Inner Join condition: None (414) NativeProject -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Input [15]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, #134#134, #135#135] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Input [15]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, #135#135, #136#136] (415) NativeShuffleExchange -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Arguments: hashpartitioning(ss_addr_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Arguments: hashpartitioning(ss_addr_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=43] (416) ShuffleQueryStage -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] Arguments: X (417) AQEShuffleRead -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] Arguments: coalesced (418) InputAdapter -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] (419) NativeSort -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Arguments: [ss_addr_sk#106 ASC NULLS FIRST], false +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Arguments: [ss_addr_sk#107 ASC NULLS FIRST], false (420) ReusedExchange [Reuses operator id: 208] -Output [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Output [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] (421) ShuffleQueryStage -Output [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Output [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] Arguments: X (422) AQEShuffleRead -Input [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Input [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] Arguments: coalesced (423) InputAdapter -Input [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: [#136, #137, #138, #139, #140] +Input [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: [#137, #138, #139, #140, #141] (424) InputAdapter -Input [5]: [#136#136, #137#137, #138#138, #139#139, #140#140] +Input [5]: [#137#137, #138#138, #139#139, #140#140, #141#141] (425) NativeSort -Input [5]: [#136#136, #137#137, #138#138, #139#139, #140#140] -Arguments: [ca_address_sk#136 ASC NULLS FIRST], false +Input [5]: [#137#137, #138#138, #139#139, #140#140, #141#141] +Arguments: [ca_address_sk#137 ASC NULLS FIRST], false (426) NativeSortMergeJoin -Left keys [1]: [ss_addr_sk#106] -Right keys [1]: [ca_address_sk#136] +Left keys [1]: [ss_addr_sk#107] +Right keys [1]: [ca_address_sk#137] Join type: Inner Join condition: None (427) NativeProject -Output [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Input [18]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, #136#136, #137#137, #138#138, #139#139, #140#140] +Output [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Input [18]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, #137#137, #138#138, #139#139, #140#140, #141#141] (428) NativeShuffleExchange -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: hashpartitioning(c_current_addr_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=44] +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: hashpartitioning(c_current_addr_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=44] (429) ShuffleQueryStage -Output [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Output [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] Arguments: X (430) AQEShuffleRead -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] Arguments: coalesced (431) InputAdapter -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] (432) NativeSort -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: [c_current_addr_sk#120 ASC NULLS FIRST], false +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: [c_current_addr_sk#121 ASC NULLS FIRST], false (433) ReusedExchange [Reuses operator id: 208] -Output [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] (434) ShuffleQueryStage -Output [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: X (435) AQEShuffleRead -Input [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: coalesced (436) InputAdapter -Input [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [#141, #142, #143, #144, #145] +Input [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [#142, #143, #144, #145, #146] (437) InputAdapter -Input [5]: [#141#141, #142#142, #143#143, #144#144, #145#145] +Input [5]: [#142#142, #143#143, #144#144, #145#145, #146#146] (438) NativeSort -Input [5]: [#141#141, #142#142, #143#143, #144#144, #145#145] -Arguments: [ca_address_sk#141 ASC NULLS FIRST], false +Input [5]: [#142#142, #143#143, #144#144, #145#145, #146#146] +Arguments: [ca_address_sk#142 ASC NULLS FIRST], false (439) NativeSortMergeJoin -Left keys [1]: [c_current_addr_sk#120] -Right keys [1]: [ca_address_sk#141] +Left keys [1]: [c_current_addr_sk#121] +Right keys [1]: [ca_address_sk#142] Join type: Inner Join condition: None (440) NativeProject -Output [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [21]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, #141#141, #142#142, #143#143, #144#144, #145#145] +Output [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [21]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, #142#142, #143#143, #144#144, #145#145, #146#146] (441) NativeShuffleExchange -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(hd_income_band_sk#133, 100), ENSURE_REQUIREMENTS, [plan_id=45] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(hd_income_band_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=45] (442) ShuffleQueryStage -Output [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: X (443) AQEShuffleRead -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: coalesced (444) InputAdapter -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] (445) NativeSort -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [hd_income_band_sk#133 ASC NULLS FIRST], false +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [hd_income_band_sk#134 ASC NULLS FIRST], false (446) ReusedExchange [Reuses operator id: 236] -Output [1]: [ib_income_band_sk#146] +Output [1]: [ib_income_band_sk#147] (447) ShuffleQueryStage -Output [1]: [ib_income_band_sk#146] +Output [1]: [ib_income_band_sk#147] Arguments: X (448) AQEShuffleRead -Input [1]: [ib_income_band_sk#146] +Input [1]: [ib_income_band_sk#147] Arguments: coalesced (449) InputAdapter -Input [1]: [ib_income_band_sk#146] -Arguments: [#146] +Input [1]: [ib_income_band_sk#147] +Arguments: [#147] (450) InputAdapter -Input [1]: [#146#146] +Input [1]: [#147#147] (451) NativeSort -Input [1]: [#146#146] -Arguments: [ib_income_band_sk#146 ASC NULLS FIRST], false +Input [1]: [#147#147] +Arguments: [ib_income_band_sk#147 ASC NULLS FIRST], false (452) NativeSortMergeJoin -Left keys [1]: [hd_income_band_sk#133] -Right keys [1]: [ib_income_band_sk#146] +Left keys [1]: [hd_income_band_sk#134] +Right keys [1]: [ib_income_band_sk#147] Join type: Inner Join condition: None (453) NativeProject -Output [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [20]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, #146#146] +Output [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [20]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, #147#147] (454) NativeShuffleExchange -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(hd_income_band_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=46] +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(hd_income_band_sk#136, 100), ENSURE_REQUIREMENTS, [plan_id=46] (455) ShuffleQueryStage -Output [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: X (456) AQEShuffleRead -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: coalesced (457) InputAdapter -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] (458) NativeSort -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [hd_income_band_sk#135 ASC NULLS FIRST], false +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [hd_income_band_sk#136 ASC NULLS FIRST], false (459) ReusedExchange [Reuses operator id: 236] -Output [1]: [ib_income_band_sk#147] +Output [1]: [ib_income_band_sk#148] (460) ShuffleQueryStage -Output [1]: [ib_income_band_sk#147] +Output [1]: [ib_income_band_sk#148] Arguments: X (461) AQEShuffleRead -Input [1]: [ib_income_band_sk#147] +Input [1]: [ib_income_band_sk#148] Arguments: coalesced (462) InputAdapter -Input [1]: [ib_income_band_sk#147] -Arguments: [#147] +Input [1]: [ib_income_band_sk#148] +Arguments: [#148] (463) InputAdapter -Input [1]: [#147#147] +Input [1]: [#148#148] (464) NativeSort -Input [1]: [#147#147] -Arguments: [ib_income_band_sk#147 ASC NULLS FIRST], false +Input [1]: [#148#148] +Arguments: [ib_income_band_sk#148 ASC NULLS FIRST], false (465) NativeSortMergeJoin -Left keys [1]: [hd_income_band_sk#135] -Right keys [1]: [ib_income_band_sk#147] +Left keys [1]: [hd_income_band_sk#136] +Right keys [1]: [ib_income_band_sk#148] Join type: Inner Join condition: None (466) NativeProject -Output [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, #147#147] +Output [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, #148#148] (467) NativeShuffleExchange -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(ss_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=47] +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(ss_item_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=47] (468) ShuffleQueryStage -Output [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: X (469) AQEShuffleRead -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Arguments: coalesced (470) InputAdapter -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] (471) NativeSort -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [ss_item_sk#102 ASC NULLS FIRST], false +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [ss_item_sk#103 ASC NULLS FIRST], false (472) ReusedExchange [Reuses operator id: 265] -Output [2]: [i_item_sk#148, i_product_name#149] +Output [2]: [i_item_sk#149, i_product_name#150] (473) ShuffleQueryStage -Output [2]: [i_item_sk#148, i_product_name#149] +Output [2]: [i_item_sk#149, i_product_name#150] Arguments: X (474) AQEShuffleRead -Input [2]: [i_item_sk#148, i_product_name#149] +Input [2]: [i_item_sk#149, i_product_name#150] Arguments: coalesced (475) InputAdapter -Input [2]: [i_item_sk#148, i_product_name#149] -Arguments: [#148, #149] +Input [2]: [i_item_sk#149, i_product_name#150] +Arguments: [#149, #150] (476) InputAdapter -Input [2]: [#148#148, #149#149] +Input [2]: [#149#149, #150#150] (477) NativeSort -Input [2]: [#148#148, #149#149] -Arguments: [i_item_sk#148 ASC NULLS FIRST], false +Input [2]: [#149#149, #150#150] +Arguments: [i_item_sk#149 ASC NULLS FIRST], false (478) NativeSortMergeJoin -Left keys [1]: [ss_item_sk#102] -Right keys [1]: [i_item_sk#148] +Left keys [1]: [ss_item_sk#103] +Right keys [1]: [i_item_sk#149] Join type: Inner Join condition: None (479) NativeProject -Output [18]: [ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, d_year#124, d_year#126, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, i_item_sk#148, i_product_name#149] -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, #148#148, #149#149] +Output [18]: [ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, d_year#125, d_year#127, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, i_item_sk#149, i_product_name#150] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, #149#149, #150#150] (480) NativeProject -Output [18]: [i_product_name#149 AS i_product_name#149, i_item_sk#148 AS i_item_sk#148, s_store_name#115 AS s_store_name#115, s_zip#116 AS s_zip#116, ca_street_number#137 AS ca_street_number#137, ca_street_name#138 AS ca_street_name#138, ca_city#139 AS ca_city#139, ca_zip#140 AS ca_zip#140, ca_street_number#142 AS ca_street_number#142, ca_street_name#143 AS ca_street_name#143, ca_city#144 AS ca_city#144, ca_zip#145 AS ca_zip#145, d_year#113 AS d_year#113, d_year#124 AS d_year#124, d_year#126 AS d_year#126, UnscaledValue(ss_wholesale_cost#109) AS _c15#150, UnscaledValue(ss_list_price#110) AS _c16#151, UnscaledValue(ss_coupon_amt#111) AS _c17#152] -Input [18]: [ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, d_year#124, d_year#126, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, i_item_sk#148, i_product_name#149] +Output [18]: [i_product_name#150 AS i_product_name#150, i_item_sk#149 AS i_item_sk#149, s_store_name#116 AS s_store_name#116, s_zip#117 AS s_zip#117, ca_street_number#138 AS ca_street_number#138, ca_street_name#139 AS ca_street_name#139, ca_city#140 AS ca_city#140, ca_zip#141 AS ca_zip#141, ca_street_number#143 AS ca_street_number#143, ca_street_name#144 AS ca_street_name#144, ca_city#145 AS ca_city#145, ca_zip#146 AS ca_zip#146, d_year#114 AS d_year#114, d_year#125 AS d_year#125, d_year#127 AS d_year#127, UnscaledValue(ss_wholesale_cost#110) AS _c15#151, UnscaledValue(ss_list_price#111) AS _c16#152, UnscaledValue(ss_coupon_amt#112) AS _c17#153] +Input [18]: [ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, d_year#125, d_year#127, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, i_item_sk#149, i_product_name#150] (481) NativeHashAggregate -Input [18]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, _c15#150, _c16#151, _c17#152] -Keys [15]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126] -Functions [4]: [partial_count(1), partial_sum(_c15#150), partial_sum(_c16#151), partial_sum(_c17#152)] -Aggregate Attributes [4]: [count#76, sum#153, sum#154, sum#155] -Results [16]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, #28#28] +Input [18]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, _c15#151, _c16#152, _c17#153] +Keys [15]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127] +Functions [4]: [partial_count(1), partial_sum(_c15#151), partial_sum(_c16#152), partial_sum(_c17#153)] +Aggregate Attributes [4]: [count#77, sum#154, sum#155, sum#156] +Results [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, #28, #28, #28, #28] (482) NativeHashAggregate -Input [16]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, #28#28] -Keys [15]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126] -Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#109)), sum(UnscaledValue(ss_list_price#110)), sum(UnscaledValue(ss_coupon_amt#111))] -Aggregate Attributes [4]: [count(1)#80, sum(UnscaledValue(ss_wholesale_cost#109))#81, sum(UnscaledValue(ss_list_price#110))#82, sum(UnscaledValue(ss_coupon_amt#111))#83] -Results [19]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, count(1)#80, sum(UnscaledValue(ss_wholesale_cost#109))#81, sum(UnscaledValue(ss_list_price#110))#82, sum(UnscaledValue(ss_coupon_amt#111))#83] +Input [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, #28, #28, #28, #28] +Keys [15]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127] +Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#110)), sum(UnscaledValue(ss_list_price#111)), sum(UnscaledValue(ss_coupon_amt#112))] +Aggregate Attributes [4]: [count(1)#81, sum(UnscaledValue(ss_wholesale_cost#110))#82, sum(UnscaledValue(ss_list_price#111))#83, sum(UnscaledValue(ss_coupon_amt#112))#84] +Results [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, count(1)#81, sum(UnscaledValue(ss_wholesale_cost#110))#82, sum(UnscaledValue(ss_list_price#111))#83, sum(UnscaledValue(ss_coupon_amt#112))#84] (483) NativeProject -Output [8]: [i_item_sk#148 AS item_sk#156, s_store_name#115 AS store_name#157, s_zip#116 AS store_zip#158, d_year#113 AS syear#159, count(1)#80 AS cnt#160, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#109))#81,17,2) AS s1#161, MakeDecimal(sum(UnscaledValue(ss_list_price#110))#82,17,2) AS s2#162, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#111))#83,17,2) AS s3#163] -Input [19]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, count(1)#80, sum(UnscaledValue(ss_wholesale_cost#109))#81, sum(UnscaledValue(ss_list_price#110))#82, sum(UnscaledValue(ss_coupon_amt#111))#83] +Output [8]: [i_item_sk#149 AS item_sk#157, s_store_name#116 AS store_name#158, s_zip#117 AS store_zip#159, d_year#114 AS syear#160, count(1)#81 AS cnt#161, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#110))#82,17,2) AS s1#162, MakeDecimal(sum(UnscaledValue(ss_list_price#111))#83,17,2) AS s2#163, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#112))#84,17,2) AS s3#164] +Input [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, count(1)#81, sum(UnscaledValue(ss_wholesale_cost#110))#82, sum(UnscaledValue(ss_list_price#111))#83, sum(UnscaledValue(ss_coupon_amt#112))#84] (484) NativeShuffleExchange -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] -Arguments: hashpartitioning(item_sk#156, store_name#157, store_zip#158, 100), ENSURE_REQUIREMENTS, [plan_id=48] +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] +Arguments: hashpartitioning(item_sk#157, store_name#158, store_zip#159, 100), ENSURE_REQUIREMENTS, [plan_id=48] (485) ShuffleQueryStage -Output [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] +Output [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] Arguments: X (486) AQEShuffleRead -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] Arguments: coalesced (487) InputAdapter -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] (488) NativeSort -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] -Arguments: [item_sk#156 ASC NULLS FIRST, store_name#157 ASC NULLS FIRST, store_zip#158 ASC NULLS FIRST], false +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] +Arguments: [item_sk#157 ASC NULLS FIRST, store_name#158 ASC NULLS FIRST, store_zip#159 ASC NULLS FIRST], false (489) SortMergeJoin [codegen id : X] -Left keys [3]: [item_sk#85, store_name#86, store_zip#87] -Right keys [3]: [item_sk#156, store_name#157, store_zip#158] +Left keys [3]: [item_sk#86, store_name#87, store_zip#88] +Right keys [3]: [item_sk#157, store_name#158, store_zip#159] Join type: Inner -Join condition: (cnt#160 <= cnt#97) +Join condition: (cnt#161 <= cnt#98) (490) Project [codegen id : X] -Output [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Input [25]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] +Output [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Input [25]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] (491) ConvertToNative -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] (492) NativeShuffleExchange -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Arguments: rangepartitioning(product_name#84 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, cnt#160 ASC NULLS FIRST, s1#98 ASC NULLS FIRST, s1#161 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=49] +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Arguments: rangepartitioning(product_name#85 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, cnt#161 ASC NULLS FIRST, s1#99 ASC NULLS FIRST, s1#162 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=49] (493) ShuffleQueryStage -Output [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] +Output [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] Arguments: X (494) AQEShuffleRead -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] Arguments: coalesced (495) InputAdapter -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] (496) NativeSort -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Arguments: [product_name#84 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, cnt#160 ASC NULLS FIRST, s1#98 ASC NULLS FIRST, s1#161 ASC NULLS FIRST], true +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Arguments: [product_name#85 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, cnt#161 ASC NULLS FIRST, s1#99 ASC NULLS FIRST, s1#162 ASC NULLS FIRST], true (497) Scan parquet Output [12]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_ticket_number#9, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12] @@ -2946,26 +2946,26 @@ Input [5]: [cs_item_sk#15, cs_ext_list_price#17, cr_refunded_cash#20, cr_reverse Keys [1]: [cs_item_sk#15] Functions [2]: [partial_sum(UnscaledValue(cs_ext_list_price#17)), partial_sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))] Aggregate Attributes [3]: [sum#25, sum#26, isEmpty#27] -Results [4]: [cs_item_sk#15, sum#164, sum#165, isEmpty#166] +Results [4]: [cs_item_sk#15, sum#165, sum#166, isEmpty#167] (520) Exchange -Input [4]: [cs_item_sk#15, sum#164, sum#165, isEmpty#166] +Input [4]: [cs_item_sk#15, sum#165, sum#166, isEmpty#167] Arguments: hashpartitioning(cs_item_sk#15, 100), ENSURE_REQUIREMENTS, [plan_id=55] (521) HashAggregate -Input [4]: [cs_item_sk#15, sum#164, sum#165, isEmpty#166] +Input [4]: [cs_item_sk#15, sum#165, sum#166, isEmpty#167] Keys [1]: [cs_item_sk#15] Functions [2]: [sum(UnscaledValue(cs_ext_list_price#17)), sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))] -Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#17))#29, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30] -Results [3]: [cs_item_sk#15, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#17))#29,17,2) AS sale#31, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#30 AS refund#32] +Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#17))#30, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31] +Results [3]: [cs_item_sk#15, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#17))#30,17,2) AS sale#32, sum(((cr_refunded_cash#20 + cr_reversed_charge#21) + cr_store_credit#22))#31 AS refund#33] (522) Filter -Input [3]: [cs_item_sk#15, sale#31, refund#32] -Condition : ((isnotnull(sale#31) AND isnotnull(refund#32)) AND (cast(sale#31 as decimal(21,2)) > (2 * refund#32))) +Input [3]: [cs_item_sk#15, sale#32, refund#33] +Condition : ((isnotnull(sale#32) AND isnotnull(refund#33)) AND (cast(sale#32 as decimal(21,2)) > (2 * refund#33))) (523) Project Output [1]: [cs_item_sk#15] -Input [3]: [cs_item_sk#15, sale#31, refund#32] +Input [3]: [cs_item_sk#15, sale#32, refund#33] (524) Sort Input [1]: [cs_item_sk#15] @@ -2990,1322 +2990,1322 @@ Input [11]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, s Arguments: [ss_sold_date_sk#1 ASC NULLS FIRST], false, 0 (529) Scan parquet -Output [2]: [d_date_sk#33, d_year#34] +Output [2]: [d_date_sk#34, d_year#35] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,1999), IsNotNull(d_date_sk)] ReadSchema: struct (530) Filter -Input [2]: [d_date_sk#33, d_year#34] -Condition : ((isnotnull(d_year#34) AND (d_year#34 = 1999)) AND isnotnull(d_date_sk#33)) +Input [2]: [d_date_sk#34, d_year#35] +Condition : ((isnotnull(d_year#35) AND (d_year#35 = 1999)) AND isnotnull(d_date_sk#34)) (531) Exchange -Input [2]: [d_date_sk#33, d_year#34] -Arguments: hashpartitioning(d_date_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=57] +Input [2]: [d_date_sk#34, d_year#35] +Arguments: hashpartitioning(d_date_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=57] (532) Sort -Input [2]: [d_date_sk#33, d_year#34] -Arguments: [d_date_sk#33 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#34, d_year#35] +Arguments: [d_date_sk#34 ASC NULLS FIRST], false, 0 (533) SortMergeJoin Left keys [1]: [ss_sold_date_sk#1] -Right keys [1]: [d_date_sk#33] +Right keys [1]: [d_date_sk#34] Join type: Inner Join condition: None (534) Project -Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] -Input [13]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_date_sk#33, d_year#34] +Output [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] +Input [13]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_date_sk#34, d_year#35] (535) Exchange -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: hashpartitioning(ss_store_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=58] (536) Sort -Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34] +Input [11]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35] Arguments: [ss_store_sk#7 ASC NULLS FIRST], false, 0 (537) Scan parquet -Output [3]: [s_store_sk#35, s_store_name#36, s_zip#37] +Output [3]: [s_store_sk#36, s_store_name#37, s_zip#38] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_name), IsNotNull(s_zip)] ReadSchema: struct (538) Filter -Input [3]: [s_store_sk#35, s_store_name#36, s_zip#37] -Condition : ((isnotnull(s_store_sk#35) AND isnotnull(s_store_name#36)) AND isnotnull(s_zip#37)) +Input [3]: [s_store_sk#36, s_store_name#37, s_zip#38] +Condition : ((isnotnull(s_store_sk#36) AND isnotnull(s_store_name#37)) AND isnotnull(s_zip#38)) (539) Exchange -Input [3]: [s_store_sk#35, s_store_name#36, s_zip#37] -Arguments: hashpartitioning(s_store_sk#35, 100), ENSURE_REQUIREMENTS, [plan_id=59] +Input [3]: [s_store_sk#36, s_store_name#37, s_zip#38] +Arguments: hashpartitioning(s_store_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=59] (540) Sort -Input [3]: [s_store_sk#35, s_store_name#36, s_zip#37] -Arguments: [s_store_sk#35 ASC NULLS FIRST], false, 0 +Input [3]: [s_store_sk#36, s_store_name#37, s_zip#38] +Arguments: [s_store_sk#36 ASC NULLS FIRST], false, 0 (541) SortMergeJoin Left keys [1]: [ss_store_sk#7] -Right keys [1]: [s_store_sk#35] +Right keys [1]: [s_store_sk#36] Join type: Inner Join condition: None (542) Project -Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] -Input [14]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_sk#35, s_store_name#36, s_zip#37] +Output [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] +Input [14]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_store_sk#7, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_sk#36, s_store_name#37, s_zip#38] (543) Exchange -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: hashpartitioning(ss_customer_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=60] (544) Sort -Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37] +Input [12]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38] Arguments: [ss_customer_sk#3 ASC NULLS FIRST], false, 0 (545) Scan parquet -Output [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Output [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_first_sales_date_sk), IsNotNull(c_first_shipto_date_sk), IsNotNull(c_current_cdemo_sk), IsNotNull(c_current_hdemo_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (546) Filter -Input [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Condition : (((((isnotnull(c_customer_sk#38) AND isnotnull(c_first_sales_date_sk#43)) AND isnotnull(c_first_shipto_date_sk#42)) AND isnotnull(c_current_cdemo_sk#39)) AND isnotnull(c_current_hdemo_sk#40)) AND isnotnull(c_current_addr_sk#41)) +Input [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Condition : (((((isnotnull(c_customer_sk#39) AND isnotnull(c_first_sales_date_sk#44)) AND isnotnull(c_first_shipto_date_sk#43)) AND isnotnull(c_current_cdemo_sk#40)) AND isnotnull(c_current_hdemo_sk#41)) AND isnotnull(c_current_addr_sk#42)) (547) Exchange -Input [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: hashpartitioning(c_customer_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=61] +Input [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: hashpartitioning(c_customer_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=61] (548) Sort -Input [6]: [c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: [c_customer_sk#38 ASC NULLS FIRST], false, 0 +Input [6]: [c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: [c_customer_sk#39 ASC NULLS FIRST], false, 0 (549) SortMergeJoin Left keys [1]: [ss_customer_sk#3] -Right keys [1]: [c_customer_sk#38] +Right keys [1]: [c_customer_sk#39] Join type: Inner Join condition: None (550) Project -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Input [18]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_customer_sk#38, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Input [18]: [ss_item_sk#2, ss_customer_sk#3, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_customer_sk#39, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] (551) Exchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: hashpartitioning(c_first_sales_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=62] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: hashpartitioning(c_first_sales_date_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=62] (552) Sort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43] -Arguments: [c_first_sales_date_sk#43 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44] +Arguments: [c_first_sales_date_sk#44 ASC NULLS FIRST], false, 0 (553) Scan parquet -Output [2]: [d_date_sk#44, d_year#45] +Output [2]: [d_date_sk#45, d_year#46] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date_sk)] ReadSchema: struct (554) Filter -Input [2]: [d_date_sk#44, d_year#45] -Condition : isnotnull(d_date_sk#44) +Input [2]: [d_date_sk#45, d_year#46] +Condition : isnotnull(d_date_sk#45) (555) Exchange -Input [2]: [d_date_sk#44, d_year#45] -Arguments: hashpartitioning(d_date_sk#44, 100), ENSURE_REQUIREMENTS, [plan_id=63] +Input [2]: [d_date_sk#45, d_year#46] +Arguments: hashpartitioning(d_date_sk#45, 100), ENSURE_REQUIREMENTS, [plan_id=63] (556) Sort -Input [2]: [d_date_sk#44, d_year#45] -Arguments: [d_date_sk#44 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#45, d_year#46] +Arguments: [d_date_sk#45 ASC NULLS FIRST], false, 0 (557) SortMergeJoin -Left keys [1]: [c_first_sales_date_sk#43] -Right keys [1]: [d_date_sk#44] +Left keys [1]: [c_first_sales_date_sk#44] +Right keys [1]: [d_date_sk#45] Join type: Inner Join condition: None (558) Project -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, c_first_sales_date_sk#43, d_date_sk#44, d_year#45] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, c_first_sales_date_sk#44, d_date_sk#45, d_year#46] (559) Exchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Arguments: hashpartitioning(c_first_shipto_date_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=64] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Arguments: hashpartitioning(c_first_shipto_date_sk#43, 100), ENSURE_REQUIREMENTS, [plan_id=64] (560) Sort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45] -Arguments: [c_first_shipto_date_sk#42 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46] +Arguments: [c_first_shipto_date_sk#43 ASC NULLS FIRST], false, 0 (561) Scan parquet -Output [2]: [d_date_sk#46, d_year#47] +Output [2]: [d_date_sk#47, d_year#48] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date_sk)] ReadSchema: struct (562) Filter -Input [2]: [d_date_sk#46, d_year#47] -Condition : isnotnull(d_date_sk#46) +Input [2]: [d_date_sk#47, d_year#48] +Condition : isnotnull(d_date_sk#47) (563) Exchange -Input [2]: [d_date_sk#46, d_year#47] -Arguments: hashpartitioning(d_date_sk#46, 100), ENSURE_REQUIREMENTS, [plan_id=65] +Input [2]: [d_date_sk#47, d_year#48] +Arguments: hashpartitioning(d_date_sk#47, 100), ENSURE_REQUIREMENTS, [plan_id=65] (564) Sort -Input [2]: [d_date_sk#46, d_year#47] -Arguments: [d_date_sk#46 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#47, d_year#48] +Arguments: [d_date_sk#47 ASC NULLS FIRST], false, 0 (565) SortMergeJoin -Left keys [1]: [c_first_shipto_date_sk#42] -Right keys [1]: [d_date_sk#46] +Left keys [1]: [c_first_shipto_date_sk#43] +Right keys [1]: [d_date_sk#47] Join type: Inner Join condition: None (566) Project -Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, c_first_shipto_date_sk#42, d_year#45, d_date_sk#46, d_year#47] +Output [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, c_first_shipto_date_sk#43, d_year#46, d_date_sk#47, d_year#48] (567) Exchange -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_cdemo_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=66] (568) Sort -Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [16]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_cdemo_sk#4 ASC NULLS FIRST], false, 0 (569) Scan parquet -Output [2]: [cd_demo_sk#48, cd_marital_status#49] +Output [2]: [cd_demo_sk#49, cd_marital_status#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cd_demo_sk), IsNotNull(cd_marital_status)] ReadSchema: struct (570) Filter -Input [2]: [cd_demo_sk#48, cd_marital_status#49] -Condition : (isnotnull(cd_demo_sk#48) AND isnotnull(cd_marital_status#49)) +Input [2]: [cd_demo_sk#49, cd_marital_status#50] +Condition : (isnotnull(cd_demo_sk#49) AND isnotnull(cd_marital_status#50)) (571) Exchange -Input [2]: [cd_demo_sk#48, cd_marital_status#49] -Arguments: hashpartitioning(cd_demo_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=67] +Input [2]: [cd_demo_sk#49, cd_marital_status#50] +Arguments: hashpartitioning(cd_demo_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=67] (572) Sort -Input [2]: [cd_demo_sk#48, cd_marital_status#49] -Arguments: [cd_demo_sk#48 ASC NULLS FIRST], false, 0 +Input [2]: [cd_demo_sk#49, cd_marital_status#50] +Arguments: [cd_demo_sk#49 ASC NULLS FIRST], false, 0 (573) SortMergeJoin Left keys [1]: [ss_cdemo_sk#4] -Right keys [1]: [cd_demo_sk#48] +Right keys [1]: [cd_demo_sk#49] Join type: Inner Join condition: None (574) Project -Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_demo_sk#48, cd_marital_status#49] +Output [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Input [18]: [ss_item_sk#2, ss_cdemo_sk#4, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_demo_sk#49, cd_marital_status#50] (575) Exchange -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Arguments: hashpartitioning(c_current_cdemo_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=68] +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Arguments: hashpartitioning(c_current_cdemo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=68] (576) Sort -Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49] -Arguments: [c_current_cdemo_sk#39 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50] +Arguments: [c_current_cdemo_sk#40 ASC NULLS FIRST], false, 0 (577) Scan parquet -Output [2]: [cd_demo_sk#50, cd_marital_status#51] +Output [2]: [cd_demo_sk#51, cd_marital_status#52] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cd_demo_sk), IsNotNull(cd_marital_status)] ReadSchema: struct (578) Filter -Input [2]: [cd_demo_sk#50, cd_marital_status#51] -Condition : (isnotnull(cd_demo_sk#50) AND isnotnull(cd_marital_status#51)) +Input [2]: [cd_demo_sk#51, cd_marital_status#52] +Condition : (isnotnull(cd_demo_sk#51) AND isnotnull(cd_marital_status#52)) (579) Exchange -Input [2]: [cd_demo_sk#50, cd_marital_status#51] -Arguments: hashpartitioning(cd_demo_sk#50, 100), ENSURE_REQUIREMENTS, [plan_id=69] +Input [2]: [cd_demo_sk#51, cd_marital_status#52] +Arguments: hashpartitioning(cd_demo_sk#51, 100), ENSURE_REQUIREMENTS, [plan_id=69] (580) Sort -Input [2]: [cd_demo_sk#50, cd_marital_status#51] -Arguments: [cd_demo_sk#50 ASC NULLS FIRST], false, 0 +Input [2]: [cd_demo_sk#51, cd_marital_status#52] +Arguments: [cd_demo_sk#51 ASC NULLS FIRST], false, 0 (581) SortMergeJoin -Left keys [1]: [c_current_cdemo_sk#39] -Right keys [1]: [cd_demo_sk#50] +Left keys [1]: [c_current_cdemo_sk#40] +Right keys [1]: [cd_demo_sk#51] Join type: Inner -Join condition: NOT (cd_marital_status#49 = cd_marital_status#51) +Join condition: NOT (cd_marital_status#50 = cd_marital_status#52) (582) Project -Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [18]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49, cd_demo_sk#50, cd_marital_status#51] +Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [18]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_cdemo_sk#40, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, cd_marital_status#50, cd_demo_sk#51, cd_marital_status#52] (583) Exchange -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_promo_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=70] (584) Sort -Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_promo_sk#8 ASC NULLS FIRST], false, 0 (585) Scan parquet -Output [1]: [p_promo_sk#52] +Output [1]: [p_promo_sk#53] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(p_promo_sk)] ReadSchema: struct (586) Filter -Input [1]: [p_promo_sk#52] -Condition : isnotnull(p_promo_sk#52) +Input [1]: [p_promo_sk#53] +Condition : isnotnull(p_promo_sk#53) (587) Exchange -Input [1]: [p_promo_sk#52] -Arguments: hashpartitioning(p_promo_sk#52, 100), ENSURE_REQUIREMENTS, [plan_id=71] +Input [1]: [p_promo_sk#53] +Arguments: hashpartitioning(p_promo_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=71] (588) Sort -Input [1]: [p_promo_sk#52] -Arguments: [p_promo_sk#52 ASC NULLS FIRST], false, 0 +Input [1]: [p_promo_sk#53] +Arguments: [p_promo_sk#53 ASC NULLS FIRST], false, 0 (589) SortMergeJoin Left keys [1]: [ss_promo_sk#8] -Right keys [1]: [p_promo_sk#52] +Right keys [1]: [p_promo_sk#53] Join type: Inner Join condition: None (590) Project -Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] -Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, p_promo_sk#52] +Output [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] +Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, p_promo_sk#53] (591) Exchange -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: hashpartitioning(ss_hdemo_sk#5, 100), ENSURE_REQUIREMENTS, [plan_id=72] (592) Sort -Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] +Input [13]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48] Arguments: [ss_hdemo_sk#5 ASC NULLS FIRST], false, 0 (593) Scan parquet -Output [2]: [hd_demo_sk#53, hd_income_band_sk#54] +Output [2]: [hd_demo_sk#54, hd_income_band_sk#55] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)] ReadSchema: struct (594) Filter -Input [2]: [hd_demo_sk#53, hd_income_band_sk#54] -Condition : (isnotnull(hd_demo_sk#53) AND isnotnull(hd_income_band_sk#54)) +Input [2]: [hd_demo_sk#54, hd_income_band_sk#55] +Condition : (isnotnull(hd_demo_sk#54) AND isnotnull(hd_income_band_sk#55)) (595) Exchange -Input [2]: [hd_demo_sk#53, hd_income_band_sk#54] -Arguments: hashpartitioning(hd_demo_sk#53, 100), ENSURE_REQUIREMENTS, [plan_id=73] +Input [2]: [hd_demo_sk#54, hd_income_band_sk#55] +Arguments: hashpartitioning(hd_demo_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=73] (596) Sort -Input [2]: [hd_demo_sk#53, hd_income_band_sk#54] -Arguments: [hd_demo_sk#53 ASC NULLS FIRST], false, 0 +Input [2]: [hd_demo_sk#54, hd_income_band_sk#55] +Arguments: [hd_demo_sk#54 ASC NULLS FIRST], false, 0 (597) SortMergeJoin Left keys [1]: [ss_hdemo_sk#5] -Right keys [1]: [hd_demo_sk#53] +Right keys [1]: [hd_demo_sk#54] Join type: Inner Join condition: None (598) Project -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_demo_sk#53, hd_income_band_sk#54] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Input [15]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_demo_sk#54, hd_income_band_sk#55] (599) Exchange -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Arguments: hashpartitioning(c_current_hdemo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=74] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Arguments: hashpartitioning(c_current_hdemo_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=74] (600) Sort -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54] -Arguments: [c_current_hdemo_sk#40 ASC NULLS FIRST], false, 0 +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55] +Arguments: [c_current_hdemo_sk#41 ASC NULLS FIRST], false, 0 (601) Scan parquet -Output [2]: [hd_demo_sk#55, hd_income_band_sk#56] +Output [2]: [hd_demo_sk#56, hd_income_band_sk#57] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)] ReadSchema: struct (602) Filter -Input [2]: [hd_demo_sk#55, hd_income_band_sk#56] -Condition : (isnotnull(hd_demo_sk#55) AND isnotnull(hd_income_band_sk#56)) +Input [2]: [hd_demo_sk#56, hd_income_band_sk#57] +Condition : (isnotnull(hd_demo_sk#56) AND isnotnull(hd_income_band_sk#57)) (603) Exchange -Input [2]: [hd_demo_sk#55, hd_income_band_sk#56] -Arguments: hashpartitioning(hd_demo_sk#55, 100), ENSURE_REQUIREMENTS, [plan_id=75] +Input [2]: [hd_demo_sk#56, hd_income_band_sk#57] +Arguments: hashpartitioning(hd_demo_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=75] (604) Sort -Input [2]: [hd_demo_sk#55, hd_income_band_sk#56] -Arguments: [hd_demo_sk#55 ASC NULLS FIRST], false, 0 +Input [2]: [hd_demo_sk#56, hd_income_band_sk#57] +Arguments: [hd_demo_sk#56 ASC NULLS FIRST], false, 0 (605) SortMergeJoin -Left keys [1]: [c_current_hdemo_sk#40] -Right keys [1]: [hd_demo_sk#55] +Left keys [1]: [c_current_hdemo_sk#41] +Right keys [1]: [hd_demo_sk#56] Join type: Inner Join condition: None (606) Project -Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] -Input [15]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_demo_sk#55, hd_income_band_sk#56] +Output [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] +Input [15]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_hdemo_sk#41, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_demo_sk#56, hd_income_band_sk#57] (607) Exchange -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: hashpartitioning(ss_addr_sk#6, 100), ENSURE_REQUIREMENTS, [plan_id=76] (608) Sort -Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56] +Input [13]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57] Arguments: [ss_addr_sk#6 ASC NULLS FIRST], false, 0 (609) Scan parquet -Output [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Output [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk)] ReadSchema: struct (610) Filter -Input [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Condition : isnotnull(ca_address_sk#57) +Input [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Condition : isnotnull(ca_address_sk#58) (611) Exchange -Input [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: hashpartitioning(ca_address_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=77] +Input [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: hashpartitioning(ca_address_sk#58, 100), ENSURE_REQUIREMENTS, [plan_id=77] (612) Sort -Input [5]: [ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: [ca_address_sk#57 ASC NULLS FIRST], false, 0 +Input [5]: [ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: [ca_address_sk#58 ASC NULLS FIRST], false, 0 (613) SortMergeJoin Left keys [1]: [ss_addr_sk#6] -Right keys [1]: [ca_address_sk#57] +Right keys [1]: [ca_address_sk#58] Join type: Inner Join condition: None (614) Project -Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Input [18]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_address_sk#57, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] +Output [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Input [18]: [ss_item_sk#2, ss_addr_sk#6, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_address_sk#58, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] (615) Exchange -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: hashpartitioning(c_current_addr_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=78] +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: hashpartitioning(c_current_addr_sk#42, 100), ENSURE_REQUIREMENTS, [plan_id=78] (616) Sort -Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61] -Arguments: [c_current_addr_sk#41 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62] +Arguments: [c_current_addr_sk#42 ASC NULLS FIRST], false, 0 (617) Scan parquet -Output [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk)] ReadSchema: struct (618) Filter -Input [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Condition : isnotnull(ca_address_sk#62) +Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Condition : isnotnull(ca_address_sk#63) (619) Exchange -Input [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: hashpartitioning(ca_address_sk#62, 100), ENSURE_REQUIREMENTS, [plan_id=79] +Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: hashpartitioning(ca_address_sk#63, 100), ENSURE_REQUIREMENTS, [plan_id=79] (620) Sort -Input [5]: [ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [ca_address_sk#62 ASC NULLS FIRST], false, 0 +Input [5]: [ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [ca_address_sk#63 ASC NULLS FIRST], false, 0 (621) SortMergeJoin -Left keys [1]: [c_current_addr_sk#41] -Right keys [1]: [ca_address_sk#62] +Left keys [1]: [c_current_addr_sk#42] +Right keys [1]: [ca_address_sk#63] Join type: Inner Join condition: None (622) Project -Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [21]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_addr_sk#41, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_address_sk#62, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Output [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [21]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, c_current_addr_sk#42, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_address_sk#63, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] (623) Exchange -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: hashpartitioning(hd_income_band_sk#54, 100), ENSURE_REQUIREMENTS, [plan_id=80] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: hashpartitioning(hd_income_band_sk#55, 100), ENSURE_REQUIREMENTS, [plan_id=80] (624) Sort -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [hd_income_band_sk#54 ASC NULLS FIRST], false, 0 +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [hd_income_band_sk#55 ASC NULLS FIRST], false, 0 (625) Scan parquet -Output [1]: [ib_income_band_sk#67] +Output [1]: [ib_income_band_sk#68] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ib_income_band_sk)] ReadSchema: struct (626) Filter -Input [1]: [ib_income_band_sk#67] -Condition : isnotnull(ib_income_band_sk#67) +Input [1]: [ib_income_band_sk#68] +Condition : isnotnull(ib_income_band_sk#68) (627) Exchange -Input [1]: [ib_income_band_sk#67] -Arguments: hashpartitioning(ib_income_band_sk#67, 100), ENSURE_REQUIREMENTS, [plan_id=81] +Input [1]: [ib_income_band_sk#68] +Arguments: hashpartitioning(ib_income_band_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=81] (628) Sort -Input [1]: [ib_income_band_sk#67] -Arguments: [ib_income_band_sk#67 ASC NULLS FIRST], false, 0 +Input [1]: [ib_income_band_sk#68] +Arguments: [ib_income_band_sk#68 ASC NULLS FIRST], false, 0 (629) SortMergeJoin -Left keys [1]: [hd_income_band_sk#54] -Right keys [1]: [ib_income_band_sk#67] +Left keys [1]: [hd_income_band_sk#55] +Right keys [1]: [ib_income_band_sk#68] Join type: Inner Join condition: None (630) Project -Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [20]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#54, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, ib_income_band_sk#67] +Output [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [20]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#55, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, ib_income_band_sk#68] (631) Exchange -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: hashpartitioning(hd_income_band_sk#56, 100), ENSURE_REQUIREMENTS, [plan_id=82] +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: hashpartitioning(hd_income_band_sk#57, 100), ENSURE_REQUIREMENTS, [plan_id=82] (632) Sort -Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Arguments: [hd_income_band_sk#56 ASC NULLS FIRST], false, 0 +Input [18]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Arguments: [hd_income_band_sk#57 ASC NULLS FIRST], false, 0 (633) Scan parquet -Output [1]: [ib_income_band_sk#68] +Output [1]: [ib_income_band_sk#69] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ib_income_band_sk)] ReadSchema: struct (634) Filter -Input [1]: [ib_income_band_sk#68] -Condition : isnotnull(ib_income_band_sk#68) +Input [1]: [ib_income_band_sk#69] +Condition : isnotnull(ib_income_band_sk#69) (635) Exchange -Input [1]: [ib_income_band_sk#68] -Arguments: hashpartitioning(ib_income_band_sk#68, 100), ENSURE_REQUIREMENTS, [plan_id=83] +Input [1]: [ib_income_band_sk#69] +Arguments: hashpartitioning(ib_income_band_sk#69, 100), ENSURE_REQUIREMENTS, [plan_id=83] (636) Sort -Input [1]: [ib_income_band_sk#68] -Arguments: [ib_income_band_sk#68 ASC NULLS FIRST], false, 0 +Input [1]: [ib_income_band_sk#69] +Arguments: [ib_income_band_sk#69 ASC NULLS FIRST], false, 0 (637) SortMergeJoin -Left keys [1]: [hd_income_band_sk#56] -Right keys [1]: [ib_income_band_sk#68] +Left keys [1]: [hd_income_band_sk#57] +Right keys [1]: [ib_income_band_sk#69] Join type: Inner Join condition: None (638) Project -Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, hd_income_band_sk#56, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, ib_income_band_sk#68] +Output [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, hd_income_band_sk#57, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, ib_income_band_sk#69] (639) Exchange -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: hashpartitioning(ss_item_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=84] (640) Sort -Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66] +Input [17]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67] Arguments: [ss_item_sk#2 ASC NULLS FIRST], false, 0 (641) Scan parquet -Output [4]: [i_item_sk#69, i_current_price#70, i_color#71, i_product_name#72] +Output [4]: [i_item_sk#70, i_current_price#71, i_color#72, i_product_name#73] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_current_price), In(i_color, [burlywood,floral,indian,medium,purple,spring]), GreaterThanOrEqual(i_current_price,64.00), LessThanOrEqual(i_current_price,74.00), GreaterThanOrEqual(i_current_price,65.00), LessThanOrEqual(i_current_price,79.00), IsNotNull(i_item_sk)] ReadSchema: struct (642) Filter -Input [4]: [i_item_sk#69, i_current_price#70, i_color#71, i_product_name#72] -Condition : ((((((isnotnull(i_current_price#70) AND i_color#71 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#70 >= 64.00)) AND (i_current_price#70 <= 74.00)) AND (i_current_price#70 >= 65.00)) AND (i_current_price#70 <= 79.00)) AND isnotnull(i_item_sk#69)) +Input [4]: [i_item_sk#70, i_current_price#71, i_color#72, i_product_name#73] +Condition : ((((((isnotnull(i_current_price#71) AND i_color#72 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#71 >= 64.00)) AND (i_current_price#71 <= 74.00)) AND (i_current_price#71 >= 65.00)) AND (i_current_price#71 <= 79.00)) AND isnotnull(i_item_sk#70)) (643) Project -Output [2]: [i_item_sk#69, i_product_name#72] -Input [4]: [i_item_sk#69, i_current_price#70, i_color#71, i_product_name#72] +Output [2]: [i_item_sk#70, i_product_name#73] +Input [4]: [i_item_sk#70, i_current_price#71, i_color#72, i_product_name#73] (644) Exchange -Input [2]: [i_item_sk#69, i_product_name#72] -Arguments: hashpartitioning(i_item_sk#69, 100), ENSURE_REQUIREMENTS, [plan_id=85] +Input [2]: [i_item_sk#70, i_product_name#73] +Arguments: hashpartitioning(i_item_sk#70, 100), ENSURE_REQUIREMENTS, [plan_id=85] (645) Sort -Input [2]: [i_item_sk#69, i_product_name#72] -Arguments: [i_item_sk#69 ASC NULLS FIRST], false, 0 +Input [2]: [i_item_sk#70, i_product_name#73] +Arguments: [i_item_sk#70 ASC NULLS FIRST], false, 0 (646) SortMergeJoin Left keys [1]: [ss_item_sk#2] -Right keys [1]: [i_item_sk#69] +Right keys [1]: [i_item_sk#70] Join type: Inner Join condition: None (647) Project -Output [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, d_year#45, d_year#47, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] -Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, d_year#45, d_year#47, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] +Output [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, d_year#46, d_year#48, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] +Input [19]: [ss_item_sk#2, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, s_store_name#37, s_zip#38, d_year#46, d_year#48, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] (648) HashAggregate -Input [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, d_year#45, d_year#47, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, i_item_sk#69, i_product_name#72] -Keys [15]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47] +Input [18]: [ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#35, d_year#46, d_year#48, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, i_item_sk#70, i_product_name#73] +Keys [15]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48] Functions [4]: [partial_count(1), partial_sum(UnscaledValue(ss_wholesale_cost#10)), partial_sum(UnscaledValue(ss_list_price#11)), partial_sum(UnscaledValue(ss_coupon_amt#12))] -Aggregate Attributes [4]: [count#76, sum#77, sum#78, sum#79] -Results [19]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, count#167, sum#168, sum#169, sum#170] +Aggregate Attributes [4]: [count#77, sum#78, sum#79, sum#80] +Results [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, count#168, sum#169, sum#170, sum#171] (649) HashAggregate -Input [19]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47, count#167, sum#168, sum#169, sum#170] -Keys [15]: [i_product_name#72, i_item_sk#69, s_store_name#36, s_zip#37, ca_street_number#58, ca_street_name#59, ca_city#60, ca_zip#61, ca_street_number#63, ca_street_name#64, ca_city#65, ca_zip#66, d_year#34, d_year#45, d_year#47] +Input [19]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48, count#168, sum#169, sum#170, sum#171] +Keys [15]: [i_product_name#73, i_item_sk#70, s_store_name#37, s_zip#38, ca_street_number#59, ca_street_name#60, ca_city#61, ca_zip#62, ca_street_number#64, ca_street_name#65, ca_city#66, ca_zip#67, d_year#35, d_year#46, d_year#48] Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#10)), sum(UnscaledValue(ss_list_price#11)), sum(UnscaledValue(ss_coupon_amt#12))] -Aggregate Attributes [4]: [count(1)#80, sum(UnscaledValue(ss_wholesale_cost#10))#81, sum(UnscaledValue(ss_list_price#11))#82, sum(UnscaledValue(ss_coupon_amt#12))#83] -Results [17]: [i_product_name#72 AS product_name#84, i_item_sk#69 AS item_sk#85, s_store_name#36 AS store_name#86, s_zip#37 AS store_zip#87, ca_street_number#58 AS b_street_number#88, ca_street_name#59 AS b_streen_name#89, ca_city#60 AS b_city#90, ca_zip#61 AS b_zip#91, ca_street_number#63 AS c_street_number#92, ca_street_name#64 AS c_street_name#93, ca_city#65 AS c_city#94, ca_zip#66 AS c_zip#95, d_year#34 AS syear#96, count(1)#80 AS cnt#97, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#10))#81,17,2) AS s1#98, MakeDecimal(sum(UnscaledValue(ss_list_price#11))#82,17,2) AS s2#99, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#12))#83,17,2) AS s3#100] +Aggregate Attributes [4]: [count(1)#81, sum(UnscaledValue(ss_wholesale_cost#10))#82, sum(UnscaledValue(ss_list_price#11))#83, sum(UnscaledValue(ss_coupon_amt#12))#84] +Results [17]: [i_product_name#73 AS product_name#85, i_item_sk#70 AS item_sk#86, s_store_name#37 AS store_name#87, s_zip#38 AS store_zip#88, ca_street_number#59 AS b_street_number#89, ca_street_name#60 AS b_streen_name#90, ca_city#61 AS b_city#91, ca_zip#62 AS b_zip#92, ca_street_number#64 AS c_street_number#93, ca_street_name#65 AS c_street_name#94, ca_city#66 AS c_city#95, ca_zip#67 AS c_zip#96, d_year#35 AS syear#97, count(1)#81 AS cnt#98, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#10))#82,17,2) AS s1#99, MakeDecimal(sum(UnscaledValue(ss_list_price#11))#83,17,2) AS s2#100, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#12))#84,17,2) AS s3#101] (650) Exchange -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] -Arguments: hashpartitioning(item_sk#85, store_name#86, store_zip#87, 100), ENSURE_REQUIREMENTS, [plan_id=86] +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] +Arguments: hashpartitioning(item_sk#86, store_name#87, store_zip#88, 100), ENSURE_REQUIREMENTS, [plan_id=86] (651) Sort -Input [17]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100] -Arguments: [item_sk#85 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, store_zip#87 ASC NULLS FIRST], false, 0 +Input [17]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101] +Arguments: [item_sk#86 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, store_zip#88 ASC NULLS FIRST], false, 0 (652) Scan parquet -Output [12]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_ticket_number#171, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] +Output [12]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_ticket_number#172, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_item_sk), IsNotNull(ss_ticket_number), IsNotNull(ss_sold_date_sk), IsNotNull(ss_store_sk), IsNotNull(ss_customer_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_promo_sk), IsNotNull(ss_hdemo_sk), IsNotNull(ss_addr_sk)] ReadSchema: struct (653) Filter -Input [12]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_ticket_number#171, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Condition : ((((((((isnotnull(ss_item_sk#102) AND isnotnull(ss_ticket_number#171)) AND isnotnull(ss_sold_date_sk#101)) AND isnotnull(ss_store_sk#107)) AND isnotnull(ss_customer_sk#103)) AND isnotnull(ss_cdemo_sk#104)) AND isnotnull(ss_promo_sk#108)) AND isnotnull(ss_hdemo_sk#105)) AND isnotnull(ss_addr_sk#106)) +Input [12]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_ticket_number#172, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Condition : ((((((((isnotnull(ss_item_sk#103) AND isnotnull(ss_ticket_number#172)) AND isnotnull(ss_sold_date_sk#102)) AND isnotnull(ss_store_sk#108)) AND isnotnull(ss_customer_sk#104)) AND isnotnull(ss_cdemo_sk#105)) AND isnotnull(ss_promo_sk#109)) AND isnotnull(ss_hdemo_sk#106)) AND isnotnull(ss_addr_sk#107)) (654) Exchange -Input [12]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_ticket_number#171, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: hashpartitioning(ss_item_sk#102, ss_ticket_number#171, 100), ENSURE_REQUIREMENTS, [plan_id=87] +Input [12]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_ticket_number#172, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: hashpartitioning(ss_item_sk#103, ss_ticket_number#172, 100), ENSURE_REQUIREMENTS, [plan_id=87] (655) Sort -Input [12]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_ticket_number#171, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: [ss_item_sk#102 ASC NULLS FIRST, ss_ticket_number#171 ASC NULLS FIRST], false, 0 +Input [12]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_ticket_number#172, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: [ss_item_sk#103 ASC NULLS FIRST, ss_ticket_number#172 ASC NULLS FIRST], false, 0 (656) Scan parquet -Output [2]: [sr_item_sk#172, sr_ticket_number#173] +Output [2]: [sr_item_sk#173, sr_ticket_number#174] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(sr_item_sk), IsNotNull(sr_ticket_number)] ReadSchema: struct (657) Filter -Input [2]: [sr_item_sk#172, sr_ticket_number#173] -Condition : (isnotnull(sr_item_sk#172) AND isnotnull(sr_ticket_number#173)) +Input [2]: [sr_item_sk#173, sr_ticket_number#174] +Condition : (isnotnull(sr_item_sk#173) AND isnotnull(sr_ticket_number#174)) (658) Exchange -Input [2]: [sr_item_sk#172, sr_ticket_number#173] -Arguments: hashpartitioning(sr_item_sk#172, sr_ticket_number#173, 100), ENSURE_REQUIREMENTS, [plan_id=88] +Input [2]: [sr_item_sk#173, sr_ticket_number#174] +Arguments: hashpartitioning(sr_item_sk#173, sr_ticket_number#174, 100), ENSURE_REQUIREMENTS, [plan_id=88] (659) Sort -Input [2]: [sr_item_sk#172, sr_ticket_number#173] -Arguments: [sr_item_sk#172 ASC NULLS FIRST, sr_ticket_number#173 ASC NULLS FIRST], false, 0 +Input [2]: [sr_item_sk#173, sr_ticket_number#174] +Arguments: [sr_item_sk#173 ASC NULLS FIRST, sr_ticket_number#174 ASC NULLS FIRST], false, 0 (660) SortMergeJoin -Left keys [2]: [ss_item_sk#102, ss_ticket_number#171] -Right keys [2]: [sr_item_sk#172, sr_ticket_number#173] +Left keys [2]: [ss_item_sk#103, ss_ticket_number#172] +Right keys [2]: [sr_item_sk#173, sr_ticket_number#174] Join type: Inner Join condition: None (661) Project -Output [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Input [14]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_ticket_number#171, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, sr_item_sk#172, sr_ticket_number#173] +Output [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Input [14]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_ticket_number#172, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, sr_item_sk#173, sr_ticket_number#174] (662) Exchange -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: hashpartitioning(ss_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=89] +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: hashpartitioning(ss_item_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=89] (663) Sort -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: [ss_item_sk#102 ASC NULLS FIRST], false, 0 +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: [ss_item_sk#103 ASC NULLS FIRST], false, 0 (664) Scan parquet -Output [3]: [cs_item_sk#174, cs_order_number#175, cs_ext_list_price#176] +Output [3]: [cs_item_sk#175, cs_order_number#176, cs_ext_list_price#177] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_item_sk), IsNotNull(cs_order_number)] ReadSchema: struct (665) Filter -Input [3]: [cs_item_sk#174, cs_order_number#175, cs_ext_list_price#176] -Condition : (isnotnull(cs_item_sk#174) AND isnotnull(cs_order_number#175)) +Input [3]: [cs_item_sk#175, cs_order_number#176, cs_ext_list_price#177] +Condition : (isnotnull(cs_item_sk#175) AND isnotnull(cs_order_number#176)) (666) Exchange -Input [3]: [cs_item_sk#174, cs_order_number#175, cs_ext_list_price#176] -Arguments: hashpartitioning(cs_item_sk#174, cs_order_number#175, 100), ENSURE_REQUIREMENTS, [plan_id=90] +Input [3]: [cs_item_sk#175, cs_order_number#176, cs_ext_list_price#177] +Arguments: hashpartitioning(cs_item_sk#175, cs_order_number#176, 100), ENSURE_REQUIREMENTS, [plan_id=90] (667) Sort -Input [3]: [cs_item_sk#174, cs_order_number#175, cs_ext_list_price#176] -Arguments: [cs_item_sk#174 ASC NULLS FIRST, cs_order_number#175 ASC NULLS FIRST], false, 0 +Input [3]: [cs_item_sk#175, cs_order_number#176, cs_ext_list_price#177] +Arguments: [cs_item_sk#175 ASC NULLS FIRST, cs_order_number#176 ASC NULLS FIRST], false, 0 (668) Scan parquet -Output [5]: [cr_item_sk#177, cr_order_number#178, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] +Output [5]: [cr_item_sk#178, cr_order_number#179, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)] ReadSchema: struct (669) Filter -Input [5]: [cr_item_sk#177, cr_order_number#178, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] -Condition : (isnotnull(cr_item_sk#177) AND isnotnull(cr_order_number#178)) +Input [5]: [cr_item_sk#178, cr_order_number#179, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] +Condition : (isnotnull(cr_item_sk#178) AND isnotnull(cr_order_number#179)) (670) Exchange -Input [5]: [cr_item_sk#177, cr_order_number#178, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] -Arguments: hashpartitioning(cr_item_sk#177, cr_order_number#178, 100), ENSURE_REQUIREMENTS, [plan_id=91] +Input [5]: [cr_item_sk#178, cr_order_number#179, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] +Arguments: hashpartitioning(cr_item_sk#178, cr_order_number#179, 100), ENSURE_REQUIREMENTS, [plan_id=91] (671) Sort -Input [5]: [cr_item_sk#177, cr_order_number#178, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] -Arguments: [cr_item_sk#177 ASC NULLS FIRST, cr_order_number#178 ASC NULLS FIRST], false, 0 +Input [5]: [cr_item_sk#178, cr_order_number#179, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] +Arguments: [cr_item_sk#178 ASC NULLS FIRST, cr_order_number#179 ASC NULLS FIRST], false, 0 (672) SortMergeJoin -Left keys [2]: [cs_item_sk#174, cs_order_number#175] -Right keys [2]: [cr_item_sk#177, cr_order_number#178] +Left keys [2]: [cs_item_sk#175, cs_order_number#176] +Right keys [2]: [cr_item_sk#178, cr_order_number#179] Join type: Inner Join condition: None (673) Project -Output [5]: [cs_item_sk#174, cs_ext_list_price#176, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] -Input [8]: [cs_item_sk#174, cs_order_number#175, cs_ext_list_price#176, cr_item_sk#177, cr_order_number#178, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] +Output [5]: [cs_item_sk#175, cs_ext_list_price#177, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] +Input [8]: [cs_item_sk#175, cs_order_number#176, cs_ext_list_price#177, cr_item_sk#178, cr_order_number#179, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] (674) HashAggregate -Input [5]: [cs_item_sk#174, cs_ext_list_price#176, cr_refunded_cash#179, cr_reversed_charge#180, cr_store_credit#181] -Keys [1]: [cs_item_sk#174] -Functions [2]: [partial_sum(UnscaledValue(cs_ext_list_price#176)), partial_sum(((cr_refunded_cash#179 + cr_reversed_charge#180) + cr_store_credit#181))] -Aggregate Attributes [3]: [sum#182, sum#183, isEmpty#184] -Results [4]: [cs_item_sk#174, sum#185, sum#186, isEmpty#187] +Input [5]: [cs_item_sk#175, cs_ext_list_price#177, cr_refunded_cash#180, cr_reversed_charge#181, cr_store_credit#182] +Keys [1]: [cs_item_sk#175] +Functions [2]: [partial_sum(UnscaledValue(cs_ext_list_price#177)), partial_sum(((cr_refunded_cash#180 + cr_reversed_charge#181) + cr_store_credit#182))] +Aggregate Attributes [3]: [sum#183, sum#184, isEmpty#185] +Results [4]: [cs_item_sk#175, sum#186, sum#187, isEmpty#188] (675) Exchange -Input [4]: [cs_item_sk#174, sum#185, sum#186, isEmpty#187] -Arguments: hashpartitioning(cs_item_sk#174, 100), ENSURE_REQUIREMENTS, [plan_id=92] +Input [4]: [cs_item_sk#175, sum#186, sum#187, isEmpty#188] +Arguments: hashpartitioning(cs_item_sk#175, 100), ENSURE_REQUIREMENTS, [plan_id=92] (676) HashAggregate -Input [4]: [cs_item_sk#174, sum#185, sum#186, isEmpty#187] -Keys [1]: [cs_item_sk#174] -Functions [2]: [sum(UnscaledValue(cs_ext_list_price#176)), sum(((cr_refunded_cash#179 + cr_reversed_charge#180) + cr_store_credit#181))] -Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#176))#29, sum(((cr_refunded_cash#179 + cr_reversed_charge#180) + cr_store_credit#181))#30] -Results [3]: [cs_item_sk#174, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#176))#29,17,2) AS sale#31, sum(((cr_refunded_cash#179 + cr_reversed_charge#180) + cr_store_credit#181))#30 AS refund#32] +Input [4]: [cs_item_sk#175, sum#186, sum#187, isEmpty#188] +Keys [1]: [cs_item_sk#175] +Functions [2]: [sum(UnscaledValue(cs_ext_list_price#177)), sum(((cr_refunded_cash#180 + cr_reversed_charge#181) + cr_store_credit#182))] +Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_list_price#177))#30, sum(((cr_refunded_cash#180 + cr_reversed_charge#181) + cr_store_credit#182))#31] +Results [3]: [cs_item_sk#175, MakeDecimal(sum(UnscaledValue(cs_ext_list_price#177))#30,17,2) AS sale#32, sum(((cr_refunded_cash#180 + cr_reversed_charge#181) + cr_store_credit#182))#31 AS refund#33] (677) Filter -Input [3]: [cs_item_sk#174, sale#31, refund#32] -Condition : ((isnotnull(sale#31) AND isnotnull(refund#32)) AND (cast(sale#31 as decimal(21,2)) > (2 * refund#32))) +Input [3]: [cs_item_sk#175, sale#32, refund#33] +Condition : ((isnotnull(sale#32) AND isnotnull(refund#33)) AND (cast(sale#32 as decimal(21,2)) > (2 * refund#33))) (678) Project -Output [1]: [cs_item_sk#174] -Input [3]: [cs_item_sk#174, sale#31, refund#32] +Output [1]: [cs_item_sk#175] +Input [3]: [cs_item_sk#175, sale#32, refund#33] (679) Sort -Input [1]: [cs_item_sk#174] -Arguments: [cs_item_sk#174 ASC NULLS FIRST], false, 0 +Input [1]: [cs_item_sk#175] +Arguments: [cs_item_sk#175 ASC NULLS FIRST], false, 0 (680) SortMergeJoin -Left keys [1]: [ss_item_sk#102] -Right keys [1]: [cs_item_sk#174] +Left keys [1]: [ss_item_sk#103] +Right keys [1]: [cs_item_sk#175] Join type: Inner Join condition: None (681) Project -Output [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Input [12]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, cs_item_sk#174] +Output [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Input [12]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, cs_item_sk#175] (682) Exchange -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: hashpartitioning(ss_sold_date_sk#101, 100), ENSURE_REQUIREMENTS, [plan_id=93] +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: hashpartitioning(ss_sold_date_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=93] (683) Sort -Input [11]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111] -Arguments: [ss_sold_date_sk#101 ASC NULLS FIRST], false, 0 +Input [11]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112] +Arguments: [ss_sold_date_sk#102 ASC NULLS FIRST], false, 0 (684) Scan parquet -Output [2]: [d_date_sk#112, d_year#113] +Output [2]: [d_date_sk#113, d_year#114] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)] ReadSchema: struct (685) Filter -Input [2]: [d_date_sk#112, d_year#113] -Condition : ((isnotnull(d_year#113) AND (d_year#113 = 2000)) AND isnotnull(d_date_sk#112)) +Input [2]: [d_date_sk#113, d_year#114] +Condition : ((isnotnull(d_year#114) AND (d_year#114 = 2000)) AND isnotnull(d_date_sk#113)) (686) Exchange -Input [2]: [d_date_sk#112, d_year#113] -Arguments: hashpartitioning(d_date_sk#112, 100), ENSURE_REQUIREMENTS, [plan_id=94] +Input [2]: [d_date_sk#113, d_year#114] +Arguments: hashpartitioning(d_date_sk#113, 100), ENSURE_REQUIREMENTS, [plan_id=94] (687) Sort -Input [2]: [d_date_sk#112, d_year#113] -Arguments: [d_date_sk#112 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#113, d_year#114] +Arguments: [d_date_sk#113 ASC NULLS FIRST], false, 0 (688) SortMergeJoin -Left keys [1]: [ss_sold_date_sk#101] -Right keys [1]: [d_date_sk#112] +Left keys [1]: [ss_sold_date_sk#102] +Right keys [1]: [d_date_sk#113] Join type: Inner Join condition: None (689) Project -Output [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Input [13]: [ss_sold_date_sk#101, ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_date_sk#112, d_year#113] +Output [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Input [13]: [ss_sold_date_sk#102, ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_date_sk#113, d_year#114] (690) Exchange -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Arguments: hashpartitioning(ss_store_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=95] +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Arguments: hashpartitioning(ss_store_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=95] (691) Sort -Input [11]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113] -Arguments: [ss_store_sk#107 ASC NULLS FIRST], false, 0 +Input [11]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114] +Arguments: [ss_store_sk#108 ASC NULLS FIRST], false, 0 (692) Scan parquet -Output [3]: [s_store_sk#114, s_store_name#115, s_zip#116] +Output [3]: [s_store_sk#115, s_store_name#116, s_zip#117] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_name), IsNotNull(s_zip)] ReadSchema: struct (693) Filter -Input [3]: [s_store_sk#114, s_store_name#115, s_zip#116] -Condition : ((isnotnull(s_store_sk#114) AND isnotnull(s_store_name#115)) AND isnotnull(s_zip#116)) +Input [3]: [s_store_sk#115, s_store_name#116, s_zip#117] +Condition : ((isnotnull(s_store_sk#115) AND isnotnull(s_store_name#116)) AND isnotnull(s_zip#117)) (694) Exchange -Input [3]: [s_store_sk#114, s_store_name#115, s_zip#116] -Arguments: hashpartitioning(s_store_sk#114, 100), ENSURE_REQUIREMENTS, [plan_id=96] +Input [3]: [s_store_sk#115, s_store_name#116, s_zip#117] +Arguments: hashpartitioning(s_store_sk#115, 100), ENSURE_REQUIREMENTS, [plan_id=96] (695) Sort -Input [3]: [s_store_sk#114, s_store_name#115, s_zip#116] -Arguments: [s_store_sk#114 ASC NULLS FIRST], false, 0 +Input [3]: [s_store_sk#115, s_store_name#116, s_zip#117] +Arguments: [s_store_sk#115 ASC NULLS FIRST], false, 0 (696) SortMergeJoin -Left keys [1]: [ss_store_sk#107] -Right keys [1]: [s_store_sk#114] +Left keys [1]: [ss_store_sk#108] +Right keys [1]: [s_store_sk#115] Join type: Inner Join condition: None (697) Project -Output [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Input [14]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_store_sk#107, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_sk#114, s_store_name#115, s_zip#116] +Output [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Input [14]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_store_sk#108, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_sk#115, s_store_name#116, s_zip#117] (698) Exchange -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Arguments: hashpartitioning(ss_customer_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=97] +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Arguments: hashpartitioning(ss_customer_sk#104, 100), ENSURE_REQUIREMENTS, [plan_id=97] (699) Sort -Input [12]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116] -Arguments: [ss_customer_sk#103 ASC NULLS FIRST], false, 0 +Input [12]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117] +Arguments: [ss_customer_sk#104 ASC NULLS FIRST], false, 0 (700) Scan parquet -Output [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Output [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_first_sales_date_sk), IsNotNull(c_first_shipto_date_sk), IsNotNull(c_current_cdemo_sk), IsNotNull(c_current_hdemo_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (701) Filter -Input [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Condition : (((((isnotnull(c_customer_sk#117) AND isnotnull(c_first_sales_date_sk#122)) AND isnotnull(c_first_shipto_date_sk#121)) AND isnotnull(c_current_cdemo_sk#118)) AND isnotnull(c_current_hdemo_sk#119)) AND isnotnull(c_current_addr_sk#120)) +Input [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Condition : (((((isnotnull(c_customer_sk#118) AND isnotnull(c_first_sales_date_sk#123)) AND isnotnull(c_first_shipto_date_sk#122)) AND isnotnull(c_current_cdemo_sk#119)) AND isnotnull(c_current_hdemo_sk#120)) AND isnotnull(c_current_addr_sk#121)) (702) Exchange -Input [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: hashpartitioning(c_customer_sk#117, 100), ENSURE_REQUIREMENTS, [plan_id=98] +Input [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: hashpartitioning(c_customer_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=98] (703) Sort -Input [6]: [c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: [c_customer_sk#117 ASC NULLS FIRST], false, 0 +Input [6]: [c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: [c_customer_sk#118 ASC NULLS FIRST], false, 0 (704) SortMergeJoin -Left keys [1]: [ss_customer_sk#103] -Right keys [1]: [c_customer_sk#117] +Left keys [1]: [ss_customer_sk#104] +Right keys [1]: [c_customer_sk#118] Join type: Inner Join condition: None (705) Project -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Input [18]: [ss_item_sk#102, ss_customer_sk#103, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_customer_sk#117, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Input [18]: [ss_item_sk#103, ss_customer_sk#104, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_customer_sk#118, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] (706) Exchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: hashpartitioning(c_first_sales_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=99] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: hashpartitioning(c_first_sales_date_sk#123, 100), ENSURE_REQUIREMENTS, [plan_id=99] (707) Sort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122] -Arguments: [c_first_sales_date_sk#122 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123] +Arguments: [c_first_sales_date_sk#123 ASC NULLS FIRST], false, 0 (708) Scan parquet -Output [2]: [d_date_sk#123, d_year#124] +Output [2]: [d_date_sk#124, d_year#125] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date_sk)] ReadSchema: struct (709) Filter -Input [2]: [d_date_sk#123, d_year#124] -Condition : isnotnull(d_date_sk#123) +Input [2]: [d_date_sk#124, d_year#125] +Condition : isnotnull(d_date_sk#124) (710) Exchange -Input [2]: [d_date_sk#123, d_year#124] -Arguments: hashpartitioning(d_date_sk#123, 100), ENSURE_REQUIREMENTS, [plan_id=100] +Input [2]: [d_date_sk#124, d_year#125] +Arguments: hashpartitioning(d_date_sk#124, 100), ENSURE_REQUIREMENTS, [plan_id=100] (711) Sort -Input [2]: [d_date_sk#123, d_year#124] -Arguments: [d_date_sk#123 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#124, d_year#125] +Arguments: [d_date_sk#124 ASC NULLS FIRST], false, 0 (712) SortMergeJoin -Left keys [1]: [c_first_sales_date_sk#122] -Right keys [1]: [d_date_sk#123] +Left keys [1]: [c_first_sales_date_sk#123] +Right keys [1]: [d_date_sk#124] Join type: Inner Join condition: None (713) Project -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, c_first_sales_date_sk#122, d_date_sk#123, d_year#124] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, c_first_sales_date_sk#123, d_date_sk#124, d_year#125] (714) Exchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Arguments: hashpartitioning(c_first_shipto_date_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=101] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Arguments: hashpartitioning(c_first_shipto_date_sk#122, 100), ENSURE_REQUIREMENTS, [plan_id=101] (715) Sort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124] -Arguments: [c_first_shipto_date_sk#121 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125] +Arguments: [c_first_shipto_date_sk#122 ASC NULLS FIRST], false, 0 (716) Scan parquet -Output [2]: [d_date_sk#125, d_year#126] +Output [2]: [d_date_sk#126, d_year#127] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date_sk)] ReadSchema: struct (717) Filter -Input [2]: [d_date_sk#125, d_year#126] -Condition : isnotnull(d_date_sk#125) +Input [2]: [d_date_sk#126, d_year#127] +Condition : isnotnull(d_date_sk#126) (718) Exchange -Input [2]: [d_date_sk#125, d_year#126] -Arguments: hashpartitioning(d_date_sk#125, 100), ENSURE_REQUIREMENTS, [plan_id=102] +Input [2]: [d_date_sk#126, d_year#127] +Arguments: hashpartitioning(d_date_sk#126, 100), ENSURE_REQUIREMENTS, [plan_id=102] (719) Sort -Input [2]: [d_date_sk#125, d_year#126] -Arguments: [d_date_sk#125 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#126, d_year#127] +Arguments: [d_date_sk#126 ASC NULLS FIRST], false, 0 (720) SortMergeJoin -Left keys [1]: [c_first_shipto_date_sk#121] -Right keys [1]: [d_date_sk#125] +Left keys [1]: [c_first_shipto_date_sk#122] +Right keys [1]: [d_date_sk#126] Join type: Inner Join condition: None (721) Project -Output [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, c_first_shipto_date_sk#121, d_year#124, d_date_sk#125, d_year#126] +Output [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, c_first_shipto_date_sk#122, d_year#125, d_date_sk#126, d_year#127] (722) Exchange -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_cdemo_sk#104, 100), ENSURE_REQUIREMENTS, [plan_id=103] +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_cdemo_sk#105, 100), ENSURE_REQUIREMENTS, [plan_id=103] (723) Sort -Input [16]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_cdemo_sk#104 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_cdemo_sk#105 ASC NULLS FIRST], false, 0 (724) Scan parquet -Output [2]: [cd_demo_sk#127, cd_marital_status#128] +Output [2]: [cd_demo_sk#128, cd_marital_status#129] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cd_demo_sk), IsNotNull(cd_marital_status)] ReadSchema: struct (725) Filter -Input [2]: [cd_demo_sk#127, cd_marital_status#128] -Condition : (isnotnull(cd_demo_sk#127) AND isnotnull(cd_marital_status#128)) +Input [2]: [cd_demo_sk#128, cd_marital_status#129] +Condition : (isnotnull(cd_demo_sk#128) AND isnotnull(cd_marital_status#129)) (726) Exchange -Input [2]: [cd_demo_sk#127, cd_marital_status#128] -Arguments: hashpartitioning(cd_demo_sk#127, 100), ENSURE_REQUIREMENTS, [plan_id=104] +Input [2]: [cd_demo_sk#128, cd_marital_status#129] +Arguments: hashpartitioning(cd_demo_sk#128, 100), ENSURE_REQUIREMENTS, [plan_id=104] (727) Sort -Input [2]: [cd_demo_sk#127, cd_marital_status#128] -Arguments: [cd_demo_sk#127 ASC NULLS FIRST], false, 0 +Input [2]: [cd_demo_sk#128, cd_marital_status#129] +Arguments: [cd_demo_sk#128 ASC NULLS FIRST], false, 0 (728) SortMergeJoin -Left keys [1]: [ss_cdemo_sk#104] -Right keys [1]: [cd_demo_sk#127] +Left keys [1]: [ss_cdemo_sk#105] +Right keys [1]: [cd_demo_sk#128] Join type: Inner Join condition: None (729) Project -Output [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Input [18]: [ss_item_sk#102, ss_cdemo_sk#104, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_demo_sk#127, cd_marital_status#128] +Output [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Input [18]: [ss_item_sk#103, ss_cdemo_sk#105, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_demo_sk#128, cd_marital_status#129] (730) Exchange -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Arguments: hashpartitioning(c_current_cdemo_sk#118, 100), ENSURE_REQUIREMENTS, [plan_id=105] +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Arguments: hashpartitioning(c_current_cdemo_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=105] (731) Sort -Input [16]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128] -Arguments: [c_current_cdemo_sk#118 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129] +Arguments: [c_current_cdemo_sk#119 ASC NULLS FIRST], false, 0 (732) Scan parquet -Output [2]: [cd_demo_sk#129, cd_marital_status#130] +Output [2]: [cd_demo_sk#130, cd_marital_status#131] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cd_demo_sk), IsNotNull(cd_marital_status)] ReadSchema: struct (733) Filter -Input [2]: [cd_demo_sk#129, cd_marital_status#130] -Condition : (isnotnull(cd_demo_sk#129) AND isnotnull(cd_marital_status#130)) +Input [2]: [cd_demo_sk#130, cd_marital_status#131] +Condition : (isnotnull(cd_demo_sk#130) AND isnotnull(cd_marital_status#131)) (734) Exchange -Input [2]: [cd_demo_sk#129, cd_marital_status#130] -Arguments: hashpartitioning(cd_demo_sk#129, 100), ENSURE_REQUIREMENTS, [plan_id=106] +Input [2]: [cd_demo_sk#130, cd_marital_status#131] +Arguments: hashpartitioning(cd_demo_sk#130, 100), ENSURE_REQUIREMENTS, [plan_id=106] (735) Sort -Input [2]: [cd_demo_sk#129, cd_marital_status#130] -Arguments: [cd_demo_sk#129 ASC NULLS FIRST], false, 0 +Input [2]: [cd_demo_sk#130, cd_marital_status#131] +Arguments: [cd_demo_sk#130 ASC NULLS FIRST], false, 0 (736) SortMergeJoin -Left keys [1]: [c_current_cdemo_sk#118] -Right keys [1]: [cd_demo_sk#129] +Left keys [1]: [c_current_cdemo_sk#119] +Right keys [1]: [cd_demo_sk#130] Join type: Inner -Join condition: NOT (cd_marital_status#128 = cd_marital_status#130) +Join condition: NOT (cd_marital_status#129 = cd_marital_status#131) (737) Project -Output [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [18]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128, cd_demo_sk#129, cd_marital_status#130] +Output [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [18]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_cdemo_sk#119, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, cd_marital_status#129, cd_demo_sk#130, cd_marital_status#131] (738) Exchange -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_promo_sk#108, 100), ENSURE_REQUIREMENTS, [plan_id=107] +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_promo_sk#109, 100), ENSURE_REQUIREMENTS, [plan_id=107] (739) Sort -Input [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_promo_sk#108 ASC NULLS FIRST], false, 0 +Input [14]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_promo_sk#109 ASC NULLS FIRST], false, 0 (740) Scan parquet -Output [1]: [p_promo_sk#131] +Output [1]: [p_promo_sk#132] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(p_promo_sk)] ReadSchema: struct (741) Filter -Input [1]: [p_promo_sk#131] -Condition : isnotnull(p_promo_sk#131) +Input [1]: [p_promo_sk#132] +Condition : isnotnull(p_promo_sk#132) (742) Exchange -Input [1]: [p_promo_sk#131] -Arguments: hashpartitioning(p_promo_sk#131, 100), ENSURE_REQUIREMENTS, [plan_id=108] +Input [1]: [p_promo_sk#132] +Arguments: hashpartitioning(p_promo_sk#132, 100), ENSURE_REQUIREMENTS, [plan_id=108] (743) Sort -Input [1]: [p_promo_sk#131] -Arguments: [p_promo_sk#131 ASC NULLS FIRST], false, 0 +Input [1]: [p_promo_sk#132] +Arguments: [p_promo_sk#132 ASC NULLS FIRST], false, 0 (744) SortMergeJoin -Left keys [1]: [ss_promo_sk#108] -Right keys [1]: [p_promo_sk#131] +Left keys [1]: [ss_promo_sk#109] +Right keys [1]: [p_promo_sk#132] Join type: Inner Join condition: None (745) Project -Output [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Input [15]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, p_promo_sk#131] +Output [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Input [15]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_promo_sk#109, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, p_promo_sk#132] (746) Exchange -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: hashpartitioning(ss_hdemo_sk#105, 100), ENSURE_REQUIREMENTS, [plan_id=109] +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: hashpartitioning(ss_hdemo_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=109] (747) Sort -Input [13]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] -Arguments: [ss_hdemo_sk#105 ASC NULLS FIRST], false, 0 +Input [13]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127] +Arguments: [ss_hdemo_sk#106 ASC NULLS FIRST], false, 0 (748) Scan parquet -Output [2]: [hd_demo_sk#132, hd_income_band_sk#133] +Output [2]: [hd_demo_sk#133, hd_income_band_sk#134] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)] ReadSchema: struct (749) Filter -Input [2]: [hd_demo_sk#132, hd_income_band_sk#133] -Condition : (isnotnull(hd_demo_sk#132) AND isnotnull(hd_income_band_sk#133)) +Input [2]: [hd_demo_sk#133, hd_income_band_sk#134] +Condition : (isnotnull(hd_demo_sk#133) AND isnotnull(hd_income_band_sk#134)) (750) Exchange -Input [2]: [hd_demo_sk#132, hd_income_band_sk#133] -Arguments: hashpartitioning(hd_demo_sk#132, 100), ENSURE_REQUIREMENTS, [plan_id=110] +Input [2]: [hd_demo_sk#133, hd_income_band_sk#134] +Arguments: hashpartitioning(hd_demo_sk#133, 100), ENSURE_REQUIREMENTS, [plan_id=110] (751) Sort -Input [2]: [hd_demo_sk#132, hd_income_band_sk#133] -Arguments: [hd_demo_sk#132 ASC NULLS FIRST], false, 0 +Input [2]: [hd_demo_sk#133, hd_income_band_sk#134] +Arguments: [hd_demo_sk#133 ASC NULLS FIRST], false, 0 (752) SortMergeJoin -Left keys [1]: [ss_hdemo_sk#105] -Right keys [1]: [hd_demo_sk#132] +Left keys [1]: [ss_hdemo_sk#106] +Right keys [1]: [hd_demo_sk#133] Join type: Inner Join condition: None (753) Project -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Input [15]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_demo_sk#132, hd_income_band_sk#133] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Input [15]: [ss_item_sk#103, ss_hdemo_sk#106, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_demo_sk#133, hd_income_band_sk#134] (754) Exchange -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Arguments: hashpartitioning(c_current_hdemo_sk#119, 100), ENSURE_REQUIREMENTS, [plan_id=111] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Arguments: hashpartitioning(c_current_hdemo_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=111] (755) Sort -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133] -Arguments: [c_current_hdemo_sk#119 ASC NULLS FIRST], false, 0 +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134] +Arguments: [c_current_hdemo_sk#120 ASC NULLS FIRST], false, 0 (756) Scan parquet -Output [2]: [hd_demo_sk#134, hd_income_band_sk#135] +Output [2]: [hd_demo_sk#135, hd_income_band_sk#136] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(hd_demo_sk), IsNotNull(hd_income_band_sk)] ReadSchema: struct (757) Filter -Input [2]: [hd_demo_sk#134, hd_income_band_sk#135] -Condition : (isnotnull(hd_demo_sk#134) AND isnotnull(hd_income_band_sk#135)) +Input [2]: [hd_demo_sk#135, hd_income_band_sk#136] +Condition : (isnotnull(hd_demo_sk#135) AND isnotnull(hd_income_band_sk#136)) (758) Exchange -Input [2]: [hd_demo_sk#134, hd_income_band_sk#135] -Arguments: hashpartitioning(hd_demo_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=112] +Input [2]: [hd_demo_sk#135, hd_income_band_sk#136] +Arguments: hashpartitioning(hd_demo_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=112] (759) Sort -Input [2]: [hd_demo_sk#134, hd_income_band_sk#135] -Arguments: [hd_demo_sk#134 ASC NULLS FIRST], false, 0 +Input [2]: [hd_demo_sk#135, hd_income_band_sk#136] +Arguments: [hd_demo_sk#135 ASC NULLS FIRST], false, 0 (760) SortMergeJoin -Left keys [1]: [c_current_hdemo_sk#119] -Right keys [1]: [hd_demo_sk#134] +Left keys [1]: [c_current_hdemo_sk#120] +Right keys [1]: [hd_demo_sk#135] Join type: Inner Join condition: None (761) Project -Output [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Input [15]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_demo_sk#134, hd_income_band_sk#135] +Output [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Input [15]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_hdemo_sk#120, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_demo_sk#135, hd_income_band_sk#136] (762) Exchange -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Arguments: hashpartitioning(ss_addr_sk#106, 100), ENSURE_REQUIREMENTS, [plan_id=113] +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Arguments: hashpartitioning(ss_addr_sk#107, 100), ENSURE_REQUIREMENTS, [plan_id=113] (763) Sort -Input [13]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135] -Arguments: [ss_addr_sk#106 ASC NULLS FIRST], false, 0 +Input [13]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136] +Arguments: [ss_addr_sk#107 ASC NULLS FIRST], false, 0 (764) Scan parquet -Output [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Output [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk)] ReadSchema: struct (765) Filter -Input [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Condition : isnotnull(ca_address_sk#136) +Input [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Condition : isnotnull(ca_address_sk#137) (766) Exchange -Input [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: hashpartitioning(ca_address_sk#136, 100), ENSURE_REQUIREMENTS, [plan_id=114] +Input [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: hashpartitioning(ca_address_sk#137, 100), ENSURE_REQUIREMENTS, [plan_id=114] (767) Sort -Input [5]: [ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: [ca_address_sk#136 ASC NULLS FIRST], false, 0 +Input [5]: [ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: [ca_address_sk#137 ASC NULLS FIRST], false, 0 (768) SortMergeJoin -Left keys [1]: [ss_addr_sk#106] -Right keys [1]: [ca_address_sk#136] +Left keys [1]: [ss_addr_sk#107] +Right keys [1]: [ca_address_sk#137] Join type: Inner Join condition: None (769) Project -Output [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Input [18]: [ss_item_sk#102, ss_addr_sk#106, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_address_sk#136, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] +Output [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Input [18]: [ss_item_sk#103, ss_addr_sk#107, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_address_sk#137, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] (770) Exchange -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: hashpartitioning(c_current_addr_sk#120, 100), ENSURE_REQUIREMENTS, [plan_id=115] +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: hashpartitioning(c_current_addr_sk#121, 100), ENSURE_REQUIREMENTS, [plan_id=115] (771) Sort -Input [16]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140] -Arguments: [c_current_addr_sk#120 ASC NULLS FIRST], false, 0 +Input [16]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141] +Arguments: [c_current_addr_sk#121 ASC NULLS FIRST], false, 0 (772) Scan parquet -Output [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_address_sk)] ReadSchema: struct (773) Filter -Input [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Condition : isnotnull(ca_address_sk#141) +Input [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Condition : isnotnull(ca_address_sk#142) (774) Exchange -Input [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(ca_address_sk#141, 100), ENSURE_REQUIREMENTS, [plan_id=116] +Input [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(ca_address_sk#142, 100), ENSURE_REQUIREMENTS, [plan_id=116] (775) Sort -Input [5]: [ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [ca_address_sk#141 ASC NULLS FIRST], false, 0 +Input [5]: [ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [ca_address_sk#142 ASC NULLS FIRST], false, 0 (776) SortMergeJoin -Left keys [1]: [c_current_addr_sk#120] -Right keys [1]: [ca_address_sk#141] +Left keys [1]: [c_current_addr_sk#121] +Right keys [1]: [ca_address_sk#142] Join type: Inner Join condition: None (777) Project -Output [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [21]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_addr_sk#120, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_address_sk#141, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] +Output [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [21]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, c_current_addr_sk#121, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_address_sk#142, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] (778) Exchange -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(hd_income_band_sk#133, 100), ENSURE_REQUIREMENTS, [plan_id=117] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(hd_income_band_sk#134, 100), ENSURE_REQUIREMENTS, [plan_id=117] (779) Sort -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [hd_income_band_sk#133 ASC NULLS FIRST], false, 0 +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [hd_income_band_sk#134 ASC NULLS FIRST], false, 0 (780) Scan parquet -Output [1]: [ib_income_band_sk#146] +Output [1]: [ib_income_band_sk#147] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ib_income_band_sk)] ReadSchema: struct (781) Filter -Input [1]: [ib_income_band_sk#146] -Condition : isnotnull(ib_income_band_sk#146) +Input [1]: [ib_income_band_sk#147] +Condition : isnotnull(ib_income_band_sk#147) (782) Exchange -Input [1]: [ib_income_band_sk#146] -Arguments: hashpartitioning(ib_income_band_sk#146, 100), ENSURE_REQUIREMENTS, [plan_id=118] +Input [1]: [ib_income_band_sk#147] +Arguments: hashpartitioning(ib_income_band_sk#147, 100), ENSURE_REQUIREMENTS, [plan_id=118] (783) Sort -Input [1]: [ib_income_band_sk#146] -Arguments: [ib_income_band_sk#146 ASC NULLS FIRST], false, 0 +Input [1]: [ib_income_band_sk#147] +Arguments: [ib_income_band_sk#147 ASC NULLS FIRST], false, 0 (784) SortMergeJoin -Left keys [1]: [hd_income_band_sk#133] -Right keys [1]: [ib_income_band_sk#146] +Left keys [1]: [hd_income_band_sk#134] +Right keys [1]: [ib_income_band_sk#147] Join type: Inner Join condition: None (785) Project -Output [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [20]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#133, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, ib_income_band_sk#146] +Output [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [20]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#134, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, ib_income_band_sk#147] (786) Exchange -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(hd_income_band_sk#135, 100), ENSURE_REQUIREMENTS, [plan_id=119] +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(hd_income_band_sk#136, 100), ENSURE_REQUIREMENTS, [plan_id=119] (787) Sort -Input [18]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [hd_income_band_sk#135 ASC NULLS FIRST], false, 0 +Input [18]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [hd_income_band_sk#136 ASC NULLS FIRST], false, 0 (788) Scan parquet -Output [1]: [ib_income_band_sk#147] +Output [1]: [ib_income_band_sk#148] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ib_income_band_sk)] ReadSchema: struct (789) Filter -Input [1]: [ib_income_band_sk#147] -Condition : isnotnull(ib_income_band_sk#147) +Input [1]: [ib_income_band_sk#148] +Condition : isnotnull(ib_income_band_sk#148) (790) Exchange -Input [1]: [ib_income_band_sk#147] -Arguments: hashpartitioning(ib_income_band_sk#147, 100), ENSURE_REQUIREMENTS, [plan_id=120] +Input [1]: [ib_income_band_sk#148] +Arguments: hashpartitioning(ib_income_band_sk#148, 100), ENSURE_REQUIREMENTS, [plan_id=120] (791) Sort -Input [1]: [ib_income_band_sk#147] -Arguments: [ib_income_band_sk#147 ASC NULLS FIRST], false, 0 +Input [1]: [ib_income_band_sk#148] +Arguments: [ib_income_band_sk#148 ASC NULLS FIRST], false, 0 (792) SortMergeJoin -Left keys [1]: [hd_income_band_sk#135] -Right keys [1]: [ib_income_band_sk#147] +Left keys [1]: [hd_income_band_sk#136] +Right keys [1]: [ib_income_band_sk#148] Join type: Inner Join condition: None (793) Project -Output [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, hd_income_band_sk#135, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, ib_income_band_sk#147] +Output [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, hd_income_band_sk#136, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, ib_income_band_sk#148] (794) Exchange -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: hashpartitioning(ss_item_sk#102, 100), ENSURE_REQUIREMENTS, [plan_id=121] +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: hashpartitioning(ss_item_sk#103, 100), ENSURE_REQUIREMENTS, [plan_id=121] (795) Sort -Input [17]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145] -Arguments: [ss_item_sk#102 ASC NULLS FIRST], false, 0 +Input [17]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146] +Arguments: [ss_item_sk#103 ASC NULLS FIRST], false, 0 (796) Scan parquet -Output [4]: [i_item_sk#148, i_current_price#188, i_color#189, i_product_name#149] +Output [4]: [i_item_sk#149, i_current_price#189, i_color#190, i_product_name#150] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(i_current_price), In(i_color, [burlywood,floral,indian,medium,purple,spring]), GreaterThanOrEqual(i_current_price,64.00), LessThanOrEqual(i_current_price,74.00), GreaterThanOrEqual(i_current_price,65.00), LessThanOrEqual(i_current_price,79.00), IsNotNull(i_item_sk)] ReadSchema: struct (797) Filter -Input [4]: [i_item_sk#148, i_current_price#188, i_color#189, i_product_name#149] -Condition : ((((((isnotnull(i_current_price#188) AND i_color#189 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#188 >= 64.00)) AND (i_current_price#188 <= 74.00)) AND (i_current_price#188 >= 65.00)) AND (i_current_price#188 <= 79.00)) AND isnotnull(i_item_sk#148)) +Input [4]: [i_item_sk#149, i_current_price#189, i_color#190, i_product_name#150] +Condition : ((((((isnotnull(i_current_price#189) AND i_color#190 IN (purple,burlywood,indian,spring,floral,medium)) AND (i_current_price#189 >= 64.00)) AND (i_current_price#189 <= 74.00)) AND (i_current_price#189 >= 65.00)) AND (i_current_price#189 <= 79.00)) AND isnotnull(i_item_sk#149)) (798) Project -Output [2]: [i_item_sk#148, i_product_name#149] -Input [4]: [i_item_sk#148, i_current_price#188, i_color#189, i_product_name#149] +Output [2]: [i_item_sk#149, i_product_name#150] +Input [4]: [i_item_sk#149, i_current_price#189, i_color#190, i_product_name#150] (799) Exchange -Input [2]: [i_item_sk#148, i_product_name#149] -Arguments: hashpartitioning(i_item_sk#148, 100), ENSURE_REQUIREMENTS, [plan_id=122] +Input [2]: [i_item_sk#149, i_product_name#150] +Arguments: hashpartitioning(i_item_sk#149, 100), ENSURE_REQUIREMENTS, [plan_id=122] (800) Sort -Input [2]: [i_item_sk#148, i_product_name#149] -Arguments: [i_item_sk#148 ASC NULLS FIRST], false, 0 +Input [2]: [i_item_sk#149, i_product_name#150] +Arguments: [i_item_sk#149 ASC NULLS FIRST], false, 0 (801) SortMergeJoin -Left keys [1]: [ss_item_sk#102] -Right keys [1]: [i_item_sk#148] +Left keys [1]: [ss_item_sk#103] +Right keys [1]: [i_item_sk#149] Join type: Inner Join condition: None (802) Project -Output [18]: [ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, d_year#124, d_year#126, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, i_item_sk#148, i_product_name#149] -Input [19]: [ss_item_sk#102, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, d_year#124, d_year#126, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, i_item_sk#148, i_product_name#149] +Output [18]: [ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, d_year#125, d_year#127, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, i_item_sk#149, i_product_name#150] +Input [19]: [ss_item_sk#103, ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, s_store_name#116, s_zip#117, d_year#125, d_year#127, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, i_item_sk#149, i_product_name#150] (803) HashAggregate -Input [18]: [ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, d_year#124, d_year#126, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, i_item_sk#148, i_product_name#149] -Keys [15]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126] -Functions [4]: [partial_count(1), partial_sum(UnscaledValue(ss_wholesale_cost#109)), partial_sum(UnscaledValue(ss_list_price#110)), partial_sum(UnscaledValue(ss_coupon_amt#111))] -Aggregate Attributes [4]: [count#76, sum#153, sum#154, sum#155] -Results [19]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, count#167, sum#190, sum#191, sum#192] +Input [18]: [ss_wholesale_cost#110, ss_list_price#111, ss_coupon_amt#112, d_year#114, d_year#125, d_year#127, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, i_item_sk#149, i_product_name#150] +Keys [15]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127] +Functions [4]: [partial_count(1), partial_sum(UnscaledValue(ss_wholesale_cost#110)), partial_sum(UnscaledValue(ss_list_price#111)), partial_sum(UnscaledValue(ss_coupon_amt#112))] +Aggregate Attributes [4]: [count#77, sum#154, sum#155, sum#156] +Results [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, count#168, sum#191, sum#192, sum#193] (804) HashAggregate -Input [19]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126, count#167, sum#190, sum#191, sum#192] -Keys [15]: [i_product_name#149, i_item_sk#148, s_store_name#115, s_zip#116, ca_street_number#137, ca_street_name#138, ca_city#139, ca_zip#140, ca_street_number#142, ca_street_name#143, ca_city#144, ca_zip#145, d_year#113, d_year#124, d_year#126] -Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#109)), sum(UnscaledValue(ss_list_price#110)), sum(UnscaledValue(ss_coupon_amt#111))] -Aggregate Attributes [4]: [count(1)#80, sum(UnscaledValue(ss_wholesale_cost#109))#81, sum(UnscaledValue(ss_list_price#110))#82, sum(UnscaledValue(ss_coupon_amt#111))#83] -Results [8]: [i_item_sk#148 AS item_sk#156, s_store_name#115 AS store_name#157, s_zip#116 AS store_zip#158, d_year#113 AS syear#159, count(1)#80 AS cnt#160, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#109))#81,17,2) AS s1#161, MakeDecimal(sum(UnscaledValue(ss_list_price#110))#82,17,2) AS s2#162, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#111))#83,17,2) AS s3#163] +Input [19]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127, count#168, sum#191, sum#192, sum#193] +Keys [15]: [i_product_name#150, i_item_sk#149, s_store_name#116, s_zip#117, ca_street_number#138, ca_street_name#139, ca_city#140, ca_zip#141, ca_street_number#143, ca_street_name#144, ca_city#145, ca_zip#146, d_year#114, d_year#125, d_year#127] +Functions [4]: [count(1), sum(UnscaledValue(ss_wholesale_cost#110)), sum(UnscaledValue(ss_list_price#111)), sum(UnscaledValue(ss_coupon_amt#112))] +Aggregate Attributes [4]: [count(1)#81, sum(UnscaledValue(ss_wholesale_cost#110))#82, sum(UnscaledValue(ss_list_price#111))#83, sum(UnscaledValue(ss_coupon_amt#112))#84] +Results [8]: [i_item_sk#149 AS item_sk#157, s_store_name#116 AS store_name#158, s_zip#117 AS store_zip#159, d_year#114 AS syear#160, count(1)#81 AS cnt#161, MakeDecimal(sum(UnscaledValue(ss_wholesale_cost#110))#82,17,2) AS s1#162, MakeDecimal(sum(UnscaledValue(ss_list_price#111))#83,17,2) AS s2#163, MakeDecimal(sum(UnscaledValue(ss_coupon_amt#112))#84,17,2) AS s3#164] (805) Exchange -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] -Arguments: hashpartitioning(item_sk#156, store_name#157, store_zip#158, 100), ENSURE_REQUIREMENTS, [plan_id=123] +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] +Arguments: hashpartitioning(item_sk#157, store_name#158, store_zip#159, 100), ENSURE_REQUIREMENTS, [plan_id=123] (806) Sort -Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] -Arguments: [item_sk#156 ASC NULLS FIRST, store_name#157 ASC NULLS FIRST, store_zip#158 ASC NULLS FIRST], false, 0 +Input [8]: [item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] +Arguments: [item_sk#157 ASC NULLS FIRST, store_name#158 ASC NULLS FIRST, store_zip#159 ASC NULLS FIRST], false, 0 (807) SortMergeJoin -Left keys [3]: [item_sk#85, store_name#86, store_zip#87] -Right keys [3]: [item_sk#156, store_name#157, store_zip#158] +Left keys [3]: [item_sk#86, store_name#87, store_zip#88] +Right keys [3]: [item_sk#157, store_name#158, store_zip#159] Join type: Inner -Join condition: (cnt#160 <= cnt#97) +Join condition: (cnt#161 <= cnt#98) (808) Project -Output [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Input [25]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] +Output [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Input [25]: [product_name#85, item_sk#86, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, item_sk#157, store_name#158, store_zip#159, syear#160, cnt#161, s1#162, s2#163, s3#164] (809) Exchange -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Arguments: rangepartitioning(product_name#84 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, cnt#160 ASC NULLS FIRST, s1#98 ASC NULLS FIRST, s1#161 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=124] +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Arguments: rangepartitioning(product_name#85 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, cnt#161 ASC NULLS FIRST, s1#99 ASC NULLS FIRST, s1#162 ASC NULLS FIRST, 100), ENSURE_REQUIREMENTS, [plan_id=124] (810) Sort -Input [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] -Arguments: [product_name#84 ASC NULLS FIRST, store_name#86 ASC NULLS FIRST, cnt#160 ASC NULLS FIRST, s1#98 ASC NULLS FIRST, s1#161 ASC NULLS FIRST], true, 0 +Input [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] +Arguments: [product_name#85 ASC NULLS FIRST, store_name#87 ASC NULLS FIRST, cnt#161 ASC NULLS FIRST, s1#99 ASC NULLS FIRST, s1#162 ASC NULLS FIRST], true, 0 (811) AdaptiveSparkPlan -Output [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] +Output [21]: [product_name#85, store_name#87, store_zip#88, b_street_number#89, b_streen_name#90, b_city#91, b_zip#92, c_street_number#93, c_street_name#94, c_city#95, c_zip#96, syear#97, cnt#98, s1#99, s2#100, s3#101, s1#162, s2#163, s3#164, syear#160, cnt#161] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt index 5928cccc2..aa22922d9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt @@ -283,25 +283,25 @@ Input [3]: [ss_store_sk#5, ss_item_sk#4, _c2#9] Keys [2]: [ss_store_sk#5, ss_item_sk#4] Functions [1]: [partial_sum(_c2#9)] Aggregate Attributes [1]: [sum#10] -Results [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Results [3]: [ss_store_sk#5, ss_item_sk#4, #11] (30) NativeShuffleExchange -Input [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Input [3]: [ss_store_sk#5, ss_item_sk#4, #11] Arguments: hashpartitioning(ss_store_sk#5, ss_item_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=4] (31) ShuffleQueryStage -Output [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Output [3]: [ss_store_sk#5, ss_item_sk#4, #11] Arguments: X (32) AQEShuffleRead -Input [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Input [3]: [ss_store_sk#5, ss_item_sk#4, #11] Arguments: coalesced (33) InputAdapter -Input [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Input [3]: [ss_store_sk#5, ss_item_sk#4, #11] (34) NativeHashAggregate -Input [3]: [ss_store_sk#5, ss_item_sk#4, #11#11] +Input [3]: [ss_store_sk#5, ss_item_sk#4, #11] Keys [2]: [ss_store_sk#5, ss_item_sk#4] Functions [1]: [sum(UnscaledValue(ss_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#6))#12] @@ -501,25 +501,25 @@ Input [3]: [ss_store_sk#21, ss_item_sk#20, _c2#24] Keys [2]: [ss_store_sk#21, ss_item_sk#20] Functions [1]: [partial_sum(_c2#24)] Aggregate Attributes [1]: [sum#25] -Results [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Results [3]: [ss_store_sk#21, ss_item_sk#20, #11] (82) NativeShuffleExchange -Input [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Input [3]: [ss_store_sk#21, ss_item_sk#20, #11] Arguments: hashpartitioning(ss_store_sk#21, ss_item_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=10] (83) ShuffleQueryStage -Output [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Output [3]: [ss_store_sk#21, ss_item_sk#20, #11] Arguments: X (84) AQEShuffleRead -Input [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Input [3]: [ss_store_sk#21, ss_item_sk#20, #11] Arguments: coalesced (85) InputAdapter -Input [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Input [3]: [ss_store_sk#21, ss_item_sk#20, #11] (86) NativeHashAggregate -Input [3]: [ss_store_sk#21, ss_item_sk#20, #11#11] +Input [3]: [ss_store_sk#21, ss_item_sk#20, #11] Keys [2]: [ss_store_sk#21, ss_item_sk#20] Functions [1]: [sum(UnscaledValue(ss_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#22))#26] @@ -534,51 +534,51 @@ Input [2]: [ss_store_sk#21, revenue#27] Keys [1]: [ss_store_sk#21] Functions [1]: [partial_avg(revenue#27)] Aggregate Attributes [2]: [sum#28, count#29] -Results [2]: [ss_store_sk#21, #11#11] +Results [3]: [ss_store_sk#21, #30, #11] (89) NativeShuffleExchange -Input [2]: [ss_store_sk#21, #11#11] +Input [3]: [ss_store_sk#21, #30, #11] Arguments: hashpartitioning(ss_store_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=11] (90) ShuffleQueryStage -Output [2]: [ss_store_sk#21, #11#11] +Output [3]: [ss_store_sk#21, #30, #11] Arguments: X (91) AQEShuffleRead -Input [2]: [ss_store_sk#21, #11#11] +Input [3]: [ss_store_sk#21, #30, #11] Arguments: coalesced (92) InputAdapter -Input [2]: [ss_store_sk#21, #11#11] +Input [3]: [ss_store_sk#21, #30, #11] (93) NativeHashAggregate -Input [2]: [ss_store_sk#21, #11#11] +Input [3]: [ss_store_sk#21, #30, #11] Keys [1]: [ss_store_sk#21] Functions [1]: [avg(revenue#27)] -Aggregate Attributes [1]: [avg(revenue#27)#30] -Results [2]: [ss_store_sk#21, avg(revenue#27)#30] +Aggregate Attributes [1]: [avg(revenue#27)#31] +Results [2]: [ss_store_sk#21, avg(revenue#27)#31] (94) NativeProject -Output [2]: [ss_store_sk#21, avg(revenue#27)#30 AS ave#31] -Input [2]: [ss_store_sk#21, avg(revenue#27)#30] +Output [2]: [ss_store_sk#21, avg(revenue#27)#31 AS ave#32] +Input [2]: [ss_store_sk#21, avg(revenue#27)#31] (95) NativeFilter -Input [2]: [ss_store_sk#21, ave#31] -Condition : isnotnull(ave#31) +Input [2]: [ss_store_sk#21, ave#32] +Condition : isnotnull(ave#32) (96) NativeSort -Input [2]: [ss_store_sk#21, ave#31] +Input [2]: [ss_store_sk#21, ave#32] Arguments: [ss_store_sk#21 ASC NULLS FIRST], false (97) SortMergeJoin [codegen id : X] Left keys [1]: [ss_store_sk#5] Right keys [1]: [ss_store_sk#21] Join type: Inner -Join condition: (cast(revenue#13 as decimal(23,7)) <= (0.1 * ave#31)) +Join condition: (cast(revenue#13 as decimal(23,7)) <= (0.1 * ave#32)) (98) Project [codegen id : X] Output [6]: [s_store_name#2, i_item_desc#15, revenue#13, i_current_price#16, i_wholesale_cost#17, i_brand#18] -Input [9]: [s_store_name#2, ss_store_sk#5, revenue#13, i_item_desc#15, i_current_price#16, i_wholesale_cost#17, i_brand#18, ss_store_sk#21, ave#31] +Input [9]: [s_store_name#2, ss_store_sk#5, revenue#13, i_item_desc#15, i_current_price#16, i_wholesale_cost#17, i_brand#18, ss_store_sk#21, ave#32] (99) TakeOrderedAndProject Input [6]: [s_store_name#2, i_item_desc#15, revenue#13, i_current_price#16, i_wholesale_cost#17, i_brand#18] @@ -660,14 +660,14 @@ Input [3]: [ss_item_sk#4, ss_store_sk#5, ss_sales_price#6] Keys [2]: [ss_store_sk#5, ss_item_sk#4] Functions [1]: [partial_sum(UnscaledValue(ss_sales_price#6))] Aggregate Attributes [1]: [sum#10] -Results [3]: [ss_store_sk#5, ss_item_sk#4, sum#32] +Results [3]: [ss_store_sk#5, ss_item_sk#4, sum#33] (116) Exchange -Input [3]: [ss_store_sk#5, ss_item_sk#4, sum#32] +Input [3]: [ss_store_sk#5, ss_item_sk#4, sum#33] Arguments: hashpartitioning(ss_store_sk#5, ss_item_sk#4, 100), ENSURE_REQUIREMENTS, [plan_id=15] (117) HashAggregate -Input [3]: [ss_store_sk#5, ss_item_sk#4, sum#32] +Input [3]: [ss_store_sk#5, ss_item_sk#4, sum#33] Keys [2]: [ss_store_sk#5, ss_item_sk#4] Functions [1]: [sum(UnscaledValue(ss_sales_price#6))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#6))#12] @@ -760,19 +760,19 @@ Input [4]: [ss_sold_date_sk#19, ss_item_sk#20, ss_store_sk#21, ss_sales_price#22 Arguments: [ss_sold_date_sk#19 ASC NULLS FIRST], false, 0 (137) Scan parquet -Output [2]: [d_date_sk#23, d_month_seq#33] +Output [2]: [d_date_sk#23, d_month_seq#34] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1176), LessThanOrEqual(d_month_seq,1187), IsNotNull(d_date_sk)] ReadSchema: struct (138) Filter -Input [2]: [d_date_sk#23, d_month_seq#33] -Condition : (((isnotnull(d_month_seq#33) AND (d_month_seq#33 >= 1176)) AND (d_month_seq#33 <= 1187)) AND isnotnull(d_date_sk#23)) +Input [2]: [d_date_sk#23, d_month_seq#34] +Condition : (((isnotnull(d_month_seq#34) AND (d_month_seq#34 >= 1176)) AND (d_month_seq#34 <= 1187)) AND isnotnull(d_date_sk#23)) (139) Project Output [1]: [d_date_sk#23] -Input [2]: [d_date_sk#23, d_month_seq#33] +Input [2]: [d_date_sk#23, d_month_seq#34] (140) Exchange Input [1]: [d_date_sk#23] @@ -797,14 +797,14 @@ Input [3]: [ss_item_sk#20, ss_store_sk#21, ss_sales_price#22] Keys [2]: [ss_store_sk#21, ss_item_sk#20] Functions [1]: [partial_sum(UnscaledValue(ss_sales_price#22))] Aggregate Attributes [1]: [sum#25] -Results [3]: [ss_store_sk#21, ss_item_sk#20, sum#34] +Results [3]: [ss_store_sk#21, ss_item_sk#20, sum#35] (145) Exchange -Input [3]: [ss_store_sk#21, ss_item_sk#20, sum#34] +Input [3]: [ss_store_sk#21, ss_item_sk#20, sum#35] Arguments: hashpartitioning(ss_store_sk#21, ss_item_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=22] (146) HashAggregate -Input [3]: [ss_store_sk#21, ss_item_sk#20, sum#34] +Input [3]: [ss_store_sk#21, ss_item_sk#20, sum#35] Keys [2]: [ss_store_sk#21, ss_item_sk#20] Functions [1]: [sum(UnscaledValue(ss_sales_price#22))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#22))#26] @@ -815,36 +815,36 @@ Input [2]: [ss_store_sk#21, revenue#27] Keys [1]: [ss_store_sk#21] Functions [1]: [partial_avg(revenue#27)] Aggregate Attributes [2]: [sum#28, count#29] -Results [3]: [ss_store_sk#21, sum#35, count#36] +Results [3]: [ss_store_sk#21, sum#36, count#37] (148) Exchange -Input [3]: [ss_store_sk#21, sum#35, count#36] +Input [3]: [ss_store_sk#21, sum#36, count#37] Arguments: hashpartitioning(ss_store_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=23] (149) HashAggregate -Input [3]: [ss_store_sk#21, sum#35, count#36] +Input [3]: [ss_store_sk#21, sum#36, count#37] Keys [1]: [ss_store_sk#21] Functions [1]: [avg(revenue#27)] -Aggregate Attributes [1]: [avg(revenue#27)#30] -Results [2]: [ss_store_sk#21, avg(revenue#27)#30 AS ave#31] +Aggregate Attributes [1]: [avg(revenue#27)#31] +Results [2]: [ss_store_sk#21, avg(revenue#27)#31 AS ave#32] (150) Filter -Input [2]: [ss_store_sk#21, ave#31] -Condition : isnotnull(ave#31) +Input [2]: [ss_store_sk#21, ave#32] +Condition : isnotnull(ave#32) (151) Sort -Input [2]: [ss_store_sk#21, ave#31] +Input [2]: [ss_store_sk#21, ave#32] Arguments: [ss_store_sk#21 ASC NULLS FIRST], false, 0 (152) SortMergeJoin Left keys [1]: [ss_store_sk#5] Right keys [1]: [ss_store_sk#21] Join type: Inner -Join condition: (cast(revenue#13 as decimal(23,7)) <= (0.1 * ave#31)) +Join condition: (cast(revenue#13 as decimal(23,7)) <= (0.1 * ave#32)) (153) Project Output [6]: [s_store_name#2, i_item_desc#15, revenue#13, i_current_price#16, i_wholesale_cost#17, i_brand#18] -Input [9]: [s_store_name#2, ss_store_sk#5, revenue#13, i_item_desc#15, i_current_price#16, i_wholesale_cost#17, i_brand#18, ss_store_sk#21, ave#31] +Input [9]: [s_store_name#2, ss_store_sk#5, revenue#13, i_item_desc#15, i_current_price#16, i_wholesale_cost#17, i_brand#18, ss_store_sk#21, ave#32] (154) TakeOrderedAndProject Input [6]: [s_store_name#2, i_item_desc#15, revenue#13, i_current_price#16, i_wholesale_cost#17, i_brand#18] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q66.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q66.txt index b0822487f..9494adb93 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q66.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q66.txt @@ -518,25 +518,25 @@ Input [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w Keys [7]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16] Functions [24]: [partial_sum(_c7#22), partial_sum(_c8#23), partial_sum(_c9#24), partial_sum(_c10#25), partial_sum(_c11#26), partial_sum(_c12#27), partial_sum(_c13#28), partial_sum(_c14#29), partial_sum(_c15#30), partial_sum(_c16#31), partial_sum(_c17#32), partial_sum(_c18#33), partial_sum(_c19#34), partial_sum(_c20#35), partial_sum(_c21#36), partial_sum(_c22#37), partial_sum(_c23#38), partial_sum(_c24#39), partial_sum(_c25#40), partial_sum(_c26#41), partial_sum(_c27#42), partial_sum(_c28#43), partial_sum(_c29#44), partial_sum(_c30#45)] Aggregate Attributes [48]: [sum#46, isEmpty#47, sum#48, isEmpty#49, sum#50, isEmpty#51, sum#52, isEmpty#53, sum#54, isEmpty#55, sum#56, isEmpty#57, sum#58, isEmpty#59, sum#60, isEmpty#61, sum#62, isEmpty#63, sum#64, isEmpty#65, sum#66, isEmpty#67, sum#68, isEmpty#69, sum#70, isEmpty#71, sum#72, isEmpty#73, sum#74, isEmpty#75, sum#76, isEmpty#77, sum#78, isEmpty#79, sum#80, isEmpty#81, sum#82, isEmpty#83, sum#84, isEmpty#85, sum#86, isEmpty#87, sum#88, isEmpty#89, sum#90, isEmpty#91, sum#92, isEmpty#93] -Results [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Results [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (68) NativeShuffleExchange -Input [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Input [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: hashpartitioning(w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, 100), ENSURE_REQUIREMENTS, [plan_id=9] (69) ShuffleQueryStage -Output [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Output [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: X (70) AQEShuffleRead -Input [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Input [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: coalesced (71) InputAdapter -Input [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Input [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (72) NativeHashAggregate -Input [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94#94] +Input [31]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Keys [7]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, d_year#16] Functions [24]: [sum(CASE WHEN (d_moy#17 = 1) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 2) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 3) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 4) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 5) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 6) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 7) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 8) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 9) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 10) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 11) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 12) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 1) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 2) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 3) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 4) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 5) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 6) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 7) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 8) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 9) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 10) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 11) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#17 = 12) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)] Aggregate Attributes [24]: [sum(CASE WHEN (d_moy#17 = 1) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#95, sum(CASE WHEN (d_moy#17 = 2) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#96, sum(CASE WHEN (d_moy#17 = 3) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#97, sum(CASE WHEN (d_moy#17 = 4) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#98, sum(CASE WHEN (d_moy#17 = 5) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#99, sum(CASE WHEN (d_moy#17 = 6) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#100, sum(CASE WHEN (d_moy#17 = 7) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#101, sum(CASE WHEN (d_moy#17 = 8) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#102, sum(CASE WHEN (d_moy#17 = 9) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#103, sum(CASE WHEN (d_moy#17 = 10) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#104, sum(CASE WHEN (d_moy#17 = 11) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#105, sum(CASE WHEN (d_moy#17 = 12) THEN (ws_ext_sales_price#6 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#106, sum(CASE WHEN (d_moy#17 = 1) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#107, sum(CASE WHEN (d_moy#17 = 2) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#108, sum(CASE WHEN (d_moy#17 = 3) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#109, sum(CASE WHEN (d_moy#17 = 4) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#110, sum(CASE WHEN (d_moy#17 = 5) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#111, sum(CASE WHEN (d_moy#17 = 6) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#112, sum(CASE WHEN (d_moy#17 = 7) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#113, sum(CASE WHEN (d_moy#17 = 8) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#114, sum(CASE WHEN (d_moy#17 = 9) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#115, sum(CASE WHEN (d_moy#17 = 10) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#116, sum(CASE WHEN (d_moy#17 = 11) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#117, sum(CASE WHEN (d_moy#17 = 12) THEN (ws_net_paid#7 * cast(ws_quantity#5 as decimal(10,0))) ELSE 0.00 END)#118] @@ -774,25 +774,25 @@ Input [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#1 Keys [7]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160] Functions [24]: [partial_sum(_c7#164), partial_sum(_c8#165), partial_sum(_c9#166), partial_sum(_c10#167), partial_sum(_c11#168), partial_sum(_c12#169), partial_sum(_c13#170), partial_sum(_c14#171), partial_sum(_c15#172), partial_sum(_c16#173), partial_sum(_c17#174), partial_sum(_c18#175), partial_sum(_c19#176), partial_sum(_c20#177), partial_sum(_c21#178), partial_sum(_c22#179), partial_sum(_c23#180), partial_sum(_c24#181), partial_sum(_c25#182), partial_sum(_c26#183), partial_sum(_c27#184), partial_sum(_c28#185), partial_sum(_c29#186), partial_sum(_c30#187)] Aggregate Attributes [48]: [sum#188, isEmpty#189, sum#190, isEmpty#191, sum#192, isEmpty#193, sum#194, isEmpty#195, sum#196, isEmpty#197, sum#198, isEmpty#199, sum#200, isEmpty#201, sum#202, isEmpty#203, sum#204, isEmpty#205, sum#206, isEmpty#207, sum#208, isEmpty#209, sum#210, isEmpty#211, sum#212, isEmpty#213, sum#214, isEmpty#215, sum#216, isEmpty#217, sum#218, isEmpty#219, sum#220, isEmpty#221, sum#222, isEmpty#223, sum#224, isEmpty#225, sum#226, isEmpty#227, sum#228, isEmpty#229, sum#230, isEmpty#231, sum#232, isEmpty#233, sum#234, isEmpty#235] -Results [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Results [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (131) NativeShuffleExchange -Input [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Input [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: hashpartitioning(w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, 100), ENSURE_REQUIREMENTS, [plan_id=14] (132) ShuffleQueryStage -Output [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Output [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: X (133) AQEShuffleRead -Input [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Input [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: coalesced (134) InputAdapter -Input [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Input [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (135) NativeHashAggregate -Input [8]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94#94] +Input [31]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Keys [7]: [w_warehouse_name#153, w_warehouse_sq_ft#154, w_city#155, w_county#156, w_state#157, w_country#158, d_year#160] Functions [24]: [sum(CASE WHEN (d_moy#161 = 1) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 2) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 3) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 4) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 5) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 6) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 7) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 8) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 9) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 10) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 11) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 12) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 1) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 2) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 3) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 4) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 5) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 6) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 7) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 8) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 9) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 10) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 11) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END), sum(CASE WHEN (d_moy#161 = 12) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)] Aggregate Attributes [24]: [sum(CASE WHEN (d_moy#161 = 1) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#236, sum(CASE WHEN (d_moy#161 = 2) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#237, sum(CASE WHEN (d_moy#161 = 3) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#238, sum(CASE WHEN (d_moy#161 = 4) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#239, sum(CASE WHEN (d_moy#161 = 5) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#240, sum(CASE WHEN (d_moy#161 = 6) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#241, sum(CASE WHEN (d_moy#161 = 7) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#242, sum(CASE WHEN (d_moy#161 = 8) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#243, sum(CASE WHEN (d_moy#161 = 9) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#244, sum(CASE WHEN (d_moy#161 = 10) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#245, sum(CASE WHEN (d_moy#161 = 11) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#246, sum(CASE WHEN (d_moy#161 = 12) THEN (cs_sales_price#150 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#247, sum(CASE WHEN (d_moy#161 = 1) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#248, sum(CASE WHEN (d_moy#161 = 2) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#249, sum(CASE WHEN (d_moy#161 = 3) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#250, sum(CASE WHEN (d_moy#161 = 4) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#251, sum(CASE WHEN (d_moy#161 = 5) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#252, sum(CASE WHEN (d_moy#161 = 6) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#253, sum(CASE WHEN (d_moy#161 = 7) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#254, sum(CASE WHEN (d_moy#161 = 8) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#255, sum(CASE WHEN (d_moy#161 = 9) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#256, sum(CASE WHEN (d_moy#161 = 10) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#257, sum(CASE WHEN (d_moy#161 = 11) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#258, sum(CASE WHEN (d_moy#161 = 12) THEN (cs_net_paid_inc_tax#151 * cast(cs_quantity#149 as decimal(10,0))) ELSE 0.00 END)#259] @@ -818,25 +818,25 @@ Input [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w Keys [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120] Functions [36]: [partial_sum(_c8#286), partial_sum(_c9#287), partial_sum(_c10#288), partial_sum(_c11#289), partial_sum(_c12#290), partial_sum(_c13#291), partial_sum(_c14#292), partial_sum(_c15#293), partial_sum(_c16#294), partial_sum(_c17#295), partial_sum(_c18#296), partial_sum(_c19#297), partial_sum(_c20#298), partial_sum(_c21#299), partial_sum(_c22#300), partial_sum(_c23#301), partial_sum(_c24#302), partial_sum(_c25#303), partial_sum(_c26#304), partial_sum(_c27#305), partial_sum(_c28#306), partial_sum(_c29#307), partial_sum(_c30#308), partial_sum(_c31#309), partial_sum(_c32#310), partial_sum(_c33#311), partial_sum(_c34#312), partial_sum(_c35#313), partial_sum(_c36#314), partial_sum(_c37#315), partial_sum(_c38#316), partial_sum(_c39#317), partial_sum(_c40#318), partial_sum(_c41#319), partial_sum(_c42#320), partial_sum(_c43#321)] Aggregate Attributes [72]: [sum#322, isEmpty#323, sum#324, isEmpty#325, sum#326, isEmpty#327, sum#328, isEmpty#329, sum#330, isEmpty#331, sum#332, isEmpty#333, sum#334, isEmpty#335, sum#336, isEmpty#337, sum#338, isEmpty#339, sum#340, isEmpty#341, sum#342, isEmpty#343, sum#344, isEmpty#345, sum#346, isEmpty#347, sum#348, isEmpty#349, sum#350, isEmpty#351, sum#352, isEmpty#353, sum#354, isEmpty#355, sum#356, isEmpty#357, sum#358, isEmpty#359, sum#360, isEmpty#361, sum#362, isEmpty#363, sum#364, isEmpty#365, sum#366, isEmpty#367, sum#368, isEmpty#369, sum#370, isEmpty#371, sum#372, isEmpty#373, sum#374, isEmpty#375, sum#376, isEmpty#377, sum#378, isEmpty#379, sum#380, isEmpty#381, sum#382, isEmpty#383, sum#384, isEmpty#385, sum#386, isEmpty#387, sum#388, isEmpty#389, sum#390, isEmpty#391, sum#392, isEmpty#393] -Results [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Results [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (141) NativeShuffleExchange -Input [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Input [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: hashpartitioning(w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, 100), ENSURE_REQUIREMENTS, [plan_id=15] (142) ShuffleQueryStage -Output [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Output [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: X (143) AQEShuffleRead -Input [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Input [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Arguments: coalesced (144) InputAdapter -Input [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Input [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] (145) NativeHashAggregate -Input [9]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94#94] +Input [44]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94, #94] Keys [8]: [w_warehouse_name#9, w_warehouse_sq_ft#10, w_city#11, w_county#12, w_state#13, w_country#14, ship_carriers#119, year#120] Functions [36]: [sum(jan_sales#121), sum(feb_sales#122), sum(mar_sales#123), sum(apr_sales#124), sum(may_sales#125), sum(jun_sales#126), sum(jul_sales#127), sum(aug_sales#128), sum(sep_sales#129), sum(oct_sales#130), sum(nov_sales#131), sum(dec_sales#132), sum((jan_sales#121 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((feb_sales#122 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((mar_sales#123 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((apr_sales#124 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((may_sales#125 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((jun_sales#126 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((jul_sales#127 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((aug_sales#128 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((sep_sales#129 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((oct_sales#130 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((nov_sales#131 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum((dec_sales#132 / cast(w_warehouse_sq_ft#10 as decimal(10,0)))), sum(jan_net#133), sum(feb_net#134), sum(mar_net#135), sum(apr_net#136), sum(may_net#137), sum(jun_net#138), sum(jul_net#139), sum(aug_net#140), sum(sep_net#141), sum(oct_net#142), sum(nov_net#143), sum(dec_net#144)] Aggregate Attributes [36]: [sum(jan_sales#121)#394, sum(feb_sales#122)#395, sum(mar_sales#123)#396, sum(apr_sales#124)#397, sum(may_sales#125)#398, sum(jun_sales#126)#399, sum(jul_sales#127)#400, sum(aug_sales#128)#401, sum(sep_sales#129)#402, sum(oct_sales#130)#403, sum(nov_sales#131)#404, sum(dec_sales#132)#405, sum((jan_sales#121 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#406, sum((feb_sales#122 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#407, sum((mar_sales#123 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#408, sum((apr_sales#124 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#409, sum((may_sales#125 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#410, sum((jun_sales#126 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#411, sum((jul_sales#127 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#412, sum((aug_sales#128 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#413, sum((sep_sales#129 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#414, sum((oct_sales#130 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#415, sum((nov_sales#131 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#416, sum((dec_sales#132 / cast(w_warehouse_sq_ft#10 as decimal(10,0))))#417, sum(jan_net#133)#418, sum(feb_net#134)#419, sum(mar_net#135)#420, sum(apr_net#136)#421, sum(may_net#137)#422, sum(jun_net#138)#423, sum(jul_net#139)#424, sum(aug_net#140)#425, sum(sep_net#141)#426, sum(oct_net#142)#427, sum(nov_net#143)#428, sum(dec_net#144)#429] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q67.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q67.txt index 609f51296..403ecb399 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q67.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q67.txt @@ -333,25 +333,25 @@ Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22 Keys [9]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26] Functions [1]: [partial_sum(_c9#27)] Aggregate Attributes [2]: [sum#28, isEmpty#29] -Results [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Results [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] (53) NativeShuffleExchange -Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] Arguments: hashpartitioning(i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Output [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] Arguments: X (55) AQEShuffleRead -Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] Arguments: coalesced (56) InputAdapter -Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] (57) NativeHashAggregate -Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30#30] +Input [10]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26, #30] Keys [9]: [i_category#18, i_class#19, i_brand#20, i_product_name#21, d_year#22, d_qoy#23, d_moy#24, s_store_id#25, spark_grouping_id#26] Functions [1]: [sum(coalesce((ss_sales_price#5 * cast(ss_quantity#4 as decimal(10,0))), 0.00))] Aggregate Attributes [1]: [sum(coalesce((ss_sales_price#5 * cast(ss_quantity#4 as decimal(10,0))), 0.00))#31] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt index 54b5a1bf2..b5f7ab751 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt @@ -447,10 +447,10 @@ Input [7]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19, _c4# Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19] Functions [3]: [partial_sum(_c4#20), partial_sum(_c5#21), partial_sum(_c6#22)] Aggregate Attributes [3]: [sum#23, sum#24, sum#25] -Results [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19, #26#26] +Results [7]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19, #26, #26, #26] (69) NativeHashAggregate -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19, #26#26] +Input [7]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19, #26, #26, #26] Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, ca_city#19] Functions [3]: [sum(UnscaledValue(ss_ext_sales_price#7)), sum(UnscaledValue(ss_ext_list_price#8)), sum(UnscaledValue(ss_ext_tax#9))] Aggregate Attributes [3]: [sum(UnscaledValue(ss_ext_sales_price#7))#27, sum(UnscaledValue(ss_ext_list_price#8))#28, sum(UnscaledValue(ss_ext_tax#9))#29] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q69.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q69.txt index a350ac419..ea41e4daf 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q69.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q69.txt @@ -651,25 +651,25 @@ Input [5]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purch Keys [5]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#23] -Results [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Results [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] (111) NativeShuffleExchange -Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] Arguments: hashpartitioning(cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, 100), ENSURE_REQUIREMENTS, [plan_id=13] (112) ShuffleQueryStage -Output [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Output [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] Arguments: X (113) AQEShuffleRead -Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] Arguments: coalesced (114) InputAdapter -Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] (115) NativeHashAggregate -Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24#24] +Input [6]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22, #24] Keys [5]: [cd_gender#18, cd_marital_status#19, cd_education_status#20, cd_purchase_estimate#21, cd_credit_rating#22] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#25] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q7.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q7.txt index 80b9ba06a..7152bb2c8 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q7.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q7.txt @@ -408,36 +408,36 @@ Input [5]: [i_item_id#16, _c1#20, _c2#21, _c3#22, _c4#23] Keys [1]: [i_item_id#16] Functions [4]: [partial_avg(_c1#20), partial_avg(_c2#21), partial_avg(_c3#22), partial_avg(_c4#23)] Aggregate Attributes [8]: [sum#24, count#25, sum#26, count#27, sum#28, count#29, sum#30, count#31] -Results [2]: [i_item_id#16, #32#32] +Results [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] (69) NativeShuffleExchange -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: hashpartitioning(i_item_id#16, 100), ENSURE_REQUIREMENTS, [plan_id=9] (70) ShuffleQueryStage -Output [2]: [i_item_id#16, #32#32] +Output [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: X (71) AQEShuffleRead -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Arguments: coalesced (72) InputAdapter -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] (73) NativeHashAggregate -Input [2]: [i_item_id#16, #32#32] +Input [9]: [i_item_id#16, #32, #33, #32, #33, #32, #33, #32, #33] Keys [1]: [i_item_id#16] Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_list_price#6)), avg(UnscaledValue(ss_coupon_amt#8)), avg(UnscaledValue(ss_sales_price#7))] -Aggregate Attributes [4]: [avg(ss_quantity#5)#33, avg(UnscaledValue(ss_list_price#6))#34, avg(UnscaledValue(ss_coupon_amt#8))#35, avg(UnscaledValue(ss_sales_price#7))#36] -Results [5]: [i_item_id#16, avg(ss_quantity#5)#33, avg(UnscaledValue(ss_list_price#6))#34, avg(UnscaledValue(ss_coupon_amt#8))#35, avg(UnscaledValue(ss_sales_price#7))#36] +Aggregate Attributes [4]: [avg(ss_quantity#5)#34, avg(UnscaledValue(ss_list_price#6))#35, avg(UnscaledValue(ss_coupon_amt#8))#36, avg(UnscaledValue(ss_sales_price#7))#37] +Results [5]: [i_item_id#16, avg(ss_quantity#5)#34, avg(UnscaledValue(ss_list_price#6))#35, avg(UnscaledValue(ss_coupon_amt#8))#36, avg(UnscaledValue(ss_sales_price#7))#37] (74) NativeProject -Output [5]: [i_item_id#16, avg(ss_quantity#5)#33 AS agg1#37, cast((avg(UnscaledValue(ss_list_price#6))#34 / 100.0) as decimal(11,6)) AS agg2#38, cast((avg(UnscaledValue(ss_coupon_amt#8))#35 / 100.0) as decimal(11,6)) AS agg3#39, cast((avg(UnscaledValue(ss_sales_price#7))#36 / 100.0) as decimal(11,6)) AS agg4#40] -Input [5]: [i_item_id#16, avg(ss_quantity#5)#33, avg(UnscaledValue(ss_list_price#6))#34, avg(UnscaledValue(ss_coupon_amt#8))#35, avg(UnscaledValue(ss_sales_price#7))#36] +Output [5]: [i_item_id#16, avg(ss_quantity#5)#34 AS agg1#38, cast((avg(UnscaledValue(ss_list_price#6))#35 / 100.0) as decimal(11,6)) AS agg2#39, cast((avg(UnscaledValue(ss_coupon_amt#8))#36 / 100.0) as decimal(11,6)) AS agg3#40, cast((avg(UnscaledValue(ss_sales_price#7))#37 / 100.0) as decimal(11,6)) AS agg4#41] +Input [5]: [i_item_id#16, avg(ss_quantity#5)#34, avg(UnscaledValue(ss_list_price#6))#35, avg(UnscaledValue(ss_coupon_amt#8))#36, avg(UnscaledValue(ss_sales_price#7))#37] (75) NativeTakeOrdered -Input [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Input [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] Arguments: X, [i_item_id#16 ASC NULLS FIRST] (76) Scan parquet @@ -616,24 +616,24 @@ Input [5]: [ss_quantity#5, ss_list_price#6, ss_sales_price#7, ss_coupon_amt#8, i Keys [1]: [i_item_id#16] Functions [4]: [partial_avg(ss_quantity#5), partial_avg(UnscaledValue(ss_list_price#6)), partial_avg(UnscaledValue(ss_coupon_amt#8)), partial_avg(UnscaledValue(ss_sales_price#7))] Aggregate Attributes [8]: [sum#24, count#25, sum#26, count#27, sum#28, count#29, sum#30, count#31] -Results [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Results [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] (114) Exchange -Input [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Input [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] Arguments: hashpartitioning(i_item_id#16, 100), ENSURE_REQUIREMENTS, [plan_id=18] (115) HashAggregate -Input [9]: [i_item_id#16, sum#41, count#42, sum#43, count#44, sum#45, count#46, sum#47, count#48] +Input [9]: [i_item_id#16, sum#42, count#43, sum#44, count#45, sum#46, count#47, sum#48, count#49] Keys [1]: [i_item_id#16] Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_list_price#6)), avg(UnscaledValue(ss_coupon_amt#8)), avg(UnscaledValue(ss_sales_price#7))] -Aggregate Attributes [4]: [avg(ss_quantity#5)#33, avg(UnscaledValue(ss_list_price#6))#34, avg(UnscaledValue(ss_coupon_amt#8))#35, avg(UnscaledValue(ss_sales_price#7))#36] -Results [5]: [i_item_id#16, avg(ss_quantity#5)#33 AS agg1#37, cast((avg(UnscaledValue(ss_list_price#6))#34 / 100.0) as decimal(11,6)) AS agg2#38, cast((avg(UnscaledValue(ss_coupon_amt#8))#35 / 100.0) as decimal(11,6)) AS agg3#39, cast((avg(UnscaledValue(ss_sales_price#7))#36 / 100.0) as decimal(11,6)) AS agg4#40] +Aggregate Attributes [4]: [avg(ss_quantity#5)#34, avg(UnscaledValue(ss_list_price#6))#35, avg(UnscaledValue(ss_coupon_amt#8))#36, avg(UnscaledValue(ss_sales_price#7))#37] +Results [5]: [i_item_id#16, avg(ss_quantity#5)#34 AS agg1#38, cast((avg(UnscaledValue(ss_list_price#6))#35 / 100.0) as decimal(11,6)) AS agg2#39, cast((avg(UnscaledValue(ss_coupon_amt#8))#36 / 100.0) as decimal(11,6)) AS agg3#40, cast((avg(UnscaledValue(ss_sales_price#7))#37 / 100.0) as decimal(11,6)) AS agg4#41] (116) TakeOrderedAndProject -Input [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] -Arguments: X, [i_item_id#16 ASC NULLS FIRST], [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Input [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] +Arguments: X, [i_item_id#16 ASC NULLS FIRST], [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] (117) AdaptiveSparkPlan -Output [5]: [i_item_id#16, agg1#37, agg2#38, agg3#39, agg4#40] +Output [5]: [i_item_id#16, agg1#38, agg2#39, agg3#40, agg4#41] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q70.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q70.txt index 4bd76bfbd..21c24af0d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q70.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q70.txt @@ -436,25 +436,25 @@ Input [2]: [s_state#13, _c1#15] Keys [1]: [s_state#13] Functions [1]: [partial_sum(_c1#15)] Aggregate Attributes [1]: [sum#16] -Results [2]: [s_state#13, #17#17] +Results [2]: [s_state#13, #17] (66) NativeShuffleExchange -Input [2]: [s_state#13, #17#17] +Input [2]: [s_state#13, #17] Arguments: hashpartitioning(s_state#13, 100), ENSURE_REQUIREMENTS, [plan_id=8] (67) ShuffleQueryStage -Output [2]: [s_state#13, #17#17] +Output [2]: [s_state#13, #17] Arguments: X (68) AQEShuffleRead -Input [2]: [s_state#13, #17#17] +Input [2]: [s_state#13, #17] Arguments: coalesced (69) InputAdapter -Input [2]: [s_state#13, #17#17] +Input [2]: [s_state#13, #17] (70) NativeHashAggregate -Input [2]: [s_state#13, #17#17] +Input [2]: [s_state#13, #17] Keys [1]: [s_state#13] Functions [1]: [sum(UnscaledValue(ss_net_profit#11))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_profit#11))#18] @@ -532,25 +532,25 @@ Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, _c3#25] Keys [3]: [s_state#22, s_county#23, spark_grouping_id#24] Functions [1]: [partial_sum(_c3#25)] Aggregate Attributes [1]: [sum#26] -Results [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Results [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] (88) NativeShuffleExchange -Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] Arguments: hashpartitioning(s_state#22, s_county#23, spark_grouping_id#24, 100), ENSURE_REQUIREMENTS, [plan_id=10] (89) ShuffleQueryStage -Output [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Output [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] Arguments: X (90) AQEShuffleRead -Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] Arguments: coalesced (91) InputAdapter -Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] (92) NativeHashAggregate -Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17#17] +Input [4]: [s_state#22, s_county#23, spark_grouping_id#24, #17] Keys [3]: [s_state#22, s_county#23, spark_grouping_id#24] Functions [1]: [sum(UnscaledValue(ss_net_profit#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_profit#3))#27] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q71.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q71.txt index 7daf63811..e9ad08bc7 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q71.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q71.txt @@ -523,25 +523,25 @@ Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, _c4#35] Keys [4]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33] Functions [1]: [partial_sum(_c4#35)] Aggregate Attributes [1]: [sum#36] -Results [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Results [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] (88) NativeShuffleExchange -Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] Arguments: hashpartitioning(i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, 100), ENSURE_REQUIREMENTS, [plan_id=9] (89) ShuffleQueryStage -Output [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Output [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] Arguments: X (90) AQEShuffleRead -Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] Arguments: coalesced (91) InputAdapter -Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] (92) NativeHashAggregate -Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37#37] +Input [5]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33, #37] Keys [4]: [i_brand#3, i_brand_id#2, t_hour#32, t_minute#33] Functions [1]: [sum(UnscaledValue(ext_price#12))] Aggregate Attributes [1]: [sum(UnscaledValue(ext_price#12))#38] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt index 549f619c2..537390c6b 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt @@ -927,25 +927,25 @@ Input [3]: [w_warehouse_name#14, i_item_desc#16, d_week_seq#23] Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#32] -Results [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Results [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] (160) NativeShuffleExchange -Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] Arguments: hashpartitioning(i_item_desc#16, w_warehouse_name#14, d_week_seq#23, 100), ENSURE_REQUIREMENTS, [plan_id=21] (161) ShuffleQueryStage -Output [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Output [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] Arguments: X (162) AQEShuffleRead -Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] Arguments: coalesced (163) InputAdapter -Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] (164) NativeHashAggregate -Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33#33] +Input [4]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23, #33] Keys [3]: [i_item_desc#16, w_warehouse_name#14, d_week_seq#23] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#34] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q73.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q73.txt index 1db4de1c8..61f37cedd 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q73.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q73.txt @@ -346,25 +346,25 @@ Input [2]: [ss_customer_sk#2, ss_ticket_number#5] Keys [2]: [ss_ticket_number#5, ss_customer_sk#2] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#15] -Results [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Results [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] (53) NativeShuffleExchange -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: hashpartitioning(ss_ticket_number#5, ss_customer_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Output [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: X (55) AQEShuffleRead -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Arguments: coalesced (56) InputAdapter -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] (57) NativeHashAggregate -Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16#16] +Input [3]: [ss_ticket_number#5, ss_customer_sk#2, #16] Keys [2]: [ss_ticket_number#5, ss_customer_sk#2] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#17] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt index 54fe218fb..29e2f0dea 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt @@ -406,25 +406,25 @@ Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, _c4#10] Keys [4]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9] Functions [1]: [partial_sum(_c4#10)] Aggregate Attributes [1]: [sum#11] -Results [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Results [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] (36) NativeShuffleExchange -Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] Arguments: hashpartitioning(c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Output [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] Arguments: X (38) AQEShuffleRead -Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] Arguments: coalesced (39) InputAdapter -Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] (40) NativeHashAggregate -Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12#12] +Input [5]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9, #12] Keys [4]: [c_customer_id#2, c_first_name#3, c_last_name#4, d_year#9] Functions [1]: [sum(UnscaledValue(ss_net_paid#7))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#7))#13] @@ -532,25 +532,25 @@ Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, _c4#23 Keys [4]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22] Functions [1]: [partial_sum(_c4#23)] Aggregate Attributes [1]: [sum#24] -Results [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Results [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] (66) NativeShuffleExchange -Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] Arguments: hashpartitioning(c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, 100), ENSURE_REQUIREMENTS, [plan_id=8] (67) ShuffleQueryStage -Output [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Output [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] Arguments: X (68) AQEShuffleRead -Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] Arguments: coalesced (69) InputAdapter -Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] (70) NativeHashAggregate -Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12#12] +Input [5]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22, #12] Keys [4]: [c_customer_id#16, c_first_name#17, c_last_name#18, d_year#22] Functions [1]: [sum(UnscaledValue(ss_net_paid#20))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_paid#20))#13] @@ -711,25 +711,25 @@ Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, _c4#38 Keys [4]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37] Functions [1]: [partial_sum(_c4#38)] Aggregate Attributes [1]: [sum#39] -Results [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Results [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] (109) NativeShuffleExchange -Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] Arguments: hashpartitioning(c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, 100), ENSURE_REQUIREMENTS, [plan_id=12] (110) ShuffleQueryStage -Output [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Output [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] Arguments: X (111) AQEShuffleRead -Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] Arguments: coalesced (112) InputAdapter -Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] (113) NativeHashAggregate -Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12#12] +Input [5]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37, #12] Keys [4]: [c_customer_id#30, c_first_name#31, c_last_name#32, d_year#37] Functions [1]: [sum(UnscaledValue(ws_net_paid#35))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_net_paid#35))#40] @@ -835,25 +835,25 @@ Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, _c4#50 Keys [4]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49] Functions [1]: [partial_sum(_c4#50)] Aggregate Attributes [1]: [sum#51] -Results [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Results [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] (139) NativeShuffleExchange -Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] Arguments: hashpartitioning(c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, 100), ENSURE_REQUIREMENTS, [plan_id=14] (140) ShuffleQueryStage -Output [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Output [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] Arguments: X (141) AQEShuffleRead -Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] Arguments: coalesced (142) InputAdapter -Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] (143) NativeHashAggregate -Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12#12] +Input [5]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49, #12] Keys [4]: [c_customer_id#43, c_first_name#44, c_last_name#45, d_year#49] Functions [1]: [sum(UnscaledValue(ws_net_paid#47))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_net_paid#47))#40] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt index c15d5a53b..3a569e622 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt @@ -1038,62 +1038,62 @@ Input [7]: [#13#13, #7#7, #8#8, #9#9, #11#11, #18#18, #19#19] Keys [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Functions: [] Aggregate Attributes: [] -Results [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Results [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] (141) NativeShuffleExchange -Input [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Arguments: hashpartitioning(d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, 100), ENSURE_REQUIREMENTS, [plan_id=15] (142) ShuffleQueryStage -Output [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Output [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Arguments: X (143) AQEShuffleRead -Input [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Arguments: coalesced (144) InputAdapter -Input [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] (145) NativeHashAggregate -Input [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Keys [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Functions: [] Aggregate Attributes: [] -Results [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Results [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] (146) NativeProject Output [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] -Input [8]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] (147) NativeProject -Output [7]: [d_year#13 AS d_year#13, i_brand_id#7 AS i_brand_id#7, i_class_id#8 AS i_class_id#8, i_category_id#9 AS i_category_id#9, i_manufact_id#11 AS i_manufact_id#11, sales_cnt#18 AS _c5#57, UnscaledValue(sales_amt#19) AS _c6#58] +Output [7]: [d_year#13 AS d_year#13, i_brand_id#7 AS i_brand_id#7, i_class_id#8 AS i_class_id#8, i_category_id#9 AS i_category_id#9, i_manufact_id#11 AS i_manufact_id#11, sales_cnt#18 AS _c5#56, UnscaledValue(sales_amt#19) AS _c6#57] Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] (148) NativeHashAggregate -Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, _c5#57, _c6#58] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, _c5#56, _c6#57] Keys [5]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11] -Functions [2]: [partial_sum(_c5#57), partial_sum(_c6#58)] -Aggregate Attributes [2]: [sum#59, sum#60] -Results [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Functions [2]: [partial_sum(_c5#56), partial_sum(_c6#57)] +Aggregate Attributes [2]: [sum#58, sum#59] +Results [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] (149) NativeShuffleExchange -Input [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] Arguments: hashpartitioning(d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=16] (150) ShuffleQueryStage -Output [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Output [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] Arguments: X (151) AQEShuffleRead -Input [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] Arguments: coalesced (152) InputAdapter -Input [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] (153) NativeHashAggregate -Input [6]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #56#56] +Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, #60, #60] Keys [5]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11] Functions [2]: [sum(sales_cnt#18), sum(UnscaledValue(sales_amt#19))] Aggregate Attributes [2]: [sum(sales_cnt#18)#61, sum(UnscaledValue(sales_amt#19))#62] @@ -1465,33 +1465,33 @@ Input [7]: [#75#75, #70#70, #71#71, #72#72, #73#73, #18#18, #19#19] Keys [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Functions: [] Aggregate Attributes: [] -Results [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Results [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] (247) NativeShuffleExchange -Input [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Arguments: hashpartitioning(d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, 100), ENSURE_REQUIREMENTS, [plan_id=22] (248) ShuffleQueryStage -Output [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Output [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Arguments: X (249) AQEShuffleRead -Input [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Arguments: coalesced (250) InputAdapter -Input [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] (251) NativeHashAggregate -Input [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Keys [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Functions: [] Aggregate Attributes: [] -Results [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Results [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] (252) NativeProject Output [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] -Input [8]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] (253) NativeProject Output [7]: [d_year#75 AS d_year#75, i_brand_id#70 AS i_brand_id#70, i_class_id#71 AS i_class_id#71, i_category_id#72 AS i_category_id#72, i_manufact_id#73 AS i_manufact_id#73, sales_cnt#18 AS _c5#110, UnscaledValue(sales_amt#19) AS _c6#111] @@ -1501,26 +1501,26 @@ Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufac Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, _c5#110, _c6#111] Keys [5]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73] Functions [2]: [partial_sum(_c5#110), partial_sum(_c6#111)] -Aggregate Attributes [2]: [sum#59, sum#112] -Results [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Aggregate Attributes [2]: [sum#58, sum#112] +Results [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] (255) NativeShuffleExchange -Input [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] Arguments: hashpartitioning(d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, 100), ENSURE_REQUIREMENTS, [plan_id=23] (256) ShuffleQueryStage -Output [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Output [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] Arguments: X (257) AQEShuffleRead -Input [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] Arguments: coalesced (258) InputAdapter -Input [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] (259) NativeHashAggregate -Input [6]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #56#56] +Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, #60, #60] Keys [5]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73] Functions [2]: [sum(sales_cnt#18), sum(UnscaledValue(sales_amt#19))] Aggregate Attributes [2]: [sum(sales_cnt#18)#61, sum(UnscaledValue(sales_amt#19))#62] @@ -1969,7 +1969,7 @@ Results [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact Input [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#18, sales_amt#19] Keys [5]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11] Functions [2]: [partial_sum(sales_cnt#18), partial_sum(UnscaledValue(sales_amt#19))] -Aggregate Attributes [2]: [sum#59, sum#60] +Aggregate Attributes [2]: [sum#58, sum#59] Results [7]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sum#123, sum#124] (356) Exchange @@ -2397,7 +2397,7 @@ Results [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manuf Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#18, sales_amt#19] Keys [5]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73] Functions [2]: [partial_sum(sales_cnt#18), partial_sum(UnscaledValue(sales_amt#19))] -Aggregate Attributes [2]: [sum#59, sum#112] +Aggregate Attributes [2]: [sum#58, sum#112] Results [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sum#123, sum#131] (447) Exchange diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q76.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q76.txt index d0396954d..6ba794c58 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q76.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q76.txt @@ -556,25 +556,25 @@ Input [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, _c5#37] Keys [5]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6] Functions [2]: [partial_count(1), partial_sum(_c5#37)] Aggregate Attributes [2]: [count#38, sum#39] -Results [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Results [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] (96) NativeShuffleExchange -Input [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Input [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] Arguments: hashpartitioning(channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, 100), ENSURE_REQUIREMENTS, [plan_id=9] (97) ShuffleQueryStage -Output [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Output [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] Arguments: X (98) AQEShuffleRead -Input [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Input [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] Arguments: coalesced (99) InputAdapter -Input [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Input [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] (100) NativeHashAggregate -Input [6]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40#40] +Input [7]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6, #40, #40] Keys [5]: [channel#10, col_name#11, d_year#8, d_qoy#9, i_category#6] Functions [2]: [count(1), sum(UnscaledValue(ext_sales_price#12))] Aggregate Attributes [2]: [count(1)#41, sum(UnscaledValue(ext_sales_price#12))#42] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt index 749504b0e..a99931b9d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt @@ -493,10 +493,10 @@ Input [3]: [s_store_sk#7, _c1#8, _c2#9] Keys [1]: [s_store_sk#7] Functions [2]: [partial_sum(_c1#8), partial_sum(_c2#9)] Aggregate Attributes [2]: [sum#10, sum#11] -Results [2]: [s_store_sk#7, #12#12] +Results [3]: [s_store_sk#7, #12, #12] (37) NativeHashAggregate -Input [2]: [s_store_sk#7, #12#12] +Input [3]: [s_store_sk#7, #12, #12] Keys [1]: [s_store_sk#7] Functions [2]: [sum(UnscaledValue(ss_ext_sales_price#3)), sum(UnscaledValue(ss_net_profit#4))] Aggregate Attributes [2]: [sum(UnscaledValue(ss_ext_sales_price#3))#13, sum(UnscaledValue(ss_net_profit#4))#14] @@ -636,10 +636,10 @@ Input [3]: [s_store_sk#22, _c1#23, _c2#24] Keys [1]: [s_store_sk#22] Functions [2]: [partial_sum(_c1#23), partial_sum(_c2#24)] Aggregate Attributes [2]: [sum#25, sum#26] -Results [2]: [s_store_sk#22, #12#12] +Results [3]: [s_store_sk#22, #12, #12] (71) NativeHashAggregate -Input [2]: [s_store_sk#22, #12#12] +Input [3]: [s_store_sk#22, #12, #12] Keys [1]: [s_store_sk#22] Functions [2]: [sum(UnscaledValue(sr_return_amt#19)), sum(UnscaledValue(sr_net_loss#20))] Aggregate Attributes [2]: [sum(UnscaledValue(sr_return_amt#19))#27, sum(UnscaledValue(sr_net_loss#20))#28] @@ -738,25 +738,25 @@ Input [3]: [cs_call_center_sk#36, _c1#40, _c2#41] Keys [1]: [cs_call_center_sk#36] Functions [2]: [partial_sum(_c1#40), partial_sum(_c2#41)] Aggregate Attributes [2]: [sum#42, sum#43] -Results [2]: [cs_call_center_sk#36, #12#12] +Results [3]: [cs_call_center_sk#36, #12, #12] (94) NativeShuffleExchange -Input [2]: [cs_call_center_sk#36, #12#12] +Input [3]: [cs_call_center_sk#36, #12, #12] Arguments: hashpartitioning(cs_call_center_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=8] (95) ShuffleQueryStage -Output [2]: [cs_call_center_sk#36, #12#12] +Output [3]: [cs_call_center_sk#36, #12, #12] Arguments: X (96) AQEShuffleRead -Input [2]: [cs_call_center_sk#36, #12#12] +Input [3]: [cs_call_center_sk#36, #12, #12] Arguments: coalesced (97) InputAdapter -Input [2]: [cs_call_center_sk#36, #12#12] +Input [3]: [cs_call_center_sk#36, #12, #12] (98) NativeHashAggregate -Input [2]: [cs_call_center_sk#36, #12#12] +Input [3]: [cs_call_center_sk#36, #12, #12] Keys [1]: [cs_call_center_sk#36] Functions [2]: [sum(UnscaledValue(cs_ext_sales_price#37)), sum(UnscaledValue(cs_net_profit#38))] Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_sales_price#37))#44, sum(UnscaledValue(cs_net_profit#38))#45] @@ -841,18 +841,18 @@ Input [2]: [_c0#52, _c1#53] Keys: [] Functions [2]: [partial_sum(_c0#52), partial_sum(_c1#53)] Aggregate Attributes [2]: [sum#54, sum#55] -Results [1]: [#12#12] +Results [2]: [#12, #12] (118) NativeShuffleExchange -Input [1]: [#12#12] +Input [2]: [#12, #12] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (119) ShuffleQueryStage -Output [1]: [#12#12] +Output [2]: [#12, #12] Arguments: X (120) NativeHashAggregate -Input [1]: [#12#12] +Input [2]: [#12, #12] Keys: [] Functions [2]: [sum(UnscaledValue(cr_return_amount#49)), sum(UnscaledValue(cr_net_loss#50))] Aggregate Attributes [2]: [sum(UnscaledValue(cr_return_amount#49))#56, sum(UnscaledValue(cr_net_loss#50))#57] @@ -1011,10 +1011,10 @@ Input [3]: [wp_web_page_sk#68, _c1#69, _c2#70] Keys [1]: [wp_web_page_sk#68] Functions [2]: [partial_sum(_c1#69), partial_sum(_c2#70)] Aggregate Attributes [2]: [sum#71, sum#72] -Results [2]: [wp_web_page_sk#68, #12#12] +Results [3]: [wp_web_page_sk#68, #12, #12] (158) NativeHashAggregate -Input [2]: [wp_web_page_sk#68, #12#12] +Input [3]: [wp_web_page_sk#68, #12, #12] Keys [1]: [wp_web_page_sk#68] Functions [2]: [sum(UnscaledValue(ws_ext_sales_price#65)), sum(UnscaledValue(ws_net_profit#66))] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_sales_price#65))#73, sum(UnscaledValue(ws_net_profit#66))#74] @@ -1154,10 +1154,10 @@ Input [3]: [wp_web_page_sk#82, _c1#83, _c2#84] Keys [1]: [wp_web_page_sk#82] Functions [2]: [partial_sum(_c1#83), partial_sum(_c2#84)] Aggregate Attributes [2]: [sum#85, sum#86] -Results [2]: [wp_web_page_sk#82, #12#12] +Results [3]: [wp_web_page_sk#82, #12, #12] (192) NativeHashAggregate -Input [2]: [wp_web_page_sk#82, #12#12] +Input [3]: [wp_web_page_sk#82, #12, #12] Keys [1]: [wp_web_page_sk#82] Functions [2]: [sum(UnscaledValue(wr_return_amt#79)), sum(UnscaledValue(wr_net_loss#80))] Aggregate Attributes [2]: [sum(UnscaledValue(wr_return_amt#79))#87, sum(UnscaledValue(wr_net_loss#80))#88] @@ -1197,37 +1197,37 @@ Input [6]: [sales#15, returns#31, profit#32, channel#95, id#96, spark_grouping_i Keys [3]: [channel#95, id#96, spark_grouping_id#97] Functions [3]: [partial_sum(sales#15), partial_sum(returns#31), partial_sum(profit#32)] Aggregate Attributes [6]: [sum#98, isEmpty#99, sum#100, isEmpty#101, sum#102, isEmpty#103] -Results [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Results [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] (201) NativeShuffleExchange -Input [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Input [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] Arguments: hashpartitioning(channel#95, id#96, spark_grouping_id#97, 100), ENSURE_REQUIREMENTS, [plan_id=16] (202) ShuffleQueryStage -Output [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Output [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] Arguments: X (203) AQEShuffleRead -Input [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Input [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] Arguments: coalesced (204) InputAdapter -Input [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Input [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] (205) NativeHashAggregate -Input [4]: [channel#95, id#96, spark_grouping_id#97, #12#12] +Input [6]: [channel#95, id#96, spark_grouping_id#97, #104, #104, #104] Keys [3]: [channel#95, id#96, spark_grouping_id#97] Functions [3]: [sum(sales#15), sum(returns#31), sum(profit#32)] -Aggregate Attributes [3]: [sum(sales#15)#104, sum(returns#31)#105, sum(profit#32)#106] -Results [6]: [channel#95, id#96, spark_grouping_id#97, sum(sales#15)#104, sum(returns#31)#105, sum(profit#32)#106] +Aggregate Attributes [3]: [sum(sales#15)#105, sum(returns#31)#106, sum(profit#32)#107] +Results [6]: [channel#95, id#96, spark_grouping_id#97, sum(sales#15)#105, sum(returns#31)#106, sum(profit#32)#107] (206) NativeProject -Output [5]: [channel#95, id#96, sum(sales#15)#104 AS sales#107, sum(returns#31)#105 AS returns#108, sum(profit#32)#106 AS profit#109] -Input [6]: [channel#95, id#96, spark_grouping_id#97, sum(sales#15)#104, sum(returns#31)#105, sum(profit#32)#106] +Output [5]: [channel#95, id#96, sum(sales#15)#105 AS sales#108, sum(returns#31)#106 AS returns#109, sum(profit#32)#107 AS profit#110] +Input [6]: [channel#95, id#96, spark_grouping_id#97, sum(sales#15)#105, sum(returns#31)#106, sum(profit#32)#107] (207) NativeTakeOrdered -Input [5]: [channel#95, id#96, sales#107, returns#108, profit#109] -Arguments: X, [channel#95 ASC NULLS FIRST, id#96 ASC NULLS FIRST, sales#107 ASC NULLS FIRST] +Input [5]: [channel#95, id#96, sales#108, returns#109, profit#110] +Arguments: X, [channel#95 ASC NULLS FIRST, id#96 ASC NULLS FIRST, sales#108 ASC NULLS FIRST] (208) Scan parquet Output [4]: [ss_sold_date_sk#1, ss_store_sk#2, ss_ext_sales_price#3, ss_net_profit#4] @@ -1323,10 +1323,10 @@ Input [3]: [ss_ext_sales_price#3, ss_net_profit#4, s_store_sk#7] Keys [1]: [s_store_sk#7] Functions [2]: [partial_sum(UnscaledValue(ss_ext_sales_price#3)), partial_sum(UnscaledValue(ss_net_profit#4))] Aggregate Attributes [2]: [sum#10, sum#11] -Results [3]: [s_store_sk#7, sum#110, sum#111] +Results [3]: [s_store_sk#7, sum#111, sum#112] (228) HashAggregate -Input [3]: [s_store_sk#7, sum#110, sum#111] +Input [3]: [s_store_sk#7, sum#111, sum#112] Keys [1]: [s_store_sk#7] Functions [2]: [sum(UnscaledValue(ss_ext_sales_price#3)), sum(UnscaledValue(ss_net_profit#4))] Aggregate Attributes [2]: [sum(UnscaledValue(ss_ext_sales_price#3))#13, sum(UnscaledValue(ss_net_profit#4))#14] @@ -1356,19 +1356,19 @@ Input [4]: [sr_returned_date_sk#17, sr_store_sk#18, sr_return_amt#19, sr_net_los Arguments: [sr_returned_date_sk#17 ASC NULLS FIRST], false, 0 (234) Scan parquet -Output [2]: [d_date_sk#21, d_date#112] +Output [2]: [d_date_sk#21, d_date#113] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-03), LessThanOrEqual(d_date,2000-09-02), IsNotNull(d_date_sk)] ReadSchema: struct (235) Filter -Input [2]: [d_date_sk#21, d_date#112] -Condition : (((isnotnull(d_date#112) AND (d_date#112 >= 2000-08-03)) AND (d_date#112 <= 2000-09-02)) AND isnotnull(d_date_sk#21)) +Input [2]: [d_date_sk#21, d_date#113] +Condition : (((isnotnull(d_date#113) AND (d_date#113 >= 2000-08-03)) AND (d_date#113 <= 2000-09-02)) AND isnotnull(d_date_sk#21)) (236) Project Output [1]: [d_date_sk#21] -Input [2]: [d_date_sk#21, d_date#112] +Input [2]: [d_date_sk#21, d_date#113] (237) Exchange Input [1]: [d_date_sk#21] @@ -1430,10 +1430,10 @@ Input [3]: [sr_return_amt#19, sr_net_loss#20, s_store_sk#22] Keys [1]: [s_store_sk#22] Functions [2]: [partial_sum(UnscaledValue(sr_return_amt#19)), partial_sum(UnscaledValue(sr_net_loss#20))] Aggregate Attributes [2]: [sum#25, sum#26] -Results [3]: [s_store_sk#22, sum#113, sum#114] +Results [3]: [s_store_sk#22, sum#114, sum#115] (250) HashAggregate -Input [3]: [s_store_sk#22, sum#113, sum#114] +Input [3]: [s_store_sk#22, sum#114, sum#115] Keys [1]: [s_store_sk#22] Functions [2]: [sum(UnscaledValue(sr_return_amt#19)), sum(UnscaledValue(sr_net_loss#20))] Aggregate Attributes [2]: [sum(UnscaledValue(sr_return_amt#19))#27, sum(UnscaledValue(sr_net_loss#20))#28] @@ -1473,19 +1473,19 @@ Input [4]: [cs_sold_date_sk#35, cs_call_center_sk#36, cs_ext_sales_price#37, cs_ Arguments: [cs_sold_date_sk#35 ASC NULLS FIRST], false, 0 (258) Scan parquet -Output [2]: [d_date_sk#39, d_date#115] +Output [2]: [d_date_sk#39, d_date#116] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-03), LessThanOrEqual(d_date,2000-09-02), IsNotNull(d_date_sk)] ReadSchema: struct (259) Filter -Input [2]: [d_date_sk#39, d_date#115] -Condition : (((isnotnull(d_date#115) AND (d_date#115 >= 2000-08-03)) AND (d_date#115 <= 2000-09-02)) AND isnotnull(d_date_sk#39)) +Input [2]: [d_date_sk#39, d_date#116] +Condition : (((isnotnull(d_date#116) AND (d_date#116 >= 2000-08-03)) AND (d_date#116 <= 2000-09-02)) AND isnotnull(d_date_sk#39)) (260) Project Output [1]: [d_date_sk#39] -Input [2]: [d_date_sk#39, d_date#115] +Input [2]: [d_date_sk#39, d_date#116] (261) Exchange Input [1]: [d_date_sk#39] @@ -1510,14 +1510,14 @@ Input [3]: [cs_call_center_sk#36, cs_ext_sales_price#37, cs_net_profit#38] Keys [1]: [cs_call_center_sk#36] Functions [2]: [partial_sum(UnscaledValue(cs_ext_sales_price#37)), partial_sum(UnscaledValue(cs_net_profit#38))] Aggregate Attributes [2]: [sum#42, sum#43] -Results [3]: [cs_call_center_sk#36, sum#116, sum#117] +Results [3]: [cs_call_center_sk#36, sum#117, sum#118] (266) Exchange -Input [3]: [cs_call_center_sk#36, sum#116, sum#117] +Input [3]: [cs_call_center_sk#36, sum#117, sum#118] Arguments: hashpartitioning(cs_call_center_sk#36, 100), ENSURE_REQUIREMENTS, [plan_id=27] (267) HashAggregate -Input [3]: [cs_call_center_sk#36, sum#116, sum#117] +Input [3]: [cs_call_center_sk#36, sum#117, sum#118] Keys [1]: [cs_call_center_sk#36] Functions [2]: [sum(UnscaledValue(cs_ext_sales_price#37)), sum(UnscaledValue(cs_net_profit#38))] Aggregate Attributes [2]: [sum(UnscaledValue(cs_ext_sales_price#37))#44, sum(UnscaledValue(cs_net_profit#38))#45] @@ -1543,19 +1543,19 @@ Input [3]: [cr_returned_date_sk#48, cr_return_amount#49, cr_net_loss#50] Arguments: [cr_returned_date_sk#48 ASC NULLS FIRST], false, 0 (272) Scan parquet -Output [2]: [d_date_sk#51, d_date#118] +Output [2]: [d_date_sk#51, d_date#119] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-03), LessThanOrEqual(d_date,2000-09-02), IsNotNull(d_date_sk)] ReadSchema: struct (273) Filter -Input [2]: [d_date_sk#51, d_date#118] -Condition : (((isnotnull(d_date#118) AND (d_date#118 >= 2000-08-03)) AND (d_date#118 <= 2000-09-02)) AND isnotnull(d_date_sk#51)) +Input [2]: [d_date_sk#51, d_date#119] +Condition : (((isnotnull(d_date#119) AND (d_date#119 >= 2000-08-03)) AND (d_date#119 <= 2000-09-02)) AND isnotnull(d_date_sk#51)) (274) Project Output [1]: [d_date_sk#51] -Input [2]: [d_date_sk#51, d_date#118] +Input [2]: [d_date_sk#51, d_date#119] (275) Exchange Input [1]: [d_date_sk#51] @@ -1580,14 +1580,14 @@ Input [2]: [cr_return_amount#49, cr_net_loss#50] Keys: [] Functions [2]: [partial_sum(UnscaledValue(cr_return_amount#49)), partial_sum(UnscaledValue(cr_net_loss#50))] Aggregate Attributes [2]: [sum#54, sum#55] -Results [2]: [sum#119, sum#120] +Results [2]: [sum#120, sum#121] (280) Exchange -Input [2]: [sum#119, sum#120] +Input [2]: [sum#120, sum#121] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=30] (281) HashAggregate -Input [2]: [sum#119, sum#120] +Input [2]: [sum#120, sum#121] Keys: [] Functions [2]: [sum(UnscaledValue(cr_return_amount#49)), sum(UnscaledValue(cr_net_loss#50))] Aggregate Attributes [2]: [sum(UnscaledValue(cr_return_amount#49))#56, sum(UnscaledValue(cr_net_loss#50))#57] @@ -1621,19 +1621,19 @@ Input [4]: [ws_sold_date_sk#63, ws_web_page_sk#64, ws_ext_sales_price#65, ws_net Arguments: [ws_sold_date_sk#63 ASC NULLS FIRST], false, 0 (288) Scan parquet -Output [2]: [d_date_sk#67, d_date#121] +Output [2]: [d_date_sk#67, d_date#122] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-03), LessThanOrEqual(d_date,2000-09-02), IsNotNull(d_date_sk)] ReadSchema: struct (289) Filter -Input [2]: [d_date_sk#67, d_date#121] -Condition : (((isnotnull(d_date#121) AND (d_date#121 >= 2000-08-03)) AND (d_date#121 <= 2000-09-02)) AND isnotnull(d_date_sk#67)) +Input [2]: [d_date_sk#67, d_date#122] +Condition : (((isnotnull(d_date#122) AND (d_date#122 >= 2000-08-03)) AND (d_date#122 <= 2000-09-02)) AND isnotnull(d_date_sk#67)) (290) Project Output [1]: [d_date_sk#67] -Input [2]: [d_date_sk#67, d_date#121] +Input [2]: [d_date_sk#67, d_date#122] (291) Exchange Input [1]: [d_date_sk#67] @@ -1695,10 +1695,10 @@ Input [3]: [ws_ext_sales_price#65, ws_net_profit#66, wp_web_page_sk#68] Keys [1]: [wp_web_page_sk#68] Functions [2]: [partial_sum(UnscaledValue(ws_ext_sales_price#65)), partial_sum(UnscaledValue(ws_net_profit#66))] Aggregate Attributes [2]: [sum#71, sum#72] -Results [3]: [wp_web_page_sk#68, sum#122, sum#123] +Results [3]: [wp_web_page_sk#68, sum#123, sum#124] (304) HashAggregate -Input [3]: [wp_web_page_sk#68, sum#122, sum#123] +Input [3]: [wp_web_page_sk#68, sum#123, sum#124] Keys [1]: [wp_web_page_sk#68] Functions [2]: [sum(UnscaledValue(ws_ext_sales_price#65)), sum(UnscaledValue(ws_net_profit#66))] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_sales_price#65))#73, sum(UnscaledValue(ws_net_profit#66))#74] @@ -1728,19 +1728,19 @@ Input [4]: [wr_returned_date_sk#77, wr_web_page_sk#78, wr_return_amt#79, wr_net_ Arguments: [wr_returned_date_sk#77 ASC NULLS FIRST], false, 0 (310) Scan parquet -Output [2]: [d_date_sk#81, d_date#124] +Output [2]: [d_date_sk#81, d_date#125] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-03), LessThanOrEqual(d_date,2000-09-02), IsNotNull(d_date_sk)] ReadSchema: struct (311) Filter -Input [2]: [d_date_sk#81, d_date#124] -Condition : (((isnotnull(d_date#124) AND (d_date#124 >= 2000-08-03)) AND (d_date#124 <= 2000-09-02)) AND isnotnull(d_date_sk#81)) +Input [2]: [d_date_sk#81, d_date#125] +Condition : (((isnotnull(d_date#125) AND (d_date#125 >= 2000-08-03)) AND (d_date#125 <= 2000-09-02)) AND isnotnull(d_date_sk#81)) (312) Project Output [1]: [d_date_sk#81] -Input [2]: [d_date_sk#81, d_date#124] +Input [2]: [d_date_sk#81, d_date#125] (313) Exchange Input [1]: [d_date_sk#81] @@ -1802,10 +1802,10 @@ Input [3]: [wr_return_amt#79, wr_net_loss#80, wp_web_page_sk#82] Keys [1]: [wp_web_page_sk#82] Functions [2]: [partial_sum(UnscaledValue(wr_return_amt#79)), partial_sum(UnscaledValue(wr_net_loss#80))] Aggregate Attributes [2]: [sum#85, sum#86] -Results [3]: [wp_web_page_sk#82, sum#125, sum#126] +Results [3]: [wp_web_page_sk#82, sum#126, sum#127] (326) HashAggregate -Input [3]: [wp_web_page_sk#82, sum#125, sum#126] +Input [3]: [wp_web_page_sk#82, sum#126, sum#127] Keys [1]: [wp_web_page_sk#82] Functions [2]: [sum(UnscaledValue(wr_return_amt#79)), sum(UnscaledValue(wr_net_loss#80))] Aggregate Attributes [2]: [sum(UnscaledValue(wr_return_amt#79))#87, sum(UnscaledValue(wr_net_loss#80))#88] @@ -1836,24 +1836,24 @@ Input [6]: [sales#15, returns#31, profit#32, channel#95, id#96, spark_grouping_i Keys [3]: [channel#95, id#96, spark_grouping_id#97] Functions [3]: [partial_sum(sales#15), partial_sum(returns#31), partial_sum(profit#32)] Aggregate Attributes [6]: [sum#98, isEmpty#99, sum#100, isEmpty#101, sum#102, isEmpty#103] -Results [9]: [channel#95, id#96, spark_grouping_id#97, sum#127, isEmpty#128, sum#129, isEmpty#130, sum#131, isEmpty#132] +Results [9]: [channel#95, id#96, spark_grouping_id#97, sum#128, isEmpty#129, sum#130, isEmpty#131, sum#132, isEmpty#133] (333) Exchange -Input [9]: [channel#95, id#96, spark_grouping_id#97, sum#127, isEmpty#128, sum#129, isEmpty#130, sum#131, isEmpty#132] +Input [9]: [channel#95, id#96, spark_grouping_id#97, sum#128, isEmpty#129, sum#130, isEmpty#131, sum#132, isEmpty#133] Arguments: hashpartitioning(channel#95, id#96, spark_grouping_id#97, 100), ENSURE_REQUIREMENTS, [plan_id=39] (334) HashAggregate -Input [9]: [channel#95, id#96, spark_grouping_id#97, sum#127, isEmpty#128, sum#129, isEmpty#130, sum#131, isEmpty#132] +Input [9]: [channel#95, id#96, spark_grouping_id#97, sum#128, isEmpty#129, sum#130, isEmpty#131, sum#132, isEmpty#133] Keys [3]: [channel#95, id#96, spark_grouping_id#97] Functions [3]: [sum(sales#15), sum(returns#31), sum(profit#32)] -Aggregate Attributes [3]: [sum(sales#15)#104, sum(returns#31)#105, sum(profit#32)#106] -Results [5]: [channel#95, id#96, sum(sales#15)#104 AS sales#107, sum(returns#31)#105 AS returns#108, sum(profit#32)#106 AS profit#109] +Aggregate Attributes [3]: [sum(sales#15)#105, sum(returns#31)#106, sum(profit#32)#107] +Results [5]: [channel#95, id#96, sum(sales#15)#105 AS sales#108, sum(returns#31)#106 AS returns#109, sum(profit#32)#107 AS profit#110] (335) TakeOrderedAndProject -Input [5]: [channel#95, id#96, sales#107, returns#108, profit#109] -Arguments: X, [channel#95 ASC NULLS FIRST, id#96 ASC NULLS FIRST, sales#107 ASC NULLS FIRST], [channel#95, id#96, sales#107, returns#108, profit#109] +Input [5]: [channel#95, id#96, sales#108, returns#109, profit#110] +Arguments: X, [channel#95 ASC NULLS FIRST, id#96 ASC NULLS FIRST, sales#108 ASC NULLS FIRST], [channel#95, id#96, sales#108, returns#109, profit#110] (336) AdaptiveSparkPlan -Output [5]: [channel#95, id#96, sales#107, returns#108, profit#109] +Output [5]: [channel#95, id#96, sales#108, returns#109, profit#110] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q78.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q78.txt index cf21f6ab9..77e2735de 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q78.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q78.txt @@ -367,25 +367,25 @@ Input [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, _c3#12, _c4#13, _c5#14] Keys [3]: [d_year#11, ss_item_sk#2, ss_customer_sk#3] Functions [3]: [partial_sum(_c3#12), partial_sum(_c4#13), partial_sum(_c5#14)] Aggregate Attributes [3]: [sum#15, sum#16, sum#17] -Results [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Results [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] (37) NativeShuffleExchange -Input [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Input [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] Arguments: hashpartitioning(d_year#11, ss_item_sk#2, ss_customer_sk#3, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Output [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] Arguments: X (39) AQEShuffleRead -Input [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Input [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] Arguments: coalesced (40) InputAdapter -Input [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Input [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] (41) NativeHashAggregate -Input [4]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18#18] +Input [6]: [d_year#11, ss_item_sk#2, ss_customer_sk#3, #18, #18, #18] Keys [3]: [d_year#11, ss_item_sk#2, ss_customer_sk#3] Functions [3]: [sum(ss_quantity#5), sum(UnscaledValue(ss_wholesale_cost#6)), sum(UnscaledValue(ss_sales_price#7))] Aggregate Attributes [3]: [sum(ss_quantity#5)#19, sum(UnscaledValue(ss_wholesale_cost#6))#20, sum(UnscaledValue(ss_sales_price#7))#21] @@ -541,25 +541,25 @@ Input [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, _c3#37, _c4#38, _c Keys [3]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28] Functions [3]: [partial_sum(_c3#37), partial_sum(_c4#38), partial_sum(_c5#39)] Aggregate Attributes [3]: [sum#40, sum#41, sum#42] -Results [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Results [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] (78) NativeShuffleExchange -Input [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Input [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] Arguments: hashpartitioning(d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, 100), ENSURE_REQUIREMENTS, [plan_id=9] (79) ShuffleQueryStage -Output [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Output [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] Arguments: X (80) AQEShuffleRead -Input [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Input [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] Arguments: coalesced (81) InputAdapter -Input [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Input [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] (82) NativeHashAggregate -Input [4]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18#18] +Input [6]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28, #18, #18, #18] Keys [3]: [d_year#36, ws_item_sk#27, ws_bill_customer_sk#28] Functions [3]: [sum(ws_quantity#30), sum(UnscaledValue(ws_wholesale_cost#31)), sum(UnscaledValue(ws_sales_price#32))] Aggregate Attributes [3]: [sum(ws_quantity#30)#43, sum(UnscaledValue(ws_wholesale_cost#31))#44, sum(UnscaledValue(ws_sales_price#32))#45] @@ -729,25 +729,25 @@ Input [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, _c3#62, _c4#63, _c Keys [3]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52] Functions [3]: [partial_sum(_c3#62), partial_sum(_c4#63), partial_sum(_c5#64)] Aggregate Attributes [3]: [sum#65, sum#66, sum#67] -Results [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Results [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] (122) NativeShuffleExchange -Input [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Input [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] Arguments: hashpartitioning(d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, 100), ENSURE_REQUIREMENTS, [plan_id=13] (123) ShuffleQueryStage -Output [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Output [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] Arguments: X (124) AQEShuffleRead -Input [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Input [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] Arguments: coalesced (125) InputAdapter -Input [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Input [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] (126) NativeHashAggregate -Input [4]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18#18] +Input [6]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52, #18, #18, #18] Keys [3]: [d_year#61, cs_item_sk#53, cs_bill_customer_sk#52] Functions [3]: [sum(cs_quantity#55), sum(UnscaledValue(cs_wholesale_cost#56)), sum(UnscaledValue(cs_sales_price#57))] Aggregate Attributes [3]: [sum(cs_quantity#55)#68, sum(UnscaledValue(cs_wholesale_cost#56))#69, sum(UnscaledValue(cs_sales_price#57))#70] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q79.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q79.txt index ab317fd45..c8d6794a4 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q79.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q79.txt @@ -346,25 +346,25 @@ Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, _c4#1 Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14] Functions [2]: [partial_sum(_c4#18), partial_sum(_c5#19)] Aggregate Attributes [2]: [sum#20, sum#21] -Results [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Results [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] (54) NativeShuffleExchange -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] Arguments: hashpartitioning(ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, 100), ENSURE_REQUIREMENTS, [plan_id=7] (55) ShuffleQueryStage -Output [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Output [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] Arguments: X (56) AQEShuffleRead -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] Arguments: coalesced (57) InputAdapter -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] (58) NativeHashAggregate -Input [5]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22#22] +Input [6]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14, #22, #22] Keys [4]: [ss_ticket_number#6, ss_customer_sk#2, ss_addr_sk#4, s_city#14] Functions [2]: [sum(UnscaledValue(ss_coupon_amt#7)), sum(UnscaledValue(ss_net_profit#8))] Aggregate Attributes [2]: [sum(UnscaledValue(ss_coupon_amt#7))#23, sum(UnscaledValue(ss_net_profit#8))#24] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q8.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q8.txt index 6593842c4..a4aa3c6bd 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q8.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q8.txt @@ -453,25 +453,25 @@ Input [1]: [ca_zip#13] Keys [1]: [ca_zip#13] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#16] -Results [2]: [ca_zip#13, #17#17] +Results [2]: [ca_zip#13, #17] (69) NativeShuffleExchange -Input [2]: [ca_zip#13, #17#17] +Input [2]: [ca_zip#13, #17] Arguments: hashpartitioning(ca_zip#13, 100), ENSURE_REQUIREMENTS, [plan_id=9] (70) ShuffleQueryStage -Output [2]: [ca_zip#13, #17#17] +Output [2]: [ca_zip#13, #17] Arguments: X (71) AQEShuffleRead -Input [2]: [ca_zip#13, #17#17] +Input [2]: [ca_zip#13, #17] Arguments: coalesced (72) InputAdapter -Input [2]: [ca_zip#13, #17#17] +Input [2]: [ca_zip#13, #17] (73) NativeHashAggregate -Input [2]: [ca_zip#13, #17#17] +Input [2]: [ca_zip#13, #17] Keys [1]: [ca_zip#13] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#18] @@ -519,33 +519,33 @@ Input [1]: [ca_zip#11] Keys [1]: [ca_zip#11] Functions: [] Aggregate Attributes: [] -Results [2]: [ca_zip#11, #17#17] +Results [1]: [ca_zip#11] (84) NativeShuffleExchange -Input [2]: [ca_zip#11, #17#17] +Input [1]: [ca_zip#11] Arguments: hashpartitioning(ca_zip#11, 100), ENSURE_REQUIREMENTS, [plan_id=11] (85) ShuffleQueryStage -Output [2]: [ca_zip#11, #17#17] +Output [1]: [ca_zip#11] Arguments: X (86) AQEShuffleRead -Input [2]: [ca_zip#11, #17#17] +Input [1]: [ca_zip#11] Arguments: coalesced (87) InputAdapter -Input [2]: [ca_zip#11, #17#17] +Input [1]: [ca_zip#11] (88) NativeHashAggregate -Input [2]: [ca_zip#11, #17#17] +Input [1]: [ca_zip#11] Keys [1]: [ca_zip#11] Functions: [] Aggregate Attributes: [] -Results [2]: [ca_zip#11, #17#17] +Results [1]: [ca_zip#11] (89) NativeProject Output [1]: [ca_zip#11] -Input [2]: [ca_zip#11, #17#17] +Input [1]: [ca_zip#11] (90) NativeShuffleExchange Input [1]: [ca_zip#11] @@ -585,25 +585,25 @@ Input [2]: [s_store_name#8, _c1#21] Keys [1]: [s_store_name#8] Functions [1]: [partial_sum(_c1#21)] Aggregate Attributes [1]: [sum#22] -Results [2]: [s_store_name#8, #17#17] +Results [2]: [s_store_name#8, #17] (99) NativeShuffleExchange -Input [2]: [s_store_name#8, #17#17] +Input [2]: [s_store_name#8, #17] Arguments: hashpartitioning(s_store_name#8, 100), ENSURE_REQUIREMENTS, [plan_id=13] (100) ShuffleQueryStage -Output [2]: [s_store_name#8, #17#17] +Output [2]: [s_store_name#8, #17] Arguments: X (101) AQEShuffleRead -Input [2]: [s_store_name#8, #17#17] +Input [2]: [s_store_name#8, #17] Arguments: coalesced (102) InputAdapter -Input [2]: [s_store_name#8, #17#17] +Input [2]: [s_store_name#8, #17] (103) NativeHashAggregate -Input [2]: [s_store_name#8, #17#17] +Input [2]: [s_store_name#8, #17] Keys [1]: [s_store_name#8] Functions [1]: [sum(UnscaledValue(ss_net_profit#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_net_profit#3))#23] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q80.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q80.txt index 721300cd0..5d1f214f7 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q80.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q80.txt @@ -765,244 +765,244 @@ Input [4]: [s_store_id#15, _c1#20, _c2#21, _c3#22] Keys [1]: [s_store_id#15] Functions [3]: [partial_sum(_c1#20), partial_sum(_c2#21), partial_sum(_c3#22)] Aggregate Attributes [5]: [sum#23, sum#24, isEmpty#25, sum#26, isEmpty#27] -Results [2]: [s_store_id#15, #28#28] +Results [4]: [s_store_id#15, #28, #29, #29] (84) NativeShuffleExchange -Input [2]: [s_store_id#15, #28#28] +Input [4]: [s_store_id#15, #28, #29, #29] Arguments: hashpartitioning(s_store_id#15, 100), ENSURE_REQUIREMENTS, [plan_id=11] (85) ShuffleQueryStage -Output [2]: [s_store_id#15, #28#28] +Output [4]: [s_store_id#15, #28, #29, #29] Arguments: X (86) AQEShuffleRead -Input [2]: [s_store_id#15, #28#28] +Input [4]: [s_store_id#15, #28, #29, #29] Arguments: coalesced (87) InputAdapter -Input [2]: [s_store_id#15, #28#28] +Input [4]: [s_store_id#15, #28, #29, #29] (88) NativeHashAggregate -Input [2]: [s_store_id#15, #28#28] +Input [4]: [s_store_id#15, #28, #29, #29] Keys [1]: [s_store_id#15] Functions [3]: [sum(UnscaledValue(ss_ext_sales_price#6)), sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00)), sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))] -Aggregate Attributes [3]: [sum(UnscaledValue(ss_ext_sales_price#6))#29, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31] -Results [4]: [s_store_id#15, sum(UnscaledValue(ss_ext_sales_price#6))#29, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31] +Aggregate Attributes [3]: [sum(UnscaledValue(ss_ext_sales_price#6))#30, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32] +Results [4]: [s_store_id#15, sum(UnscaledValue(ss_ext_sales_price#6))#30, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32] (89) NativeProject -Output [5]: [MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#6))#29,17,2) AS sales#32, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30 AS returns#33, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31 AS profit#34, store channel AS channel#35, concat(store, s_store_id#15) AS id#36] -Input [4]: [s_store_id#15, sum(UnscaledValue(ss_ext_sales_price#6))#29, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31] +Output [5]: [MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#6))#30,17,2) AS sales#33, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31 AS returns#34, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32 AS profit#35, store channel AS channel#36, concat(store, s_store_id#15) AS id#37] +Input [4]: [s_store_id#15, sum(UnscaledValue(ss_ext_sales_price#6))#30, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32] (309) Scan parquet -Output [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] +Output [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_catalog_page_sk), IsNotNull(cs_item_sk), IsNotNull(cs_promo_sk)] ReadSchema: struct (91) InputAdapter -Input [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] -Arguments: [#37, #38, #39, #40, #41, #42, #43] +Input [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] +Arguments: [#38, #39, #40, #41, #42, #43, #44] (92) NativeFilter -Input [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Condition : (((isnotnull(cs_sold_date_sk#37) AND isnotnull(cs_catalog_page_sk#38)) AND isnotnull(cs_item_sk#39)) AND isnotnull(cs_promo_sk#40)) +Input [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Condition : (((isnotnull(cs_sold_date_sk#38) AND isnotnull(cs_catalog_page_sk#39)) AND isnotnull(cs_item_sk#40)) AND isnotnull(cs_promo_sk#41)) (93) NativeShuffleExchange -Input [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Arguments: hashpartitioning(cs_item_sk#39, cs_order_number#41, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Arguments: hashpartitioning(cs_item_sk#40, cs_order_number#42, 100), ENSURE_REQUIREMENTS, [plan_id=12] (94) ShuffleQueryStage -Output [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Output [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] Arguments: X (95) AQEShuffleRead -Input [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Input [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] Arguments: coalesced (96) InputAdapter -Input [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] +Input [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] (97) NativeSort -Input [7]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43] -Arguments: [cs_item_sk#39 ASC NULLS FIRST, cs_order_number#41 ASC NULLS FIRST], false +Input [7]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44] +Arguments: [cs_item_sk#40 ASC NULLS FIRST, cs_order_number#42 ASC NULLS FIRST], false (313) Scan parquet -Output [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] +Output [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)] ReadSchema: struct (99) InputAdapter -Input [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] -Arguments: [#44, #45, #46, #47] +Input [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] +Arguments: [#45, #46, #47, #48] (100) NativeFilter -Input [4]: [#44#44, #45#45, #46#46, #47#47] -Condition : (isnotnull(cr_item_sk#44) AND isnotnull(cr_order_number#45)) +Input [4]: [#45#45, #46#46, #47#47, #48#48] +Condition : (isnotnull(cr_item_sk#45) AND isnotnull(cr_order_number#46)) (101) NativeShuffleExchange -Input [4]: [#44#44, #45#45, #46#46, #47#47] -Arguments: hashpartitioning(cr_item_sk#44, cr_order_number#45, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [4]: [#45#45, #46#46, #47#47, #48#48] +Arguments: hashpartitioning(cr_item_sk#45, cr_order_number#46, 100), ENSURE_REQUIREMENTS, [plan_id=13] (102) ShuffleQueryStage -Output [4]: [#44#44, #45#45, #46#46, #47#47] +Output [4]: [#45#45, #46#46, #47#47, #48#48] Arguments: X (103) AQEShuffleRead -Input [4]: [#44#44, #45#45, #46#46, #47#47] +Input [4]: [#45#45, #46#46, #47#47, #48#48] Arguments: coalesced (104) InputAdapter -Input [4]: [#44#44, #45#45, #46#46, #47#47] +Input [4]: [#45#45, #46#46, #47#47, #48#48] (105) NativeSort -Input [4]: [#44#44, #45#45, #46#46, #47#47] -Arguments: [cr_item_sk#44 ASC NULLS FIRST, cr_order_number#45 ASC NULLS FIRST], false +Input [4]: [#45#45, #46#46, #47#47, #48#48] +Arguments: [cr_item_sk#45 ASC NULLS FIRST, cr_order_number#46 ASC NULLS FIRST], false (106) NativeSortMergeJoin -Left keys [2]: [cs_item_sk#39, cs_order_number#41] -Right keys [2]: [cr_item_sk#44, cr_order_number#45] +Left keys [2]: [cs_item_sk#40, cs_order_number#42] +Right keys [2]: [cr_item_sk#45, cr_order_number#46] Join type: LeftOuter Join condition: None (107) NativeProject -Output [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Input [11]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47] +Output [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Input [11]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] (108) NativeShuffleExchange -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: hashpartitioning(cs_sold_date_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: hashpartitioning(cs_sold_date_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=14] (109) ShuffleQueryStage -Output [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Output [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] Arguments: X (110) AQEShuffleRead -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] Arguments: coalesced (111) InputAdapter -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] (112) NativeSort -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: [cs_sold_date_sk#37 ASC NULLS FIRST], false +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: [cs_sold_date_sk#38 ASC NULLS FIRST], false (113) ReusedExchange [Reuses operator id: 28] -Output [1]: [d_date_sk#48] +Output [1]: [d_date_sk#49] (114) ShuffleQueryStage -Output [1]: [d_date_sk#48] +Output [1]: [d_date_sk#49] Arguments: X (115) AQEShuffleRead -Input [1]: [d_date_sk#48] +Input [1]: [d_date_sk#49] Arguments: coalesced (116) InputAdapter -Input [1]: [d_date_sk#48] -Arguments: [#48] +Input [1]: [d_date_sk#49] +Arguments: [#49] (117) InputAdapter -Input [1]: [#48#48] +Input [1]: [#49#49] (118) NativeSort -Input [1]: [#48#48] -Arguments: [d_date_sk#48 ASC NULLS FIRST], false +Input [1]: [#49#49] +Arguments: [d_date_sk#49 ASC NULLS FIRST], false (119) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#37] -Right keys [1]: [d_date_sk#48] +Left keys [1]: [cs_sold_date_sk#38] +Right keys [1]: [d_date_sk#49] Join type: Inner Join condition: None (120) NativeProject -Output [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Input [9]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, #48#48] +Output [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Input [9]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, #49#49] (121) NativeShuffleExchange -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: hashpartitioning(cs_catalog_page_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=15] +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: hashpartitioning(cs_catalog_page_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=15] (122) ShuffleQueryStage -Output [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Output [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] Arguments: X (123) AQEShuffleRead -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] Arguments: coalesced (124) InputAdapter -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] (125) NativeSort -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: [cs_catalog_page_sk#38 ASC NULLS FIRST], false +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: [cs_catalog_page_sk#39 ASC NULLS FIRST], false (330) Scan parquet -Output [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] +Output [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cp_catalog_page_sk)] ReadSchema: struct (127) InputAdapter -Input [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] -Arguments: [#49, #50] +Input [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] +Arguments: [#29, #50] (128) NativeFilter -Input [2]: [#49#49, #50#50] -Condition : isnotnull(cp_catalog_page_sk#49) +Input [2]: [#29#29, #50#50] +Condition : isnotnull(cp_catalog_page_sk#29) (129) NativeShuffleExchange -Input [2]: [#49#49, #50#50] -Arguments: hashpartitioning(cp_catalog_page_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=16] +Input [2]: [#29#29, #50#50] +Arguments: hashpartitioning(cp_catalog_page_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=16] (130) ShuffleQueryStage -Output [2]: [#49#49, #50#50] +Output [2]: [#29#29, #50#50] Arguments: X (131) AQEShuffleRead -Input [2]: [#49#49, #50#50] +Input [2]: [#29#29, #50#50] Arguments: coalesced (132) InputAdapter -Input [2]: [#49#49, #50#50] +Input [2]: [#29#29, #50#50] (133) NativeSort -Input [2]: [#49#49, #50#50] -Arguments: [cp_catalog_page_sk#49 ASC NULLS FIRST], false +Input [2]: [#29#29, #50#50] +Arguments: [cp_catalog_page_sk#29 ASC NULLS FIRST], false (134) NativeSortMergeJoin -Left keys [1]: [cs_catalog_page_sk#38] -Right keys [1]: [cp_catalog_page_sk#49] +Left keys [1]: [cs_catalog_page_sk#39] +Right keys [1]: [cp_catalog_page_sk#29] Join type: Inner Join condition: None (135) NativeProject -Output [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [9]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, #49#49, #50#50] +Output [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [9]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, #29#29, #50#50] (136) NativeShuffleExchange -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: hashpartitioning(cs_item_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=17] +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: hashpartitioning(cs_item_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=17] (137) ShuffleQueryStage -Output [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Output [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] Arguments: X (138) AQEShuffleRead -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] Arguments: coalesced (139) InputAdapter -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] (140) NativeSort -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: [cs_item_sk#39 ASC NULLS FIRST], false +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: [cs_item_sk#40 ASC NULLS FIRST], false (141) ReusedExchange [Reuses operator id: 59] Output [1]: [i_item_sk#51] @@ -1027,33 +1027,33 @@ Input [1]: [#51#51] Arguments: [i_item_sk#51 ASC NULLS FIRST], false (147) NativeSortMergeJoin -Left keys [1]: [cs_item_sk#39] +Left keys [1]: [cs_item_sk#40] Right keys [1]: [i_item_sk#51] Join type: Inner Join condition: None (148) NativeProject -Output [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [8]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50, #51#51] +Output [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [8]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50, #51#51] (149) NativeShuffleExchange -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: hashpartitioning(cs_promo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=18] +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: hashpartitioning(cs_promo_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=18] (150) ShuffleQueryStage -Output [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Output [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] Arguments: X (151) AQEShuffleRead -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] Arguments: coalesced (152) InputAdapter -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] (153) NativeSort -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: [cs_promo_sk#40 ASC NULLS FIRST], false +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: [cs_promo_sk#41 ASC NULLS FIRST], false (154) ReusedExchange [Reuses operator id: 75] Output [1]: [p_promo_sk#52] @@ -1078,51 +1078,51 @@ Input [1]: [#52#52] Arguments: [p_promo_sk#52 ASC NULLS FIRST], false (160) NativeSortMergeJoin -Left keys [1]: [cs_promo_sk#40] +Left keys [1]: [cs_promo_sk#41] Right keys [1]: [p_promo_sk#52] Join type: Inner Join condition: None (161) NativeProject -Output [5]: [cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [7]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50, #52#52] +Output [5]: [cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [7]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50, #52#52] (162) NativeProject -Output [4]: [cp_catalog_page_id#50 AS cp_catalog_page_id#50, UnscaledValue(cs_ext_sales_price#42) AS _c1#53, coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00) AS _c2#54, (cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)) AS _c3#55] -Input [5]: [cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Output [4]: [cp_catalog_page_id#50 AS cp_catalog_page_id#50, UnscaledValue(cs_ext_sales_price#43) AS _c1#53, coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00) AS _c2#54, (cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)) AS _c3#55] +Input [5]: [cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] (163) NativeHashAggregate Input [4]: [cp_catalog_page_id#50, _c1#53, _c2#54, _c3#55] Keys [1]: [cp_catalog_page_id#50] Functions [3]: [partial_sum(_c1#53), partial_sum(_c2#54), partial_sum(_c3#55)] Aggregate Attributes [5]: [sum#56, sum#57, isEmpty#58, sum#59, isEmpty#60] -Results [2]: [cp_catalog_page_id#50, #28#28] +Results [4]: [cp_catalog_page_id#50, #28, #29, #29] (164) NativeShuffleExchange -Input [2]: [cp_catalog_page_id#50, #28#28] +Input [4]: [cp_catalog_page_id#50, #28, #29, #29] Arguments: hashpartitioning(cp_catalog_page_id#50, 100), ENSURE_REQUIREMENTS, [plan_id=19] (165) ShuffleQueryStage -Output [2]: [cp_catalog_page_id#50, #28#28] +Output [4]: [cp_catalog_page_id#50, #28, #29, #29] Arguments: X (166) AQEShuffleRead -Input [2]: [cp_catalog_page_id#50, #28#28] +Input [4]: [cp_catalog_page_id#50, #28, #29, #29] Arguments: coalesced (167) InputAdapter -Input [2]: [cp_catalog_page_id#50, #28#28] +Input [4]: [cp_catalog_page_id#50, #28, #29, #29] (168) NativeHashAggregate -Input [2]: [cp_catalog_page_id#50, #28#28] +Input [4]: [cp_catalog_page_id#50, #28, #29, #29] Keys [1]: [cp_catalog_page_id#50] -Functions [3]: [sum(UnscaledValue(cs_ext_sales_price#42)), sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00)), sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))] -Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_sales_price#42))#61, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63] -Results [4]: [cp_catalog_page_id#50, sum(UnscaledValue(cs_ext_sales_price#42))#61, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63] +Functions [3]: [sum(UnscaledValue(cs_ext_sales_price#43)), sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00)), sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))] +Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_sales_price#43))#61, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63] +Results [4]: [cp_catalog_page_id#50, sum(UnscaledValue(cs_ext_sales_price#43))#61, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63] (169) NativeProject -Output [5]: [MakeDecimal(sum(UnscaledValue(cs_ext_sales_price#42))#61,17,2) AS sales#64, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62 AS returns#65, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63 AS profit#66, catalog channel AS channel#67, concat(catalog_page, cp_catalog_page_id#50) AS id#68] -Input [4]: [cp_catalog_page_id#50, sum(UnscaledValue(cs_ext_sales_price#42))#61, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63] +Output [5]: [MakeDecimal(sum(UnscaledValue(cs_ext_sales_price#43))#61,17,2) AS sales#64, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62 AS returns#65, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63 AS profit#66, catalog channel AS channel#67, concat(catalog_page, cp_catalog_page_id#50) AS id#68] +Input [4]: [cp_catalog_page_id#50, sum(UnscaledValue(cs_ext_sales_price#43))#61, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63] (357) Scan parquet Output [7]: [ws_sold_date_sk#69, ws_item_sk#70, ws_web_site_sk#71, ws_promo_sk#72, ws_order_number#73, ws_ext_sales_price#74, ws_net_profit#75] @@ -1427,25 +1427,25 @@ Input [4]: [web_site_id#82, _c1#85, _c2#86, _c3#87] Keys [1]: [web_site_id#82] Functions [3]: [partial_sum(_c1#85), partial_sum(_c2#86), partial_sum(_c3#87)] Aggregate Attributes [5]: [sum#88, sum#89, isEmpty#90, sum#91, isEmpty#92] -Results [2]: [web_site_id#82, #28#28] +Results [4]: [web_site_id#82, #28, #29, #29] (244) NativeShuffleExchange -Input [2]: [web_site_id#82, #28#28] +Input [4]: [web_site_id#82, #28, #29, #29] Arguments: hashpartitioning(web_site_id#82, 100), ENSURE_REQUIREMENTS, [plan_id=27] (245) ShuffleQueryStage -Output [2]: [web_site_id#82, #28#28] +Output [4]: [web_site_id#82, #28, #29, #29] Arguments: X (246) AQEShuffleRead -Input [2]: [web_site_id#82, #28#28] +Input [4]: [web_site_id#82, #28, #29, #29] Arguments: coalesced (247) InputAdapter -Input [2]: [web_site_id#82, #28#28] +Input [4]: [web_site_id#82, #28, #29, #29] (248) NativeHashAggregate -Input [2]: [web_site_id#82, #28#28] +Input [4]: [web_site_id#82, #28, #29, #29] Keys [1]: [web_site_id#82] Functions [3]: [sum(UnscaledValue(ws_ext_sales_price#74)), sum(coalesce(cast(wr_return_amt#78 as decimal(12,2)), 0.00)), sum((ws_net_profit#75 - coalesce(cast(wr_net_loss#79 as decimal(12,2)), 0.00)))] Aggregate Attributes [3]: [sum(UnscaledValue(ws_ext_sales_price#74))#93, sum(coalesce(cast(wr_return_amt#78 as decimal(12,2)), 0.00))#94, sum((ws_net_profit#75 - coalesce(cast(wr_net_loss#79 as decimal(12,2)), 0.00)))#95] @@ -1456,48 +1456,48 @@ Output [5]: [MakeDecimal(sum(UnscaledValue(ws_ext_sales_price#74))#93,17,2) AS s Input [4]: [web_site_id#82, sum(UnscaledValue(ws_ext_sales_price#74))#93, sum(coalesce(cast(wr_return_amt#78 as decimal(12,2)), 0.00))#94, sum((ws_net_profit#75 - coalesce(cast(wr_net_loss#79 as decimal(12,2)), 0.00)))#95] (250) NativeUnion -Arguments: [sales#32, returns#33, profit#34, channel#35, id#36] +Arguments: [sales#33, returns#34, profit#35, channel#36, id#37] (251) InputAdapter -Input [5]: [sales#32, returns#33, profit#34, channel#35, id#36] -Arguments: [#32, #33, #34, #35, #36] +Input [5]: [sales#33, returns#34, profit#35, channel#36, id#37] +Arguments: [#33, #34, #35, #36, #37] (252) NativeExpand -Input [5]: [#32#32, #33#33, #34#34, #35#35, #36#36] -Arguments: [[sales#32, returns#33, profit#34, channel#35, id#36, 0], [sales#32, returns#33, profit#34, channel#35, null, 1], [sales#32, returns#33, profit#34, null, null, 3]], [sales#32, returns#33, profit#34, channel#101, id#102, spark_grouping_id#103] +Input [5]: [#33#33, #34#34, #35#35, #36#36, #37#37] +Arguments: [[sales#33, returns#34, profit#35, channel#36, id#37, 0], [sales#33, returns#34, profit#35, channel#36, null, 1], [sales#33, returns#34, profit#35, null, null, 3]], [sales#33, returns#34, profit#35, channel#101, id#102, spark_grouping_id#103] (253) NativeHashAggregate -Input [6]: [sales#32, returns#33, profit#34, channel#101, id#102, spark_grouping_id#103] +Input [6]: [sales#33, returns#34, profit#35, channel#101, id#102, spark_grouping_id#103] Keys [3]: [channel#101, id#102, spark_grouping_id#103] -Functions [3]: [partial_sum(sales#32), partial_sum(returns#33), partial_sum(profit#34)] +Functions [3]: [partial_sum(sales#33), partial_sum(returns#34), partial_sum(profit#35)] Aggregate Attributes [6]: [sum#104, isEmpty#105, sum#106, isEmpty#107, sum#108, isEmpty#109] -Results [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Results [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] (254) NativeShuffleExchange -Input [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Input [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] Arguments: hashpartitioning(channel#101, id#102, spark_grouping_id#103, 100), ENSURE_REQUIREMENTS, [plan_id=28] (255) ShuffleQueryStage -Output [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Output [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] Arguments: X (256) AQEShuffleRead -Input [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Input [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] Arguments: coalesced (257) InputAdapter -Input [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Input [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] (258) NativeHashAggregate -Input [4]: [channel#101, id#102, spark_grouping_id#103, #28#28] +Input [6]: [channel#101, id#102, spark_grouping_id#103, #29, #29, #29] Keys [3]: [channel#101, id#102, spark_grouping_id#103] -Functions [3]: [sum(sales#32), sum(returns#33), sum(profit#34)] -Aggregate Attributes [3]: [sum(sales#32)#110, sum(returns#33)#111, sum(profit#34)#112] -Results [6]: [channel#101, id#102, spark_grouping_id#103, sum(sales#32)#110, sum(returns#33)#111, sum(profit#34)#112] +Functions [3]: [sum(sales#33), sum(returns#34), sum(profit#35)] +Aggregate Attributes [3]: [sum(sales#33)#110, sum(returns#34)#111, sum(profit#35)#112] +Results [6]: [channel#101, id#102, spark_grouping_id#103, sum(sales#33)#110, sum(returns#34)#111, sum(profit#35)#112] (259) NativeProject -Output [5]: [channel#101, id#102, sum(sales#32)#110 AS sales#113, sum(returns#33)#111 AS returns#114, sum(profit#34)#112 AS profit#115] -Input [6]: [channel#101, id#102, spark_grouping_id#103, sum(sales#32)#110, sum(returns#33)#111, sum(profit#34)#112] +Output [5]: [channel#101, id#102, sum(sales#33)#110 AS sales#113, sum(returns#34)#111 AS returns#114, sum(profit#35)#112 AS profit#115] +Input [6]: [channel#101, id#102, spark_grouping_id#103, sum(sales#33)#110, sum(returns#34)#111, sum(profit#35)#112] (260) NativeTakeOrdered Input [5]: [channel#101, id#102, sales#113, returns#114, profit#115] @@ -1726,142 +1726,142 @@ Arguments: hashpartitioning(s_store_id#15, 100), ENSURE_REQUIREMENTS, [plan_id=3 Input [6]: [s_store_id#15, sum#116, sum#117, isEmpty#118, sum#119, isEmpty#120] Keys [1]: [s_store_id#15] Functions [3]: [sum(UnscaledValue(ss_ext_sales_price#6)), sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00)), sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))] -Aggregate Attributes [3]: [sum(UnscaledValue(ss_ext_sales_price#6))#29, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31] -Results [5]: [MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#6))#29,17,2) AS sales#32, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#30 AS returns#33, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#31 AS profit#34, store channel AS channel#35, concat(store, s_store_id#15) AS id#36] +Aggregate Attributes [3]: [sum(UnscaledValue(ss_ext_sales_price#6))#30, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32] +Results [5]: [MakeDecimal(sum(UnscaledValue(ss_ext_sales_price#6))#30,17,2) AS sales#33, sum(coalesce(cast(sr_return_amt#10 as decimal(12,2)), 0.00))#31 AS returns#34, sum((ss_net_profit#7 - coalesce(cast(sr_net_loss#11 as decimal(12,2)), 0.00)))#32 AS profit#35, store channel AS channel#36, concat(store, s_store_id#15) AS id#37] (309) Scan parquet -Output [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] +Output [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_catalog_page_sk), IsNotNull(cs_item_sk), IsNotNull(cs_promo_sk)] ReadSchema: struct (310) Filter -Input [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] -Condition : (((isnotnull(cs_sold_date_sk#37) AND isnotnull(cs_catalog_page_sk#38)) AND isnotnull(cs_item_sk#39)) AND isnotnull(cs_promo_sk#40)) +Input [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] +Condition : (((isnotnull(cs_sold_date_sk#38) AND isnotnull(cs_catalog_page_sk#39)) AND isnotnull(cs_item_sk#40)) AND isnotnull(cs_promo_sk#41)) (311) Exchange -Input [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] -Arguments: hashpartitioning(cs_item_sk#39, cs_order_number#41, 100), ENSURE_REQUIREMENTS, [plan_id=40] +Input [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] +Arguments: hashpartitioning(cs_item_sk#40, cs_order_number#42, 100), ENSURE_REQUIREMENTS, [plan_id=40] (312) Sort -Input [7]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43] -Arguments: [cs_item_sk#39 ASC NULLS FIRST, cs_order_number#41 ASC NULLS FIRST], false, 0 +Input [7]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44] +Arguments: [cs_item_sk#40 ASC NULLS FIRST, cs_order_number#42 ASC NULLS FIRST], false, 0 (313) Scan parquet -Output [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] +Output [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cr_item_sk), IsNotNull(cr_order_number)] ReadSchema: struct (314) Filter -Input [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] -Condition : (isnotnull(cr_item_sk#44) AND isnotnull(cr_order_number#45)) +Input [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] +Condition : (isnotnull(cr_item_sk#45) AND isnotnull(cr_order_number#46)) (315) Exchange -Input [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] -Arguments: hashpartitioning(cr_item_sk#44, cr_order_number#45, 100), ENSURE_REQUIREMENTS, [plan_id=41] +Input [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] +Arguments: hashpartitioning(cr_item_sk#45, cr_order_number#46, 100), ENSURE_REQUIREMENTS, [plan_id=41] (316) Sort -Input [4]: [cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] -Arguments: [cr_item_sk#44 ASC NULLS FIRST, cr_order_number#45 ASC NULLS FIRST], false, 0 +Input [4]: [cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] +Arguments: [cr_item_sk#45 ASC NULLS FIRST, cr_order_number#46 ASC NULLS FIRST], false, 0 (317) SortMergeJoin -Left keys [2]: [cs_item_sk#39, cs_order_number#41] -Right keys [2]: [cr_item_sk#44, cr_order_number#45] +Left keys [2]: [cs_item_sk#40, cs_order_number#42] +Right keys [2]: [cr_item_sk#45, cr_order_number#46] Join type: LeftOuter Join condition: None (318) Project -Output [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Input [11]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_order_number#41, cs_ext_sales_price#42, cs_net_profit#43, cr_item_sk#44, cr_order_number#45, cr_return_amount#46, cr_net_loss#47] +Output [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Input [11]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_order_number#42, cs_ext_sales_price#43, cs_net_profit#44, cr_item_sk#45, cr_order_number#46, cr_return_amount#47, cr_net_loss#48] (319) Exchange -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: hashpartitioning(cs_sold_date_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=42] +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: hashpartitioning(cs_sold_date_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=42] (320) Sort -Input [8]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: [cs_sold_date_sk#37 ASC NULLS FIRST], false, 0 +Input [8]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: [cs_sold_date_sk#38 ASC NULLS FIRST], false, 0 (321) Scan parquet -Output [2]: [d_date_sk#48, d_date#121] +Output [2]: [d_date_sk#49, d_date#121] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-08-23), LessThanOrEqual(d_date,2000-09-22), IsNotNull(d_date_sk)] ReadSchema: struct (322) Filter -Input [2]: [d_date_sk#48, d_date#121] -Condition : (((isnotnull(d_date#121) AND (d_date#121 >= 2000-08-23)) AND (d_date#121 <= 2000-09-22)) AND isnotnull(d_date_sk#48)) +Input [2]: [d_date_sk#49, d_date#121] +Condition : (((isnotnull(d_date#121) AND (d_date#121 >= 2000-08-23)) AND (d_date#121 <= 2000-09-22)) AND isnotnull(d_date_sk#49)) (323) Project -Output [1]: [d_date_sk#48] -Input [2]: [d_date_sk#48, d_date#121] +Output [1]: [d_date_sk#49] +Input [2]: [d_date_sk#49, d_date#121] (324) Exchange -Input [1]: [d_date_sk#48] -Arguments: hashpartitioning(d_date_sk#48, 100), ENSURE_REQUIREMENTS, [plan_id=43] +Input [1]: [d_date_sk#49] +Arguments: hashpartitioning(d_date_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=43] (325) Sort -Input [1]: [d_date_sk#48] -Arguments: [d_date_sk#48 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#49] +Arguments: [d_date_sk#49 ASC NULLS FIRST], false, 0 (326) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#37] -Right keys [1]: [d_date_sk#48] +Left keys [1]: [cs_sold_date_sk#38] +Right keys [1]: [d_date_sk#49] Join type: Inner Join condition: None (327) Project -Output [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Input [9]: [cs_sold_date_sk#37, cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, d_date_sk#48] +Output [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Input [9]: [cs_sold_date_sk#38, cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, d_date_sk#49] (328) Exchange -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: hashpartitioning(cs_catalog_page_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=44] +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: hashpartitioning(cs_catalog_page_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=44] (329) Sort -Input [7]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47] -Arguments: [cs_catalog_page_sk#38 ASC NULLS FIRST], false, 0 +Input [7]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48] +Arguments: [cs_catalog_page_sk#39 ASC NULLS FIRST], false, 0 (330) Scan parquet -Output [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] +Output [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cp_catalog_page_sk)] ReadSchema: struct (331) Filter -Input [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] -Condition : isnotnull(cp_catalog_page_sk#49) +Input [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] +Condition : isnotnull(cp_catalog_page_sk#29) (332) Exchange -Input [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] -Arguments: hashpartitioning(cp_catalog_page_sk#49, 100), ENSURE_REQUIREMENTS, [plan_id=45] +Input [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] +Arguments: hashpartitioning(cp_catalog_page_sk#29, 100), ENSURE_REQUIREMENTS, [plan_id=45] (333) Sort -Input [2]: [cp_catalog_page_sk#49, cp_catalog_page_id#50] -Arguments: [cp_catalog_page_sk#49 ASC NULLS FIRST], false, 0 +Input [2]: [cp_catalog_page_sk#29, cp_catalog_page_id#50] +Arguments: [cp_catalog_page_sk#29 ASC NULLS FIRST], false, 0 (334) SortMergeJoin -Left keys [1]: [cs_catalog_page_sk#38] -Right keys [1]: [cp_catalog_page_sk#49] +Left keys [1]: [cs_catalog_page_sk#39] +Right keys [1]: [cp_catalog_page_sk#29] Join type: Inner Join condition: None (335) Project -Output [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [9]: [cs_catalog_page_sk#38, cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_sk#49, cp_catalog_page_id#50] +Output [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [9]: [cs_catalog_page_sk#39, cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_sk#29, cp_catalog_page_id#50] (336) Exchange -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: hashpartitioning(cs_item_sk#39, 100), ENSURE_REQUIREMENTS, [plan_id=46] +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: hashpartitioning(cs_item_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=46] (337) Sort -Input [7]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: [cs_item_sk#39 ASC NULLS FIRST], false, 0 +Input [7]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: [cs_item_sk#40 ASC NULLS FIRST], false, 0 (338) Scan parquet Output [2]: [i_item_sk#51, i_current_price#122] @@ -1887,22 +1887,22 @@ Input [1]: [i_item_sk#51] Arguments: [i_item_sk#51 ASC NULLS FIRST], false, 0 (343) SortMergeJoin -Left keys [1]: [cs_item_sk#39] +Left keys [1]: [cs_item_sk#40] Right keys [1]: [i_item_sk#51] Join type: Inner Join condition: None (344) Project -Output [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [8]: [cs_item_sk#39, cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50, i_item_sk#51] +Output [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [8]: [cs_item_sk#40, cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50, i_item_sk#51] (345) Exchange -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: hashpartitioning(cs_promo_sk#40, 100), ENSURE_REQUIREMENTS, [plan_id=48] +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: hashpartitioning(cs_promo_sk#41, 100), ENSURE_REQUIREMENTS, [plan_id=48] (346) Sort -Input [6]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Arguments: [cs_promo_sk#40 ASC NULLS FIRST], false, 0 +Input [6]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Arguments: [cs_promo_sk#41 ASC NULLS FIRST], false, 0 (347) Scan parquet Output [2]: [p_promo_sk#52, p_channel_tv#123] @@ -1928,19 +1928,19 @@ Input [1]: [p_promo_sk#52] Arguments: [p_promo_sk#52 ASC NULLS FIRST], false, 0 (352) SortMergeJoin -Left keys [1]: [cs_promo_sk#40] +Left keys [1]: [cs_promo_sk#41] Right keys [1]: [p_promo_sk#52] Join type: Inner Join condition: None (353) Project -Output [5]: [cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] -Input [7]: [cs_promo_sk#40, cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50, p_promo_sk#52] +Output [5]: [cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] +Input [7]: [cs_promo_sk#41, cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50, p_promo_sk#52] (354) HashAggregate -Input [5]: [cs_ext_sales_price#42, cs_net_profit#43, cr_return_amount#46, cr_net_loss#47, cp_catalog_page_id#50] +Input [5]: [cs_ext_sales_price#43, cs_net_profit#44, cr_return_amount#47, cr_net_loss#48, cp_catalog_page_id#50] Keys [1]: [cp_catalog_page_id#50] -Functions [3]: [partial_sum(UnscaledValue(cs_ext_sales_price#42)), partial_sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00)), partial_sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))] +Functions [3]: [partial_sum(UnscaledValue(cs_ext_sales_price#43)), partial_sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00)), partial_sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))] Aggregate Attributes [5]: [sum#56, sum#57, isEmpty#58, sum#59, isEmpty#60] Results [6]: [cp_catalog_page_id#50, sum#124, sum#125, isEmpty#126, sum#127, isEmpty#128] @@ -1951,9 +1951,9 @@ Arguments: hashpartitioning(cp_catalog_page_id#50, 100), ENSURE_REQUIREMENTS, [p (356) HashAggregate Input [6]: [cp_catalog_page_id#50, sum#124, sum#125, isEmpty#126, sum#127, isEmpty#128] Keys [1]: [cp_catalog_page_id#50] -Functions [3]: [sum(UnscaledValue(cs_ext_sales_price#42)), sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00)), sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))] -Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_sales_price#42))#61, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63] -Results [5]: [MakeDecimal(sum(UnscaledValue(cs_ext_sales_price#42))#61,17,2) AS sales#64, sum(coalesce(cast(cr_return_amount#46 as decimal(12,2)), 0.00))#62 AS returns#65, sum((cs_net_profit#43 - coalesce(cast(cr_net_loss#47 as decimal(12,2)), 0.00)))#63 AS profit#66, catalog channel AS channel#67, concat(catalog_page, cp_catalog_page_id#50) AS id#68] +Functions [3]: [sum(UnscaledValue(cs_ext_sales_price#43)), sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00)), sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))] +Aggregate Attributes [3]: [sum(UnscaledValue(cs_ext_sales_price#43))#61, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63] +Results [5]: [MakeDecimal(sum(UnscaledValue(cs_ext_sales_price#43))#61,17,2) AS sales#64, sum(coalesce(cast(cr_return_amount#47 as decimal(12,2)), 0.00))#62 AS returns#65, sum((cs_net_profit#44 - coalesce(cast(cr_net_loss#48 as decimal(12,2)), 0.00)))#63 AS profit#66, catalog channel AS channel#67, concat(catalog_page, cp_catalog_page_id#50) AS id#68] (357) Scan parquet Output [7]: [ws_sold_date_sk#69, ws_item_sk#70, ws_web_site_sk#71, ws_promo_sk#72, ws_order_number#73, ws_ext_sales_price#74, ws_net_profit#75] @@ -2184,13 +2184,13 @@ Results [5]: [MakeDecimal(sum(UnscaledValue(ws_ext_sales_price#74))#93,17,2) AS (405) Union (406) Expand -Input [5]: [sales#32, returns#33, profit#34, channel#35, id#36] -Arguments: [[sales#32, returns#33, profit#34, channel#35, id#36, 0], [sales#32, returns#33, profit#34, channel#35, null, 1], [sales#32, returns#33, profit#34, null, null, 3]], [sales#32, returns#33, profit#34, channel#101, id#102, spark_grouping_id#103] +Input [5]: [sales#33, returns#34, profit#35, channel#36, id#37] +Arguments: [[sales#33, returns#34, profit#35, channel#36, id#37, 0], [sales#33, returns#34, profit#35, channel#36, null, 1], [sales#33, returns#34, profit#35, null, null, 3]], [sales#33, returns#34, profit#35, channel#101, id#102, spark_grouping_id#103] (407) HashAggregate -Input [6]: [sales#32, returns#33, profit#34, channel#101, id#102, spark_grouping_id#103] +Input [6]: [sales#33, returns#34, profit#35, channel#101, id#102, spark_grouping_id#103] Keys [3]: [channel#101, id#102, spark_grouping_id#103] -Functions [3]: [partial_sum(sales#32), partial_sum(returns#33), partial_sum(profit#34)] +Functions [3]: [partial_sum(sales#33), partial_sum(returns#34), partial_sum(profit#35)] Aggregate Attributes [6]: [sum#104, isEmpty#105, sum#106, isEmpty#107, sum#108, isEmpty#109] Results [9]: [channel#101, id#102, spark_grouping_id#103, sum#137, isEmpty#138, sum#139, isEmpty#140, sum#141, isEmpty#142] @@ -2201,9 +2201,9 @@ Arguments: hashpartitioning(channel#101, id#102, spark_grouping_id#103, 100), EN (409) HashAggregate Input [9]: [channel#101, id#102, spark_grouping_id#103, sum#137, isEmpty#138, sum#139, isEmpty#140, sum#141, isEmpty#142] Keys [3]: [channel#101, id#102, spark_grouping_id#103] -Functions [3]: [sum(sales#32), sum(returns#33), sum(profit#34)] -Aggregate Attributes [3]: [sum(sales#32)#110, sum(returns#33)#111, sum(profit#34)#112] -Results [5]: [channel#101, id#102, sum(sales#32)#110 AS sales#113, sum(returns#33)#111 AS returns#114, sum(profit#34)#112 AS profit#115] +Functions [3]: [sum(sales#33), sum(returns#34), sum(profit#35)] +Aggregate Attributes [3]: [sum(sales#33)#110, sum(returns#34)#111, sum(profit#35)#112] +Results [5]: [channel#101, id#102, sum(sales#33)#110 AS sales#113, sum(returns#34)#111 AS returns#114, sum(profit#35)#112 AS profit#115] (410) TakeOrderedAndProject Input [5]: [channel#101, id#102, sales#113, returns#114, profit#115] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt index 13082e0c7..d59c92653 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt @@ -357,25 +357,25 @@ Input [3]: [cr_returning_customer_sk#2, ca_state#8, _c2#9] Keys [2]: [cr_returning_customer_sk#2, ca_state#8] Functions [1]: [partial_sum(_c2#9)] Aggregate Attributes [1]: [sum#10] -Results [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Results [3]: [cr_returning_customer_sk#2, ca_state#8, #11] (37) NativeShuffleExchange -Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11] Arguments: hashpartitioning(cr_returning_customer_sk#2, ca_state#8, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Output [3]: [cr_returning_customer_sk#2, ca_state#8, #11] Arguments: X (39) AQEShuffleRead -Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11] Arguments: coalesced (40) InputAdapter -Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11] (41) NativeHashAggregate -Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11#11] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, #11] Keys [2]: [cr_returning_customer_sk#2, ca_state#8] Functions [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#4))] Aggregate Attributes [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#4))#12] @@ -534,25 +534,25 @@ Input [3]: [cr_returning_customer_sk#17, ca_state#22, _c2#23] Keys [2]: [cr_returning_customer_sk#17, ca_state#22] Functions [1]: [partial_sum(_c2#23)] Aggregate Attributes [1]: [sum#24] -Results [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Results [3]: [cr_returning_customer_sk#17, ca_state#22, #11] (80) NativeShuffleExchange -Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11] Arguments: hashpartitioning(cr_returning_customer_sk#17, ca_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=9] (81) ShuffleQueryStage -Output [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Output [3]: [cr_returning_customer_sk#17, ca_state#22, #11] Arguments: X (82) AQEShuffleRead -Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11] Arguments: coalesced (83) InputAdapter -Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11] (84) NativeHashAggregate -Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11#11] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, #11] Keys [2]: [cr_returning_customer_sk#17, ca_state#22] Functions [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#19))] Aggregate Attributes [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#19))#12] @@ -567,51 +567,51 @@ Input [2]: [ctr_state#25, ctr_total_return#26] Keys [1]: [ctr_state#25] Functions [1]: [partial_avg(ctr_total_return#26)] Aggregate Attributes [2]: [sum#27, count#28] -Results [2]: [ctr_state#25, #11#11] +Results [3]: [ctr_state#25, #29, #11] (87) NativeShuffleExchange -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Arguments: hashpartitioning(ctr_state#25, 100), ENSURE_REQUIREMENTS, [plan_id=10] (88) ShuffleQueryStage -Output [2]: [ctr_state#25, #11#11] +Output [3]: [ctr_state#25, #29, #11] Arguments: X (89) AQEShuffleRead -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Arguments: coalesced (90) InputAdapter -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] (91) NativeHashAggregate -Input [2]: [ctr_state#25, #11#11] +Input [3]: [ctr_state#25, #29, #11] Keys [1]: [ctr_state#25] Functions [1]: [avg(ctr_total_return#26)] -Aggregate Attributes [1]: [avg(ctr_total_return#26)#29] -Results [2]: [ctr_state#25, avg(ctr_total_return#26)#29] +Aggregate Attributes [1]: [avg(ctr_total_return#26)#30] +Results [2]: [ctr_state#25, avg(ctr_total_return#26)#30] (92) NativeProject -Output [2]: [(avg(ctr_total_return#26)#29 * 1.2) AS (avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Input [2]: [ctr_state#25, avg(ctr_total_return#26)#29] +Output [2]: [(avg(ctr_total_return#26)#30 * 1.2) AS (avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Input [2]: [ctr_state#25, avg(ctr_total_return#26)#30] (93) NativeFilter -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#31) (94) NativeSort -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false (95) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner -Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) +Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#31) (96) Project [codegen id : X] Output [2]: [ctr_customer_sk#13, ctr_total_return#15] -Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (97) ConvertToNative Input [2]: [ctr_customer_sk#13, ctr_total_return#15] @@ -636,115 +636,115 @@ Input [2]: [ctr_customer_sk#13, ctr_total_return#15] Arguments: [ctr_customer_sk#13 ASC NULLS FIRST], false (185) Scan parquet -Output [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Output [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (104) InputAdapter -Input [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: [#31, #32, #33, #34, #35, #36] +Input [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: [#32, #33, #34, #35, #36, #37] (105) NativeFilter -Input [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] -Condition : (isnotnull(c_customer_sk#31) AND isnotnull(c_current_addr_sk#33)) +Input [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] +Condition : (isnotnull(c_customer_sk#32) AND isnotnull(c_current_addr_sk#34)) (106) NativeShuffleExchange -Input [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] -Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] +Arguments: hashpartitioning(c_customer_sk#32, 100), ENSURE_REQUIREMENTS, [plan_id=12] (107) ShuffleQueryStage -Output [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] +Output [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] Arguments: X (108) AQEShuffleRead -Input [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] +Input [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] Arguments: coalesced (109) InputAdapter -Input [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] +Input [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] (110) NativeSort -Input [6]: [#31#31, #32#32, #33#33, #34#34, #35#35, #36#36] -Arguments: [c_customer_sk#31 ASC NULLS FIRST], false +Input [6]: [#32#32, #33#33, #34#34, #35#35, #36#36, #37#37] +Arguments: [c_customer_sk#32 ASC NULLS FIRST], false (111) NativeSortMergeJoin Left keys [1]: [ctr_customer_sk#13] -Right keys [1]: [c_customer_sk#31] +Right keys [1]: [c_customer_sk#32] Join type: Inner Join condition: None (112) NativeProject -Output [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Input [8]: [ctr_customer_sk#13, ctr_total_return#15, #31#31, #32#32, #33#33, #34#34, #35#35, #36#36] +Output [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Input [8]: [ctr_customer_sk#13, ctr_total_return#15, #32#32, #33#33, #34#34, #35#35, #36#36, #37#37] (113) NativeShuffleExchange -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: hashpartitioning(c_current_addr_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: hashpartitioning(c_current_addr_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=13] (114) ShuffleQueryStage -Output [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Output [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] Arguments: X (115) AQEShuffleRead -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] Arguments: coalesced (116) InputAdapter -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] (117) NativeSort -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: [c_current_addr_sk#33 ASC NULLS FIRST], false +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: [c_current_addr_sk#34 ASC NULLS FIRST], false (193) Scan parquet -Output [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] +Output [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_state), EqualTo(ca_state,GA), IsNotNull(ca_address_sk)] ReadSchema: struct (119) InputAdapter -Input [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] -Arguments: [#37, #38, #39, #40, #41, #42, #43, #44, #45, #46, #47, #48] +Input [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] +Arguments: [#38, #39, #40, #41, #42, #43, #44, #45, #46, #47, #48, #49] (120) NativeFilter -Input [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] -Condition : ((isnotnull(ca_state#44) AND (ca_state#44 = GA)) AND isnotnull(ca_address_sk#37)) +Input [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] +Condition : ((isnotnull(ca_state#45) AND (ca_state#45 = GA)) AND isnotnull(ca_address_sk#38)) (121) NativeShuffleExchange -Input [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] -Arguments: hashpartitioning(ca_address_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] +Arguments: hashpartitioning(ca_address_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=14] (122) ShuffleQueryStage -Output [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] +Output [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] Arguments: X (123) AQEShuffleRead -Input [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] +Input [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] Arguments: coalesced (124) InputAdapter -Input [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] +Input [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] (125) NativeSort -Input [12]: [#37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] -Arguments: [ca_address_sk#37 ASC NULLS FIRST], false +Input [12]: [#38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] +Arguments: [ca_address_sk#38 ASC NULLS FIRST], false (126) NativeSortMergeJoin -Left keys [1]: [c_current_addr_sk#33] -Right keys [1]: [ca_address_sk#37] +Left keys [1]: [c_current_addr_sk#34] +Right keys [1]: [ca_address_sk#38] Join type: Inner Join condition: None (127) NativeProject -Output [16]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] -Input [18]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, #37#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48] +Output [16]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] +Input [18]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, #38#38, #39#39, #40#40, #41#41, #42#42, #43#43, #44#44, #45#45, #46#46, #47#47, #48#48, #49#49] (128) NativeTakeOrdered -Input [16]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] -Arguments: X, [c_customer_id#32 ASC NULLS FIRST, c_salutation#34 ASC NULLS FIRST, c_first_name#35 ASC NULLS FIRST, c_last_name#36 ASC NULLS FIRST, ca_street_number#38 ASC NULLS FIRST, ca_street_name#39 ASC NULLS FIRST, ca_street_type#40 ASC NULLS FIRST, ca_suite_number#41 ASC NULLS FIRST, ca_city#42 ASC NULLS FIRST, ca_county#43 ASC NULLS FIRST, ca_state#44 ASC NULLS FIRST, ca_zip#45 ASC NULLS FIRST, ca_country#46 ASC NULLS FIRST, ca_gmt_offset#47 ASC NULLS FIRST, ca_location_type#48 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST] +Input [16]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] +Arguments: X, [c_customer_id#33 ASC NULLS FIRST, c_salutation#35 ASC NULLS FIRST, c_first_name#36 ASC NULLS FIRST, c_last_name#37 ASC NULLS FIRST, ca_street_number#39 ASC NULLS FIRST, ca_street_name#40 ASC NULLS FIRST, ca_street_type#41 ASC NULLS FIRST, ca_suite_number#42 ASC NULLS FIRST, ca_city#43 ASC NULLS FIRST, ca_county#44 ASC NULLS FIRST, ca_state#45 ASC NULLS FIRST, ca_zip#46 ASC NULLS FIRST, ca_country#47 ASC NULLS FIRST, ca_gmt_offset#48 ASC NULLS FIRST, ca_location_type#49 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST] (129) Scan parquet Output [4]: [cr_returned_date_sk#1, cr_returning_customer_sk#2, cr_returning_addr_sk#3, cr_return_amt_inc_tax#4] @@ -840,14 +840,14 @@ Input [3]: [cr_returning_customer_sk#2, cr_return_amt_inc_tax#4, ca_state#8] Keys [2]: [cr_returning_customer_sk#2, ca_state#8] Functions [1]: [partial_sum(UnscaledValue(cr_return_amt_inc_tax#4))] Aggregate Attributes [1]: [sum#10] -Results [3]: [cr_returning_customer_sk#2, ca_state#8, sum#49] +Results [3]: [cr_returning_customer_sk#2, ca_state#8, sum#50] (149) Exchange -Input [3]: [cr_returning_customer_sk#2, ca_state#8, sum#49] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, sum#50] Arguments: hashpartitioning(cr_returning_customer_sk#2, ca_state#8, 100), ENSURE_REQUIREMENTS, [plan_id=19] (150) HashAggregate -Input [3]: [cr_returning_customer_sk#2, ca_state#8, sum#49] +Input [3]: [cr_returning_customer_sk#2, ca_state#8, sum#50] Keys [2]: [cr_returning_customer_sk#2, ca_state#8] Functions [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#4))] Aggregate Attributes [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#4))#12] @@ -885,19 +885,19 @@ Input [4]: [cr_returned_date_sk#16, cr_returning_customer_sk#17, cr_returning_ad Arguments: [cr_returned_date_sk#16 ASC NULLS FIRST], false, 0 (158) Scan parquet -Output [2]: [d_date_sk#20, d_year#50] +Output [2]: [d_date_sk#20, d_year#51] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)] ReadSchema: struct (159) Filter -Input [2]: [d_date_sk#20, d_year#50] -Condition : ((isnotnull(d_year#50) AND (d_year#50 = 2000)) AND isnotnull(d_date_sk#20)) +Input [2]: [d_date_sk#20, d_year#51] +Condition : ((isnotnull(d_year#51) AND (d_year#51 = 2000)) AND isnotnull(d_date_sk#20)) (160) Project Output [1]: [d_date_sk#20] -Input [2]: [d_date_sk#20, d_year#50] +Input [2]: [d_date_sk#20, d_year#51] (161) Exchange Input [1]: [d_date_sk#20] @@ -959,14 +959,14 @@ Input [3]: [cr_returning_customer_sk#17, cr_return_amt_inc_tax#19, ca_state#22] Keys [2]: [cr_returning_customer_sk#17, ca_state#22] Functions [1]: [partial_sum(UnscaledValue(cr_return_amt_inc_tax#19))] Aggregate Attributes [1]: [sum#24] -Results [3]: [cr_returning_customer_sk#17, ca_state#22, sum#51] +Results [3]: [cr_returning_customer_sk#17, ca_state#22, sum#52] (174) Exchange -Input [3]: [cr_returning_customer_sk#17, ca_state#22, sum#51] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, sum#52] Arguments: hashpartitioning(cr_returning_customer_sk#17, ca_state#22, 100), ENSURE_REQUIREMENTS, [plan_id=25] (175) HashAggregate -Input [3]: [cr_returning_customer_sk#17, ca_state#22, sum#51] +Input [3]: [cr_returning_customer_sk#17, ca_state#22, sum#52] Keys [2]: [cr_returning_customer_sk#17, ca_state#22] Functions [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#19))] Aggregate Attributes [1]: [sum(UnscaledValue(cr_return_amt_inc_tax#19))#12] @@ -977,36 +977,36 @@ Input [2]: [ctr_state#25, ctr_total_return#26] Keys [1]: [ctr_state#25] Functions [1]: [partial_avg(ctr_total_return#26)] Aggregate Attributes [2]: [sum#27, count#28] -Results [3]: [ctr_state#25, sum#52, count#53] +Results [3]: [ctr_state#25, sum#53, count#54] (177) Exchange -Input [3]: [ctr_state#25, sum#52, count#53] +Input [3]: [ctr_state#25, sum#53, count#54] Arguments: hashpartitioning(ctr_state#25, 100), ENSURE_REQUIREMENTS, [plan_id=26] (178) HashAggregate -Input [3]: [ctr_state#25, sum#52, count#53] +Input [3]: [ctr_state#25, sum#53, count#54] Keys [1]: [ctr_state#25] Functions [1]: [avg(ctr_total_return#26)] -Aggregate Attributes [1]: [avg(ctr_total_return#26)#29] -Results [2]: [(avg(ctr_total_return#26)#29 * 1.2) AS (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Aggregate Attributes [1]: [avg(ctr_total_return#26)#30] +Results [2]: [(avg(ctr_total_return#26)#30 * 1.2) AS (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (179) Filter -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] -Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] +Condition : isnotnull((avg(ctr_total_return) * 1.2)#31) (180) Sort -Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [2]: [(avg(ctr_total_return) * 1.2)#31, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false, 0 (181) SortMergeJoin Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner -Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) +Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#31) (182) Project Output [2]: [ctr_customer_sk#13, ctr_total_return#15] -Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] +Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#31, ctr_state#25] (183) Exchange Input [2]: [ctr_customer_sk#13, ctr_total_return#15] @@ -1017,76 +1017,76 @@ Input [2]: [ctr_customer_sk#13, ctr_total_return#15] Arguments: [ctr_customer_sk#13 ASC NULLS FIRST], false, 0 (185) Scan parquet -Output [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Output [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk), IsNotNull(c_current_addr_sk)] ReadSchema: struct (186) Filter -Input [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Condition : (isnotnull(c_customer_sk#31) AND isnotnull(c_current_addr_sk#33)) +Input [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Condition : (isnotnull(c_customer_sk#32) AND isnotnull(c_current_addr_sk#34)) (187) Exchange -Input [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: hashpartitioning(c_customer_sk#31, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: hashpartitioning(c_customer_sk#32, 100), ENSURE_REQUIREMENTS, [plan_id=28] (188) Sort -Input [6]: [c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: [c_customer_sk#31 ASC NULLS FIRST], false, 0 +Input [6]: [c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: [c_customer_sk#32 ASC NULLS FIRST], false, 0 (189) SortMergeJoin Left keys [1]: [ctr_customer_sk#13] -Right keys [1]: [c_customer_sk#31] +Right keys [1]: [c_customer_sk#32] Join type: Inner Join condition: None (190) Project -Output [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Input [8]: [ctr_customer_sk#13, ctr_total_return#15, c_customer_sk#31, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] +Output [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Input [8]: [ctr_customer_sk#13, ctr_total_return#15, c_customer_sk#32, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] (191) Exchange -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: hashpartitioning(c_current_addr_sk#33, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: hashpartitioning(c_current_addr_sk#34, 100), ENSURE_REQUIREMENTS, [plan_id=29] (192) Sort -Input [6]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36] -Arguments: [c_current_addr_sk#33 ASC NULLS FIRST], false, 0 +Input [6]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37] +Arguments: [c_current_addr_sk#34 ASC NULLS FIRST], false, 0 (193) Scan parquet -Output [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] +Output [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ca_state), EqualTo(ca_state,GA), IsNotNull(ca_address_sk)] ReadSchema: struct (194) Filter -Input [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] -Condition : ((isnotnull(ca_state#44) AND (ca_state#44 = GA)) AND isnotnull(ca_address_sk#37)) +Input [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] +Condition : ((isnotnull(ca_state#45) AND (ca_state#45 = GA)) AND isnotnull(ca_address_sk#38)) (195) Exchange -Input [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] -Arguments: hashpartitioning(ca_address_sk#37, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] +Arguments: hashpartitioning(ca_address_sk#38, 100), ENSURE_REQUIREMENTS, [plan_id=30] (196) Sort -Input [12]: [ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] -Arguments: [ca_address_sk#37 ASC NULLS FIRST], false, 0 +Input [12]: [ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] +Arguments: [ca_address_sk#38 ASC NULLS FIRST], false, 0 (197) SortMergeJoin -Left keys [1]: [c_current_addr_sk#33] -Right keys [1]: [ca_address_sk#37] +Left keys [1]: [c_current_addr_sk#34] +Right keys [1]: [ca_address_sk#38] Join type: Inner Join condition: None (198) Project -Output [16]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] -Input [18]: [ctr_total_return#15, c_customer_id#32, c_current_addr_sk#33, c_salutation#34, c_first_name#35, c_last_name#36, ca_address_sk#37, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48] +Output [16]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] +Input [18]: [ctr_total_return#15, c_customer_id#33, c_current_addr_sk#34, c_salutation#35, c_first_name#36, c_last_name#37, ca_address_sk#38, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49] (199) TakeOrderedAndProject -Input [16]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] -Arguments: X, [c_customer_id#32 ASC NULLS FIRST, c_salutation#34 ASC NULLS FIRST, c_first_name#35 ASC NULLS FIRST, c_last_name#36 ASC NULLS FIRST, ca_street_number#38 ASC NULLS FIRST, ca_street_name#39 ASC NULLS FIRST, ca_street_type#40 ASC NULLS FIRST, ca_suite_number#41 ASC NULLS FIRST, ca_city#42 ASC NULLS FIRST, ca_county#43 ASC NULLS FIRST, ca_state#44 ASC NULLS FIRST, ca_zip#45 ASC NULLS FIRST, ca_country#46 ASC NULLS FIRST, ca_gmt_offset#47 ASC NULLS FIRST, ca_location_type#48 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST], [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] +Input [16]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] +Arguments: X, [c_customer_id#33 ASC NULLS FIRST, c_salutation#35 ASC NULLS FIRST, c_first_name#36 ASC NULLS FIRST, c_last_name#37 ASC NULLS FIRST, ca_street_number#39 ASC NULLS FIRST, ca_street_name#40 ASC NULLS FIRST, ca_street_type#41 ASC NULLS FIRST, ca_suite_number#42 ASC NULLS FIRST, ca_city#43 ASC NULLS FIRST, ca_county#44 ASC NULLS FIRST, ca_state#45 ASC NULLS FIRST, ca_zip#46 ASC NULLS FIRST, ca_country#47 ASC NULLS FIRST, ca_gmt_offset#48 ASC NULLS FIRST, ca_location_type#49 ASC NULLS FIRST, ctr_total_return#15 ASC NULLS FIRST], [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] (200) AdaptiveSparkPlan -Output [16]: [c_customer_id#32, c_salutation#34, c_first_name#35, c_last_name#36, ca_street_number#38, ca_street_name#39, ca_street_type#40, ca_suite_number#41, ca_city#42, ca_county#43, ca_state#44, ca_zip#45, ca_country#46, ca_gmt_offset#47, ca_location_type#48, ctr_total_return#15] +Output [16]: [c_customer_id#33, c_salutation#35, c_first_name#36, c_last_name#37, ca_street_number#39, ca_street_name#40, ca_street_type#41, ca_suite_number#42, ca_city#43, ca_county#44, ca_state#45, ca_zip#46, ca_country#47, ca_gmt_offset#48, ca_location_type#49, ctr_total_return#15] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q82.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q82.txt index 92869395f..d3cb3fe3e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q82.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q82.txt @@ -317,33 +317,33 @@ Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Keys [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Functions: [] Aggregate Attributes: [] -Results [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Results [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (53) NativeShuffleExchange -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: hashpartitioning(i_item_id#2, i_item_desc#3, i_current_price#4, 100), ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Output [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: X (55) AQEShuffleRead -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Arguments: coalesced (56) InputAdapter -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (57) NativeHashAggregate -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Keys [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] Functions: [] Aggregate Attributes: [] -Results [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Results [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (58) NativeProject Output [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] -Input [4]: [i_item_id#2, i_item_desc#3, i_current_price#4, #12#12] +Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] (59) NativeTakeOrdered Input [3]: [i_item_id#2, i_item_desc#3, i_current_price#4] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q83.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q83.txt index b67cba737..95bf1118a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q83.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q83.txt @@ -543,25 +543,25 @@ Input [2]: [sr_return_quantity#3, i_item_id#5] Keys [1]: [i_item_id#5] Functions [1]: [partial_sum(sr_return_quantity#3)] Aggregate Attributes [1]: [sum#12] -Results [2]: [i_item_id#5, #13#13] +Results [2]: [i_item_id#5, #13] (65) NativeShuffleExchange -Input [2]: [i_item_id#5, #13#13] +Input [2]: [i_item_id#5, #13] Arguments: hashpartitioning(i_item_id#5, 100), ENSURE_REQUIREMENTS, [plan_id=9] (66) ShuffleQueryStage -Output [2]: [i_item_id#5, #13#13] +Output [2]: [i_item_id#5, #13] Arguments: X (67) AQEShuffleRead -Input [2]: [i_item_id#5, #13#13] +Input [2]: [i_item_id#5, #13] Arguments: coalesced (68) InputAdapter -Input [2]: [i_item_id#5, #13#13] +Input [2]: [i_item_id#5, #13] (69) NativeHashAggregate -Input [2]: [i_item_id#5, #13#13] +Input [2]: [i_item_id#5, #13] Keys [1]: [i_item_id#5] Functions [1]: [sum(sr_return_quantity#3)] Aggregate Attributes [1]: [sum(sr_return_quantity#3)#14] @@ -697,25 +697,25 @@ Input [2]: [cr_return_quantity#19, i_item_id#21] Keys [1]: [i_item_id#21] Functions [1]: [partial_sum(cr_return_quantity#19)] Aggregate Attributes [1]: [sum#23] -Results [2]: [i_item_id#21, #13#13] +Results [2]: [i_item_id#21, #13] (102) NativeShuffleExchange -Input [2]: [i_item_id#21, #13#13] +Input [2]: [i_item_id#21, #13] Arguments: hashpartitioning(i_item_id#21, 100), ENSURE_REQUIREMENTS, [plan_id=12] (103) ShuffleQueryStage -Output [2]: [i_item_id#21, #13#13] +Output [2]: [i_item_id#21, #13] Arguments: X (104) AQEShuffleRead -Input [2]: [i_item_id#21, #13#13] +Input [2]: [i_item_id#21, #13] Arguments: coalesced (105) InputAdapter -Input [2]: [i_item_id#21, #13#13] +Input [2]: [i_item_id#21, #13] (106) NativeHashAggregate -Input [2]: [i_item_id#21, #13#13] +Input [2]: [i_item_id#21, #13] Keys [1]: [i_item_id#21] Functions [1]: [sum(cr_return_quantity#19)] Aggregate Attributes [1]: [sum(cr_return_quantity#19)#24] @@ -861,25 +861,25 @@ Input [2]: [wr_return_quantity#29, i_item_id#31] Keys [1]: [i_item_id#31] Functions [1]: [partial_sum(wr_return_quantity#29)] Aggregate Attributes [1]: [sum#33] -Results [2]: [i_item_id#31, #13#13] +Results [2]: [i_item_id#31, #13] (141) NativeShuffleExchange -Input [2]: [i_item_id#31, #13#13] +Input [2]: [i_item_id#31, #13] Arguments: hashpartitioning(i_item_id#31, 100), ENSURE_REQUIREMENTS, [plan_id=15] (142) ShuffleQueryStage -Output [2]: [i_item_id#31, #13#13] +Output [2]: [i_item_id#31, #13] Arguments: X (143) AQEShuffleRead -Input [2]: [i_item_id#31, #13#13] +Input [2]: [i_item_id#31, #13] Arguments: coalesced (144) InputAdapter -Input [2]: [i_item_id#31, #13#13] +Input [2]: [i_item_id#31, #13] (145) NativeHashAggregate -Input [2]: [i_item_id#31, #13#13] +Input [2]: [i_item_id#31, #13] Keys [1]: [i_item_id#31] Functions [1]: [sum(wr_return_quantity#29)] Aggregate Attributes [1]: [sum(wr_return_quantity#29)#34] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt index a0f017b00..b027641d2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt @@ -668,37 +668,37 @@ Input [4]: [r_reason_desc#29, _c1#30, _c2#31, _c3#32] Keys [1]: [r_reason_desc#29] Functions [3]: [partial_avg(_c1#30), partial_avg(_c2#31), partial_avg(_c3#32)] Aggregate Attributes [6]: [sum#33, count#34, sum#35, count#36, sum#37, count#38] -Results [2]: [r_reason_desc#29, #39#39] +Results [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] (115) NativeShuffleExchange -Input [2]: [r_reason_desc#29, #39#39] +Input [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] Arguments: hashpartitioning(r_reason_desc#29, 100), ENSURE_REQUIREMENTS, [plan_id=15] (116) ShuffleQueryStage -Output [2]: [r_reason_desc#29, #39#39] +Output [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] Arguments: X (117) AQEShuffleRead -Input [2]: [r_reason_desc#29, #39#39] +Input [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] Arguments: coalesced (118) InputAdapter -Input [2]: [r_reason_desc#29, #39#39] +Input [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] (119) NativeHashAggregate -Input [2]: [r_reason_desc#29, #39#39] +Input [7]: [r_reason_desc#29, #39, #40, #39, #40, #39, #40] Keys [1]: [r_reason_desc#29] Functions [3]: [avg(ws_quantity#5), avg(UnscaledValue(wr_refunded_cash#15)), avg(UnscaledValue(wr_fee#14))] -Aggregate Attributes [3]: [avg(ws_quantity#5)#40, avg(UnscaledValue(wr_refunded_cash#15))#41, avg(UnscaledValue(wr_fee#14))#42] -Results [4]: [r_reason_desc#29, avg(ws_quantity#5)#40, avg(UnscaledValue(wr_refunded_cash#15))#41, avg(UnscaledValue(wr_fee#14))#42] +Aggregate Attributes [3]: [avg(ws_quantity#5)#41, avg(UnscaledValue(wr_refunded_cash#15))#42, avg(UnscaledValue(wr_fee#14))#43] +Results [4]: [r_reason_desc#29, avg(ws_quantity#5)#41, avg(UnscaledValue(wr_refunded_cash#15))#42, avg(UnscaledValue(wr_fee#14))#43] (120) NativeProject -Output [4]: [substr(r_reason_desc#29, 1, 20) AS substr(r_reason_desc, 1, 20)#43, avg(ws_quantity#5)#40 AS avg(ws_quantity)#44, cast((avg(UnscaledValue(wr_refunded_cash#15))#41 / 100.0) as decimal(11,6)) AS avg(wr_refunded_cash)#45, cast((avg(UnscaledValue(wr_fee#14))#42 / 100.0) as decimal(11,6)) AS avg(wr_fee)#46] -Input [4]: [r_reason_desc#29, avg(ws_quantity#5)#40, avg(UnscaledValue(wr_refunded_cash#15))#41, avg(UnscaledValue(wr_fee#14))#42] +Output [4]: [substr(r_reason_desc#29, 1, 20) AS substr(r_reason_desc, 1, 20)#44, avg(ws_quantity#5)#41 AS avg(ws_quantity)#45, cast((avg(UnscaledValue(wr_refunded_cash#15))#42 / 100.0) as decimal(11,6)) AS avg(wr_refunded_cash)#46, cast((avg(UnscaledValue(wr_fee#14))#43 / 100.0) as decimal(11,6)) AS avg(wr_fee)#47] +Input [4]: [r_reason_desc#29, avg(ws_quantity#5)#41, avg(UnscaledValue(wr_refunded_cash#15))#42, avg(UnscaledValue(wr_fee#14))#43] (121) NativeTakeOrdered -Input [4]: [substr(r_reason_desc, 1, 20)#43, avg(ws_quantity)#44, avg(wr_refunded_cash)#45, avg(wr_fee)#46] -Arguments: X, [substr(r_reason_desc, 1, 20)#43 ASC NULLS FIRST, avg(ws_quantity)#44 ASC NULLS FIRST, avg(wr_refunded_cash)#45 ASC NULLS FIRST, avg(wr_fee)#46 ASC NULLS FIRST] +Input [4]: [substr(r_reason_desc, 1, 20)#44, avg(ws_quantity)#45, avg(wr_refunded_cash)#46, avg(wr_fee)#47] +Arguments: X, [substr(r_reason_desc, 1, 20)#44 ASC NULLS FIRST, avg(ws_quantity)#45 ASC NULLS FIRST, avg(wr_refunded_cash)#46 ASC NULLS FIRST, avg(wr_fee)#47 ASC NULLS FIRST] (122) Scan parquet Output [7]: [ws_sold_date_sk#1, ws_item_sk#2, ws_web_page_sk#3, ws_order_number#4, ws_quantity#5, ws_sales_price#6, ws_net_profit#7] @@ -983,24 +983,24 @@ Input [4]: [ws_quantity#5, wr_fee#14, wr_refunded_cash#15, r_reason_desc#29] Keys [1]: [r_reason_desc#29] Functions [3]: [partial_avg(ws_quantity#5), partial_avg(UnscaledValue(wr_refunded_cash#15)), partial_avg(UnscaledValue(wr_fee#14))] Aggregate Attributes [6]: [sum#33, count#34, sum#35, count#36, sum#37, count#38] -Results [7]: [r_reason_desc#29, sum#47, count#48, sum#49, count#50, sum#51, count#52] +Results [7]: [r_reason_desc#29, sum#48, count#49, sum#50, count#51, sum#52, count#53] (183) Exchange -Input [7]: [r_reason_desc#29, sum#47, count#48, sum#49, count#50, sum#51, count#52] +Input [7]: [r_reason_desc#29, sum#48, count#49, sum#50, count#51, sum#52, count#53] Arguments: hashpartitioning(r_reason_desc#29, 100), ENSURE_REQUIREMENTS, [plan_id=30] (184) HashAggregate -Input [7]: [r_reason_desc#29, sum#47, count#48, sum#49, count#50, sum#51, count#52] +Input [7]: [r_reason_desc#29, sum#48, count#49, sum#50, count#51, sum#52, count#53] Keys [1]: [r_reason_desc#29] Functions [3]: [avg(ws_quantity#5), avg(UnscaledValue(wr_refunded_cash#15)), avg(UnscaledValue(wr_fee#14))] -Aggregate Attributes [3]: [avg(ws_quantity#5)#40, avg(UnscaledValue(wr_refunded_cash#15))#41, avg(UnscaledValue(wr_fee#14))#42] -Results [4]: [substr(r_reason_desc#29, 1, 20) AS substr(r_reason_desc, 1, 20)#43, avg(ws_quantity#5)#40 AS avg(ws_quantity)#44, cast((avg(UnscaledValue(wr_refunded_cash#15))#41 / 100.0) as decimal(11,6)) AS avg(wr_refunded_cash)#45, cast((avg(UnscaledValue(wr_fee#14))#42 / 100.0) as decimal(11,6)) AS avg(wr_fee)#46] +Aggregate Attributes [3]: [avg(ws_quantity#5)#41, avg(UnscaledValue(wr_refunded_cash#15))#42, avg(UnscaledValue(wr_fee#14))#43] +Results [4]: [substr(r_reason_desc#29, 1, 20) AS substr(r_reason_desc, 1, 20)#44, avg(ws_quantity#5)#41 AS avg(ws_quantity)#45, cast((avg(UnscaledValue(wr_refunded_cash#15))#42 / 100.0) as decimal(11,6)) AS avg(wr_refunded_cash)#46, cast((avg(UnscaledValue(wr_fee#14))#43 / 100.0) as decimal(11,6)) AS avg(wr_fee)#47] (185) TakeOrderedAndProject -Input [4]: [substr(r_reason_desc, 1, 20)#43, avg(ws_quantity)#44, avg(wr_refunded_cash)#45, avg(wr_fee)#46] -Arguments: X, [substr(r_reason_desc, 1, 20)#43 ASC NULLS FIRST, avg(ws_quantity)#44 ASC NULLS FIRST, avg(wr_refunded_cash)#45 ASC NULLS FIRST, avg(wr_fee)#46 ASC NULLS FIRST], [substr(r_reason_desc, 1, 20)#43, avg(ws_quantity)#44, avg(wr_refunded_cash)#45, avg(wr_fee)#46] +Input [4]: [substr(r_reason_desc, 1, 20)#44, avg(ws_quantity)#45, avg(wr_refunded_cash)#46, avg(wr_fee)#47] +Arguments: X, [substr(r_reason_desc, 1, 20)#44 ASC NULLS FIRST, avg(ws_quantity)#45 ASC NULLS FIRST, avg(wr_refunded_cash)#46 ASC NULLS FIRST, avg(wr_fee)#47 ASC NULLS FIRST], [substr(r_reason_desc, 1, 20)#44, avg(ws_quantity)#45, avg(wr_refunded_cash)#46, avg(wr_fee)#47] (186) AdaptiveSparkPlan -Output [4]: [substr(r_reason_desc, 1, 20)#43, avg(ws_quantity)#44, avg(wr_refunded_cash)#45, avg(wr_fee)#46] +Output [4]: [substr(r_reason_desc, 1, 20)#44, avg(ws_quantity)#45, avg(wr_refunded_cash)#46, avg(wr_fee)#47] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q86.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q86.txt index c379f8fdb..4f73ab535 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q86.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q86.txt @@ -241,25 +241,25 @@ Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, _c3#12] Keys [3]: [i_category#9, i_class#10, spark_grouping_id#11] Functions [1]: [partial_sum(_c3#12)] Aggregate Attributes [1]: [sum#13] -Results [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Results [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] (38) NativeShuffleExchange -Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] Arguments: hashpartitioning(i_category#9, i_class#10, spark_grouping_id#11, 100), ENSURE_REQUIREMENTS, [plan_id=5] (39) ShuffleQueryStage -Output [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Output [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] Arguments: X (40) AQEShuffleRead -Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] Arguments: coalesced (41) InputAdapter -Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] (42) NativeHashAggregate -Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14#14] +Input [4]: [i_category#9, i_class#10, spark_grouping_id#11, #14] Keys [3]: [i_category#9, i_class#10, spark_grouping_id#11] Functions [1]: [sum(UnscaledValue(ws_net_paid#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ws_net_paid#3))#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q87.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q87.txt index fa078fea9..6d6a4762a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q87.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q87.txt @@ -368,33 +368,33 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Keys [3]: [c_last_name#8, c_first_name#7, d_date#4] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Results [3]: [c_last_name#8, c_first_name#7, d_date#4] (36) NativeShuffleExchange -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: hashpartitioning(c_last_name#8, c_first_name#7, d_date#4, 100), ENSURE_REQUIREMENTS, [plan_id=5] (37) ShuffleQueryStage -Output [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Output [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: X (38) AQEShuffleRead -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: coalesced (39) InputAdapter -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] (40) NativeHashAggregate -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Keys [3]: [c_last_name#8, c_first_name#7, d_date#4] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Results [3]: [c_last_name#8, c_first_name#7, d_date#4] (41) NativeProject Output [3]: [c_last_name#8, c_first_name#7, d_date#4] -Input [4]: [c_last_name#8, c_first_name#7, d_date#4, #9#9] +Input [3]: [c_last_name#8, c_first_name#7, d_date#4] (42) NativeShuffleExchange Input [3]: [c_last_name#8, c_first_name#7, d_date#4] @@ -416,352 +416,352 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: [coalesce(c_last_name#8, ) ASC NULLS FIRST, isnull(c_last_name#8) ASC NULLS FIRST, coalesce(c_first_name#7, ) ASC NULLS FIRST, isnull(c_first_name#7) ASC NULLS FIRST, coalesce(d_date#4, 1970-01-01) ASC NULLS FIRST, isnull(d_date#4) ASC NULLS FIRST], false (161) Scan parquet -Output [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] +Output [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_bill_customer_sk)] ReadSchema: struct (48) InputAdapter -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: [#10, #11] +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: [#9, #10] (49) NativeFilter -Input [2]: [#10#10, #11#11] -Condition : (isnotnull(cs_sold_date_sk#10) AND isnotnull(cs_bill_customer_sk#11)) +Input [2]: [#9#9, #10#10] +Condition : (isnotnull(cs_sold_date_sk#9) AND isnotnull(cs_bill_customer_sk#10)) (50) NativeShuffleExchange -Input [2]: [#10#10, #11#11] -Arguments: hashpartitioning(cs_sold_date_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=7] +Input [2]: [#9#9, #10#10] +Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=7] (51) ShuffleQueryStage -Output [2]: [#10#10, #11#11] +Output [2]: [#9#9, #10#10] Arguments: X (52) AQEShuffleRead -Input [2]: [#10#10, #11#11] +Input [2]: [#9#9, #10#10] Arguments: coalesced (53) InputAdapter -Input [2]: [#10#10, #11#11] +Input [2]: [#9#9, #10#10] (54) NativeSort -Input [2]: [#10#10, #11#11] -Arguments: [cs_sold_date_sk#10 ASC NULLS FIRST], false +Input [2]: [#9#9, #10#10] +Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false (55) ReusedExchange [Reuses operator id: 13] -Output [2]: [d_date_sk#12, d_date#13] +Output [2]: [d_date_sk#11, d_date#12] (56) ShuffleQueryStage -Output [2]: [d_date_sk#12, d_date#13] +Output [2]: [d_date_sk#11, d_date#12] Arguments: X (57) AQEShuffleRead -Input [2]: [d_date_sk#12, d_date#13] +Input [2]: [d_date_sk#11, d_date#12] Arguments: coalesced (58) InputAdapter -Input [2]: [d_date_sk#12, d_date#13] -Arguments: [#12, #13] +Input [2]: [d_date_sk#11, d_date#12] +Arguments: [#11, #12] (59) InputAdapter -Input [2]: [#12#12, #13#13] +Input [2]: [#11#11, #12#12] (60) NativeSort -Input [2]: [#12#12, #13#13] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false +Input [2]: [#11#11, #12#12] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false (61) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#10] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#9] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (62) NativeProject -Output [2]: [cs_bill_customer_sk#11, d_date#13] -Input [4]: [#10#10, #11#11, #12#12, #13#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] +Input [4]: [#9#9, #10#10, #11#11, #12#12] (63) NativeShuffleExchange -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: hashpartitioning(cs_bill_customer_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=8] +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: hashpartitioning(cs_bill_customer_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=8] (64) ShuffleQueryStage -Output [2]: [cs_bill_customer_sk#11, d_date#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] Arguments: X (65) AQEShuffleRead -Input [2]: [cs_bill_customer_sk#11, d_date#13] +Input [2]: [cs_bill_customer_sk#10, d_date#12] Arguments: coalesced (66) InputAdapter -Input [2]: [cs_bill_customer_sk#11, d_date#13] +Input [2]: [cs_bill_customer_sk#10, d_date#12] (67) NativeSort -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: [cs_bill_customer_sk#11 ASC NULLS FIRST], false +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: [cs_bill_customer_sk#10 ASC NULLS FIRST], false (68) ReusedExchange [Reuses operator id: 28] -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] (69) ShuffleQueryStage -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Arguments: X (70) AQEShuffleRead -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Arguments: coalesced (71) InputAdapter -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: [#14, #15, #16] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: [#13, #14, #15] (72) InputAdapter -Input [3]: [#14#14, #15#15, #16#16] +Input [3]: [#13#13, #14#14, #15#15] (73) NativeSort -Input [3]: [#14#14, #15#15, #16#16] -Arguments: [c_customer_sk#14 ASC NULLS FIRST], false +Input [3]: [#13#13, #14#14, #15#15] +Arguments: [c_customer_sk#13 ASC NULLS FIRST], false (74) NativeSortMergeJoin -Left keys [1]: [cs_bill_customer_sk#11] -Right keys [1]: [c_customer_sk#14] +Left keys [1]: [cs_bill_customer_sk#10] +Right keys [1]: [c_customer_sk#13] Join type: Inner Join condition: None (75) NativeProject -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [5]: [cs_bill_customer_sk#11, d_date#13, #14#14, #15#15, #16#16] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [5]: [cs_bill_customer_sk#10, d_date#12, #13#13, #14#14, #15#15] (76) NativeHashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (77) NativeShuffleExchange -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] -Arguments: hashpartitioning(c_last_name#16, c_first_name#15, d_date#13, 100), ENSURE_REQUIREMENTS, [plan_id=9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(c_last_name#15, c_first_name#14, d_date#12, 100), ENSURE_REQUIREMENTS, [plan_id=9] (78) ShuffleQueryStage -Output [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: X (79) AQEShuffleRead -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: coalesced (80) InputAdapter -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (81) NativeHashAggregate -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (82) NativeProject -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [4]: [c_last_name#16, c_first_name#15, d_date#13, #9#9] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (83) NativeShuffleExchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13), 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12), 100), ENSURE_REQUIREMENTS, [plan_id=10] (84) ShuffleQueryStage -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: X (85) AQEShuffleRead -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] Arguments: coalesced (86) InputAdapter -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] (87) NativeSort -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: [coalesce(c_last_name#16, ) ASC NULLS FIRST, isnull(c_last_name#16) ASC NULLS FIRST, coalesce(c_first_name#15, ) ASC NULLS FIRST, isnull(c_first_name#15) ASC NULLS FIRST, coalesce(d_date#13, 1970-01-01) ASC NULLS FIRST, isnull(d_date#13) ASC NULLS FIRST], false +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: [coalesce(c_last_name#15, ) ASC NULLS FIRST, isnull(c_last_name#15) ASC NULLS FIRST, coalesce(c_first_name#14, ) ASC NULLS FIRST, isnull(c_first_name#14) ASC NULLS FIRST, coalesce(d_date#12, 1970-01-01) ASC NULLS FIRST, isnull(d_date#12) ASC NULLS FIRST], false (88) NativeSortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13)] +Right keys [6]: [coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12)] Join type: LeftAnti Join condition: None (186) Scan parquet -Output [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] +Output [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk), IsNotNull(ws_bill_customer_sk)] ReadSchema: struct (90) InputAdapter -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: [#17, #18] +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: [#16, #17] (91) NativeFilter -Input [2]: [#17#17, #18#18] -Condition : (isnotnull(ws_sold_date_sk#17) AND isnotnull(ws_bill_customer_sk#18)) +Input [2]: [#16#16, #17#17] +Condition : (isnotnull(ws_sold_date_sk#16) AND isnotnull(ws_bill_customer_sk#17)) (92) NativeShuffleExchange -Input [2]: [#17#17, #18#18] -Arguments: hashpartitioning(ws_sold_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [2]: [#16#16, #17#17] +Arguments: hashpartitioning(ws_sold_date_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=11] (93) ShuffleQueryStage -Output [2]: [#17#17, #18#18] +Output [2]: [#16#16, #17#17] Arguments: X (94) AQEShuffleRead -Input [2]: [#17#17, #18#18] +Input [2]: [#16#16, #17#17] Arguments: coalesced (95) InputAdapter -Input [2]: [#17#17, #18#18] +Input [2]: [#16#16, #17#17] (96) NativeSort -Input [2]: [#17#17, #18#18] -Arguments: [ws_sold_date_sk#17 ASC NULLS FIRST], false +Input [2]: [#16#16, #17#17] +Arguments: [ws_sold_date_sk#16 ASC NULLS FIRST], false (97) ReusedExchange [Reuses operator id: 13] -Output [2]: [d_date_sk#19, d_date#20] +Output [2]: [d_date_sk#18, d_date#19] (98) ShuffleQueryStage -Output [2]: [d_date_sk#19, d_date#20] +Output [2]: [d_date_sk#18, d_date#19] Arguments: X (99) AQEShuffleRead -Input [2]: [d_date_sk#19, d_date#20] +Input [2]: [d_date_sk#18, d_date#19] Arguments: coalesced (100) InputAdapter -Input [2]: [d_date_sk#19, d_date#20] -Arguments: [#19, #20] +Input [2]: [d_date_sk#18, d_date#19] +Arguments: [#18, #19] (101) InputAdapter -Input [2]: [#19#19, #20#20] +Input [2]: [#18#18, #19#19] (102) NativeSort -Input [2]: [#19#19, #20#20] -Arguments: [d_date_sk#19 ASC NULLS FIRST], false +Input [2]: [#18#18, #19#19] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false (103) NativeSortMergeJoin -Left keys [1]: [ws_sold_date_sk#17] -Right keys [1]: [d_date_sk#19] +Left keys [1]: [ws_sold_date_sk#16] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (104) NativeProject -Output [2]: [ws_bill_customer_sk#18, d_date#20] -Input [4]: [#17#17, #18#18, #19#19, #20#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] +Input [4]: [#16#16, #17#17, #18#18, #19#19] (105) NativeShuffleExchange -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: hashpartitioning(ws_bill_customer_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: hashpartitioning(ws_bill_customer_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=12] (106) ShuffleQueryStage -Output [2]: [ws_bill_customer_sk#18, d_date#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] Arguments: X (107) AQEShuffleRead -Input [2]: [ws_bill_customer_sk#18, d_date#20] +Input [2]: [ws_bill_customer_sk#17, d_date#19] Arguments: coalesced (108) InputAdapter -Input [2]: [ws_bill_customer_sk#18, d_date#20] +Input [2]: [ws_bill_customer_sk#17, d_date#19] (109) NativeSort -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: [ws_bill_customer_sk#18 ASC NULLS FIRST], false +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: [ws_bill_customer_sk#17 ASC NULLS FIRST], false (110) ReusedExchange [Reuses operator id: 28] -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] (111) ShuffleQueryStage -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Arguments: X (112) AQEShuffleRead -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Arguments: coalesced (113) InputAdapter -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: [#21, #22, #23] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: [#20, #21, #22] (114) InputAdapter -Input [3]: [#21#21, #22#22, #23#23] +Input [3]: [#20#20, #21#21, #22#22] (115) NativeSort -Input [3]: [#21#21, #22#22, #23#23] -Arguments: [c_customer_sk#21 ASC NULLS FIRST], false +Input [3]: [#20#20, #21#21, #22#22] +Arguments: [c_customer_sk#20 ASC NULLS FIRST], false (116) NativeSortMergeJoin -Left keys [1]: [ws_bill_customer_sk#18] -Right keys [1]: [c_customer_sk#21] +Left keys [1]: [ws_bill_customer_sk#17] +Right keys [1]: [c_customer_sk#20] Join type: Inner Join condition: None (117) NativeProject -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [5]: [ws_bill_customer_sk#18, d_date#20, #21#21, #22#22, #23#23] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [5]: [ws_bill_customer_sk#17, d_date#19, #20#20, #21#21, #22#22] (118) NativeHashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (119) NativeShuffleExchange -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] -Arguments: hashpartitioning(c_last_name#23, c_first_name#22, d_date#20, 100), ENSURE_REQUIREMENTS, [plan_id=13] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(c_last_name#22, c_first_name#21, d_date#19, 100), ENSURE_REQUIREMENTS, [plan_id=13] (120) ShuffleQueryStage -Output [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: X (121) AQEShuffleRead -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: coalesced (122) InputAdapter -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (123) NativeHashAggregate -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (124) NativeProject -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [4]: [c_last_name#23, c_first_name#22, d_date#20, #9#9] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (125) NativeShuffleExchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20), 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19), 100), ENSURE_REQUIREMENTS, [plan_id=14] (126) ShuffleQueryStage -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: X (127) AQEShuffleRead -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] Arguments: coalesced (128) InputAdapter -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] (129) NativeSort -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: [coalesce(c_last_name#23, ) ASC NULLS FIRST, isnull(c_last_name#23) ASC NULLS FIRST, coalesce(c_first_name#22, ) ASC NULLS FIRST, isnull(c_first_name#22) ASC NULLS FIRST, coalesce(d_date#20, 1970-01-01) ASC NULLS FIRST, isnull(d_date#20) ASC NULLS FIRST], false +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: [coalesce(c_last_name#22, ) ASC NULLS FIRST, isnull(c_last_name#22) ASC NULLS FIRST, coalesce(c_first_name#21, ) ASC NULLS FIRST, isnull(c_first_name#21) ASC NULLS FIRST, coalesce(d_date#19, 1970-01-01) ASC NULLS FIRST, isnull(d_date#19) ASC NULLS FIRST], false (130) NativeSortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20)] +Right keys [6]: [coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19)] Join type: LeftAnti Join condition: None @@ -773,19 +773,19 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Input: [] Keys: [] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#24] -Results [1]: [#9#9] +Aggregate Attributes [1]: [count#23] +Results [1]: [#24] (133) NativeShuffleExchange -Input [1]: [#9#9] +Input [1]: [#24] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=15] (134) ShuffleQueryStage -Output [1]: [#9#9] +Output [1]: [#24] Arguments: X (135) NativeHashAggregate -Input [1]: [#9#9] +Input [1]: [#24] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#25] @@ -911,244 +911,244 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Arguments: [coalesce(c_last_name#8, ) ASC NULLS FIRST, isnull(c_last_name#8) ASC NULLS FIRST, coalesce(c_first_name#7, ) ASC NULLS FIRST, isnull(c_first_name#7) ASC NULLS FIRST, coalesce(d_date#4, 1970-01-01) ASC NULLS FIRST, isnull(d_date#4) ASC NULLS FIRST], false, 0 (161) Scan parquet -Output [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] +Output [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk), IsNotNull(cs_bill_customer_sk)] ReadSchema: struct (162) Filter -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Condition : (isnotnull(cs_sold_date_sk#10) AND isnotnull(cs_bill_customer_sk#11)) +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Condition : (isnotnull(cs_sold_date_sk#9) AND isnotnull(cs_bill_customer_sk#10)) (163) Exchange -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: hashpartitioning(cs_sold_date_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=22] +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=22] (164) Sort -Input [2]: [cs_sold_date_sk#10, cs_bill_customer_sk#11] -Arguments: [cs_sold_date_sk#10 ASC NULLS FIRST], false, 0 +Input [2]: [cs_sold_date_sk#9, cs_bill_customer_sk#10] +Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false, 0 (165) Scan parquet -Output [3]: [d_date_sk#12, d_date#13, d_month_seq#27] +Output [3]: [d_date_sk#11, d_date#12, d_month_seq#27] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1200), LessThanOrEqual(d_month_seq,1211), IsNotNull(d_date_sk)] ReadSchema: struct (166) Filter -Input [3]: [d_date_sk#12, d_date#13, d_month_seq#27] -Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#12)) +Input [3]: [d_date_sk#11, d_date#12, d_month_seq#27] +Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#11)) (167) Project -Output [2]: [d_date_sk#12, d_date#13] -Input [3]: [d_date_sk#12, d_date#13, d_month_seq#27] +Output [2]: [d_date_sk#11, d_date#12] +Input [3]: [d_date_sk#11, d_date#12, d_month_seq#27] (168) Exchange -Input [2]: [d_date_sk#12, d_date#13] -Arguments: hashpartitioning(d_date_sk#12, 100), ENSURE_REQUIREMENTS, [plan_id=23] +Input [2]: [d_date_sk#11, d_date#12] +Arguments: hashpartitioning(d_date_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=23] (169) Sort -Input [2]: [d_date_sk#12, d_date#13] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#11, d_date#12] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false, 0 (170) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#10] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#9] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (171) Project -Output [2]: [cs_bill_customer_sk#11, d_date#13] -Input [4]: [cs_sold_date_sk#10, cs_bill_customer_sk#11, d_date_sk#12, d_date#13] +Output [2]: [cs_bill_customer_sk#10, d_date#12] +Input [4]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, d_date_sk#11, d_date#12] (172) Exchange -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: hashpartitioning(cs_bill_customer_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=24] +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: hashpartitioning(cs_bill_customer_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=24] (173) Sort -Input [2]: [cs_bill_customer_sk#11, d_date#13] -Arguments: [cs_bill_customer_sk#11 ASC NULLS FIRST], false, 0 +Input [2]: [cs_bill_customer_sk#10, d_date#12] +Arguments: [cs_bill_customer_sk#10 ASC NULLS FIRST], false, 0 (174) Scan parquet -Output [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (175) Filter -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Condition : isnotnull(c_customer_sk#14) +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Condition : isnotnull(c_customer_sk#13) (176) Exchange -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: hashpartitioning(c_customer_sk#14, 100), ENSURE_REQUIREMENTS, [plan_id=25] +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: hashpartitioning(c_customer_sk#13, 100), ENSURE_REQUIREMENTS, [plan_id=25] (177) Sort -Input [3]: [c_customer_sk#14, c_first_name#15, c_last_name#16] -Arguments: [c_customer_sk#14 ASC NULLS FIRST], false, 0 +Input [3]: [c_customer_sk#13, c_first_name#14, c_last_name#15] +Arguments: [c_customer_sk#13 ASC NULLS FIRST], false, 0 (178) SortMergeJoin -Left keys [1]: [cs_bill_customer_sk#11] -Right keys [1]: [c_customer_sk#14] +Left keys [1]: [cs_bill_customer_sk#10] +Right keys [1]: [c_customer_sk#13] Join type: Inner Join condition: None (179) Project -Output [3]: [c_last_name#16, c_first_name#15, d_date#13] -Input [5]: [cs_bill_customer_sk#11, d_date#13, c_customer_sk#14, c_first_name#15, c_last_name#16] +Output [3]: [c_last_name#15, c_first_name#14, d_date#12] +Input [5]: [cs_bill_customer_sk#10, d_date#12, c_customer_sk#13, c_first_name#14, c_last_name#15] (180) HashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#16, c_first_name#15, d_date#13] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (181) Exchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(c_last_name#16, c_first_name#15, d_date#13, 100), ENSURE_REQUIREMENTS, [plan_id=26] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(c_last_name#15, c_first_name#14, d_date#12, 100), ENSURE_REQUIREMENTS, [plan_id=26] (182) HashAggregate -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Keys [3]: [c_last_name#16, c_first_name#15, d_date#13] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Keys [3]: [c_last_name#15, c_first_name#14, d_date#12] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#16, c_first_name#15, d_date#13] +Results [3]: [c_last_name#15, c_first_name#14, d_date#12] (183) Exchange -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: hashpartitioning(coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13), 100), ENSURE_REQUIREMENTS, [plan_id=27] +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: hashpartitioning(coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12), 100), ENSURE_REQUIREMENTS, [plan_id=27] (184) Sort -Input [3]: [c_last_name#16, c_first_name#15, d_date#13] -Arguments: [coalesce(c_last_name#16, ) ASC NULLS FIRST, isnull(c_last_name#16) ASC NULLS FIRST, coalesce(c_first_name#15, ) ASC NULLS FIRST, isnull(c_first_name#15) ASC NULLS FIRST, coalesce(d_date#13, 1970-01-01) ASC NULLS FIRST, isnull(d_date#13) ASC NULLS FIRST], false, 0 +Input [3]: [c_last_name#15, c_first_name#14, d_date#12] +Arguments: [coalesce(c_last_name#15, ) ASC NULLS FIRST, isnull(c_last_name#15) ASC NULLS FIRST, coalesce(c_first_name#14, ) ASC NULLS FIRST, isnull(c_first_name#14) ASC NULLS FIRST, coalesce(d_date#12, 1970-01-01) ASC NULLS FIRST, isnull(d_date#12) ASC NULLS FIRST], false, 0 (185) SortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#16, ), isnull(c_last_name#16), coalesce(c_first_name#15, ), isnull(c_first_name#15), coalesce(d_date#13, 1970-01-01), isnull(d_date#13)] +Right keys [6]: [coalesce(c_last_name#15, ), isnull(c_last_name#15), coalesce(c_first_name#14, ), isnull(c_first_name#14), coalesce(d_date#12, 1970-01-01), isnull(d_date#12)] Join type: LeftAnti Join condition: None (186) Scan parquet -Output [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] +Output [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ws_sold_date_sk), IsNotNull(ws_bill_customer_sk)] ReadSchema: struct (187) Filter -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Condition : (isnotnull(ws_sold_date_sk#17) AND isnotnull(ws_bill_customer_sk#18)) +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Condition : (isnotnull(ws_sold_date_sk#16) AND isnotnull(ws_bill_customer_sk#17)) (188) Exchange -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: hashpartitioning(ws_sold_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=28] +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: hashpartitioning(ws_sold_date_sk#16, 100), ENSURE_REQUIREMENTS, [plan_id=28] (189) Sort -Input [2]: [ws_sold_date_sk#17, ws_bill_customer_sk#18] -Arguments: [ws_sold_date_sk#17 ASC NULLS FIRST], false, 0 +Input [2]: [ws_sold_date_sk#16, ws_bill_customer_sk#17] +Arguments: [ws_sold_date_sk#16 ASC NULLS FIRST], false, 0 (190) Scan parquet -Output [3]: [d_date_sk#19, d_date#20, d_month_seq#28] +Output [3]: [d_date_sk#18, d_date#19, d_month_seq#28] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1200), LessThanOrEqual(d_month_seq,1211), IsNotNull(d_date_sk)] ReadSchema: struct (191) Filter -Input [3]: [d_date_sk#19, d_date#20, d_month_seq#28] -Condition : (((isnotnull(d_month_seq#28) AND (d_month_seq#28 >= 1200)) AND (d_month_seq#28 <= 1211)) AND isnotnull(d_date_sk#19)) +Input [3]: [d_date_sk#18, d_date#19, d_month_seq#28] +Condition : (((isnotnull(d_month_seq#28) AND (d_month_seq#28 >= 1200)) AND (d_month_seq#28 <= 1211)) AND isnotnull(d_date_sk#18)) (192) Project -Output [2]: [d_date_sk#19, d_date#20] -Input [3]: [d_date_sk#19, d_date#20, d_month_seq#28] +Output [2]: [d_date_sk#18, d_date#19] +Input [3]: [d_date_sk#18, d_date#19, d_month_seq#28] (193) Exchange -Input [2]: [d_date_sk#19, d_date#20] -Arguments: hashpartitioning(d_date_sk#19, 100), ENSURE_REQUIREMENTS, [plan_id=29] +Input [2]: [d_date_sk#18, d_date#19] +Arguments: hashpartitioning(d_date_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=29] (194) Sort -Input [2]: [d_date_sk#19, d_date#20] -Arguments: [d_date_sk#19 ASC NULLS FIRST], false, 0 +Input [2]: [d_date_sk#18, d_date#19] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false, 0 (195) SortMergeJoin -Left keys [1]: [ws_sold_date_sk#17] -Right keys [1]: [d_date_sk#19] +Left keys [1]: [ws_sold_date_sk#16] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (196) Project -Output [2]: [ws_bill_customer_sk#18, d_date#20] -Input [4]: [ws_sold_date_sk#17, ws_bill_customer_sk#18, d_date_sk#19, d_date#20] +Output [2]: [ws_bill_customer_sk#17, d_date#19] +Input [4]: [ws_sold_date_sk#16, ws_bill_customer_sk#17, d_date_sk#18, d_date#19] (197) Exchange -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: hashpartitioning(ws_bill_customer_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=30] +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: hashpartitioning(ws_bill_customer_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=30] (198) Sort -Input [2]: [ws_bill_customer_sk#18, d_date#20] -Arguments: [ws_bill_customer_sk#18 ASC NULLS FIRST], false, 0 +Input [2]: [ws_bill_customer_sk#17, d_date#19] +Arguments: [ws_bill_customer_sk#17 ASC NULLS FIRST], false, 0 (199) Scan parquet -Output [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(c_customer_sk)] ReadSchema: struct (200) Filter -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Condition : isnotnull(c_customer_sk#21) +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Condition : isnotnull(c_customer_sk#20) (201) Exchange -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: hashpartitioning(c_customer_sk#21, 100), ENSURE_REQUIREMENTS, [plan_id=31] +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: hashpartitioning(c_customer_sk#20, 100), ENSURE_REQUIREMENTS, [plan_id=31] (202) Sort -Input [3]: [c_customer_sk#21, c_first_name#22, c_last_name#23] -Arguments: [c_customer_sk#21 ASC NULLS FIRST], false, 0 +Input [3]: [c_customer_sk#20, c_first_name#21, c_last_name#22] +Arguments: [c_customer_sk#20 ASC NULLS FIRST], false, 0 (203) SortMergeJoin -Left keys [1]: [ws_bill_customer_sk#18] -Right keys [1]: [c_customer_sk#21] +Left keys [1]: [ws_bill_customer_sk#17] +Right keys [1]: [c_customer_sk#20] Join type: Inner Join condition: None (204) Project -Output [3]: [c_last_name#23, c_first_name#22, d_date#20] -Input [5]: [ws_bill_customer_sk#18, d_date#20, c_customer_sk#21, c_first_name#22, c_last_name#23] +Output [3]: [c_last_name#22, c_first_name#21, d_date#19] +Input [5]: [ws_bill_customer_sk#17, d_date#19, c_customer_sk#20, c_first_name#21, c_last_name#22] (205) HashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#23, c_first_name#22, d_date#20] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (206) Exchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(c_last_name#23, c_first_name#22, d_date#20, 100), ENSURE_REQUIREMENTS, [plan_id=32] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(c_last_name#22, c_first_name#21, d_date#19, 100), ENSURE_REQUIREMENTS, [plan_id=32] (207) HashAggregate -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Keys [3]: [c_last_name#23, c_first_name#22, d_date#20] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Keys [3]: [c_last_name#22, c_first_name#21, d_date#19] Functions: [] Aggregate Attributes: [] -Results [3]: [c_last_name#23, c_first_name#22, d_date#20] +Results [3]: [c_last_name#22, c_first_name#21, d_date#19] (208) Exchange -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: hashpartitioning(coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20), 100), ENSURE_REQUIREMENTS, [plan_id=33] +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: hashpartitioning(coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19), 100), ENSURE_REQUIREMENTS, [plan_id=33] (209) Sort -Input [3]: [c_last_name#23, c_first_name#22, d_date#20] -Arguments: [coalesce(c_last_name#23, ) ASC NULLS FIRST, isnull(c_last_name#23) ASC NULLS FIRST, coalesce(c_first_name#22, ) ASC NULLS FIRST, isnull(c_first_name#22) ASC NULLS FIRST, coalesce(d_date#20, 1970-01-01) ASC NULLS FIRST, isnull(d_date#20) ASC NULLS FIRST], false, 0 +Input [3]: [c_last_name#22, c_first_name#21, d_date#19] +Arguments: [coalesce(c_last_name#22, ) ASC NULLS FIRST, isnull(c_last_name#22) ASC NULLS FIRST, coalesce(c_first_name#21, ) ASC NULLS FIRST, isnull(c_first_name#21) ASC NULLS FIRST, coalesce(d_date#19, 1970-01-01) ASC NULLS FIRST, isnull(d_date#19) ASC NULLS FIRST], false, 0 (210) SortMergeJoin Left keys [6]: [coalesce(c_last_name#8, ), isnull(c_last_name#8), coalesce(c_first_name#7, ), isnull(c_first_name#7), coalesce(d_date#4, 1970-01-01), isnull(d_date#4)] -Right keys [6]: [coalesce(c_last_name#23, ), isnull(c_last_name#23), coalesce(c_first_name#22, ), isnull(c_first_name#22), coalesce(d_date#20, 1970-01-01), isnull(d_date#20)] +Right keys [6]: [coalesce(c_last_name#22, ), isnull(c_last_name#22), coalesce(c_first_name#21, ), isnull(c_first_name#21), coalesce(d_date#19, 1970-01-01), isnull(d_date#19)] Join type: LeftAnti Join condition: None @@ -1160,7 +1160,7 @@ Input [3]: [c_last_name#8, c_first_name#7, d_date#4] Input: [] Keys: [] Functions [1]: [partial_count(1)] -Aggregate Attributes [1]: [count#24] +Aggregate Attributes [1]: [count#23] Results [1]: [count#29] (213) Exchange diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q88.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q88.txt index 7a514f614..41640b2b2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q88.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q88.txt @@ -796,18 +796,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#12] -Results [1]: [#13#13] +Results [1]: [#13] (53) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (55) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#14] @@ -943,18 +943,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#22] -Results [1]: [#13#13] +Results [1]: [#13] (88) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (89) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (90) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#23] @@ -1094,18 +1094,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#31] -Results [1]: [#13#13] +Results [1]: [#13] (124) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=13] (125) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (126) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#32] @@ -1245,18 +1245,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#40] -Results [1]: [#13#13] +Results [1]: [#13] (160) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=16] (161) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (162) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#41] @@ -1396,18 +1396,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#49] -Results [1]: [#13#13] +Results [1]: [#13] (196) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=19] (197) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (198) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#50] @@ -1547,18 +1547,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#58] -Results [1]: [#13#13] +Results [1]: [#13] (232) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=22] (233) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (234) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#59] @@ -1698,18 +1698,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#67] -Results [1]: [#13#13] +Results [1]: [#13] (268) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=25] (269) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (270) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#68] @@ -1849,18 +1849,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#76] -Results [1]: [#13#13] +Results [1]: [#13] (304) NativeShuffleExchange -Input [1]: [#13#13] +Input [1]: [#13] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=28] (305) ShuffleQueryStage -Output [1]: [#13#13] +Output [1]: [#13] Arguments: X (306) NativeHashAggregate -Input [1]: [#13#13] +Input [1]: [#13] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#77] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt index f10023e4e..3ef71d5e0 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt @@ -323,25 +323,25 @@ Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name# Keys [6]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11] Functions [1]: [partial_sum(_c6#15)] Aggregate Attributes [1]: [sum#16] -Results [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Results [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] (52) NativeShuffleExchange -Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] Arguments: hashpartitioning(i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, 100), ENSURE_REQUIREMENTS, [plan_id=7] (53) ShuffleQueryStage -Output [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Output [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] Arguments: X (54) AQEShuffleRead -Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] Arguments: coalesced (55) InputAdapter -Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] (56) NativeHashAggregate -Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17#17] +Input [7]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, #17] Keys [6]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11] Functions [1]: [sum(UnscaledValue(ss_sales_price#8))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_sales_price#8))#18] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q9.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q9.txt index 3cb867b9c..997c987a8 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q9.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q9.txt @@ -103,30 +103,30 @@ Input [2]: [_c0#40, _c1#41] Keys: [] Functions [3]: [partial_count(1), partial_avg(_c0#40), partial_avg(_c1#41)] Aggregate Attributes [5]: [count#42, sum#43, count#44, sum#45, count#46] -Results [1]: [#47#47] +Results [5]: [#47, #48, #47, #48, #47] (15) NativeShuffleExchange -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=1] (16) ShuffleQueryStage -Output [1]: [#47#47] +Output [5]: [#47, #48, #47, #48, #47] Arguments: X (17) NativeHashAggregate -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Keys: [] Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#38)), avg(UnscaledValue(ss_net_paid#39))] -Aggregate Attributes [3]: [count(1)#48, avg(UnscaledValue(ss_ext_discount_amt#38))#49, avg(UnscaledValue(ss_net_paid#39))#50] -Results [3]: [count(1)#48, avg(UnscaledValue(ss_ext_discount_amt#38))#49, avg(UnscaledValue(ss_net_paid#39))#50] +Aggregate Attributes [3]: [count(1)#49, avg(UnscaledValue(ss_ext_discount_amt#38))#50, avg(UnscaledValue(ss_net_paid#39))#51] +Results [3]: [count(1)#49, avg(UnscaledValue(ss_ext_discount_amt#38))#50, avg(UnscaledValue(ss_net_paid#39))#51] (18) NativeProject -Output [3]: [count(1)#48 AS count(1)#51, cast((avg(UnscaledValue(ss_ext_discount_amt#38))#49 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#52, cast((avg(UnscaledValue(ss_net_paid#39))#50 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#53] -Input [3]: [count(1)#48, avg(UnscaledValue(ss_ext_discount_amt#38))#49, avg(UnscaledValue(ss_net_paid#39))#50] +Output [3]: [count(1)#49 AS count(1)#52, cast((avg(UnscaledValue(ss_ext_discount_amt#38))#50 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#53, cast((avg(UnscaledValue(ss_net_paid#39))#51 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#54] +Input [3]: [count(1)#49, avg(UnscaledValue(ss_ext_discount_amt#38))#50, avg(UnscaledValue(ss_net_paid#39))#51] (19) NativeProject -Output [1]: [named_struct(count(1), count(1)#51, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#52, avg(ss_net_paid), avg(ss_net_paid)#53) AS mergedValue#54] -Input [3]: [count(1)#51, avg(ss_ext_discount_amt)#52, avg(ss_net_paid)#53] +Output [1]: [named_struct(count(1), count(1)#52, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#53, avg(ss_net_paid), avg(ss_net_paid)#54) AS mergedValue#55] +Input [3]: [count(1)#52, avg(ss_ext_discount_amt)#53, avg(ss_net_paid)#54] (20) Scan parquet Output [3]: [ss_quantity#37, ss_ext_discount_amt#38, ss_net_paid#39] @@ -148,25 +148,25 @@ Input [2]: [ss_ext_discount_amt#38, ss_net_paid#39] Keys: [] Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#38)), partial_avg(UnscaledValue(ss_net_paid#39))] Aggregate Attributes [5]: [count#42, sum#43, count#44, sum#45, count#46] -Results [5]: [count#55, sum#56, count#57, sum#58, count#59] +Results [5]: [count#56, sum#57, count#58, sum#59, count#60] (24) Exchange -Input [5]: [count#55, sum#56, count#57, sum#58, count#59] +Input [5]: [count#56, sum#57, count#58, sum#59, count#60] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2] (25) HashAggregate -Input [5]: [count#55, sum#56, count#57, sum#58, count#59] +Input [5]: [count#56, sum#57, count#58, sum#59, count#60] Keys: [] Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#38)), avg(UnscaledValue(ss_net_paid#39))] -Aggregate Attributes [3]: [count(1)#48, avg(UnscaledValue(ss_ext_discount_amt#38))#49, avg(UnscaledValue(ss_net_paid#39))#50] -Results [3]: [count(1)#48 AS count(1)#51, cast((avg(UnscaledValue(ss_ext_discount_amt#38))#49 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#52, cast((avg(UnscaledValue(ss_net_paid#39))#50 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#53] +Aggregate Attributes [3]: [count(1)#49, avg(UnscaledValue(ss_ext_discount_amt#38))#50, avg(UnscaledValue(ss_net_paid#39))#51] +Results [3]: [count(1)#49 AS count(1)#52, cast((avg(UnscaledValue(ss_ext_discount_amt#38))#50 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#53, cast((avg(UnscaledValue(ss_net_paid#39))#51 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#54] (26) Project -Output [1]: [named_struct(count(1), count(1)#51, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#52, avg(ss_net_paid), avg(ss_net_paid)#53) AS mergedValue#54] -Input [3]: [count(1)#51, avg(ss_ext_discount_amt)#52, avg(ss_net_paid)#53] +Output [1]: [named_struct(count(1), count(1)#52, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#53, avg(ss_net_paid), avg(ss_net_paid)#54) AS mergedValue#55] +Input [3]: [count(1)#52, avg(ss_ext_discount_amt)#53, avg(ss_net_paid)#54] (27) AdaptiveSparkPlan -Output [1]: [mergedValue#54] +Output [1]: [mergedValue#55] Arguments: isFinalPlan=true Subquery:2 Hosting operator id = 4 Hosting Expression = ReusedSubquery Subquery subquery#2, [id=#3] @@ -198,97 +198,97 @@ AdaptiveSparkPlan (46) (39) Scan parquet -Output [3]: [ss_quantity#60, ss_ext_discount_amt#61, ss_net_paid#62] +Output [3]: [ss_quantity#61, ss_ext_discount_amt#62, ss_net_paid#63] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,21), LessThanOrEqual(ss_quantity,40)] ReadSchema: struct (29) InputAdapter -Input [3]: [ss_quantity#60, ss_ext_discount_amt#61, ss_net_paid#62] -Arguments: [#60, #61, #62] +Input [3]: [ss_quantity#61, ss_ext_discount_amt#62, ss_net_paid#63] +Arguments: [#61, #62, #63] (30) NativeFilter -Input [3]: [#60#60, #61#61, #62#62] -Condition : ((isnotnull(ss_quantity#60) AND (ss_quantity#60 >= 21)) AND (ss_quantity#60 <= 40)) +Input [3]: [#61#61, #62#62, #63#63] +Condition : ((isnotnull(ss_quantity#61) AND (ss_quantity#61 >= 21)) AND (ss_quantity#61 <= 40)) (31) NativeProject -Output [2]: [ss_ext_discount_amt#61, ss_net_paid#62] -Input [3]: [#60#60, #61#61, #62#62] +Output [2]: [ss_ext_discount_amt#62, ss_net_paid#63] +Input [3]: [#61#61, #62#62, #63#63] (32) NativeProject -Output [2]: [UnscaledValue(ss_ext_discount_amt#61) AS _c0#63, UnscaledValue(ss_net_paid#62) AS _c1#64] -Input [2]: [ss_ext_discount_amt#61, ss_net_paid#62] +Output [2]: [UnscaledValue(ss_ext_discount_amt#62) AS _c0#64, UnscaledValue(ss_net_paid#63) AS _c1#65] +Input [2]: [ss_ext_discount_amt#62, ss_net_paid#63] (33) NativeHashAggregate -Input [2]: [_c0#63, _c1#64] +Input [2]: [_c0#64, _c1#65] Keys: [] -Functions [3]: [partial_count(1), partial_avg(_c0#63), partial_avg(_c1#64)] -Aggregate Attributes [5]: [count#65, sum#66, count#67, sum#68, count#69] -Results [1]: [#47#47] +Functions [3]: [partial_count(1), partial_avg(_c0#64), partial_avg(_c1#65)] +Aggregate Attributes [5]: [count#66, sum#67, count#68, sum#69, count#70] +Results [5]: [#47, #48, #47, #48, #47] (34) NativeShuffleExchange -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=3] (35) ShuffleQueryStage -Output [1]: [#47#47] +Output [5]: [#47, #48, #47, #48, #47] Arguments: X (36) NativeHashAggregate -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#61)), avg(UnscaledValue(ss_net_paid#62))] -Aggregate Attributes [3]: [count(1)#70, avg(UnscaledValue(ss_ext_discount_amt#61))#71, avg(UnscaledValue(ss_net_paid#62))#72] -Results [3]: [count(1)#70, avg(UnscaledValue(ss_ext_discount_amt#61))#71, avg(UnscaledValue(ss_net_paid#62))#72] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#62)), avg(UnscaledValue(ss_net_paid#63))] +Aggregate Attributes [3]: [count(1)#71, avg(UnscaledValue(ss_ext_discount_amt#62))#72, avg(UnscaledValue(ss_net_paid#63))#73] +Results [3]: [count(1)#71, avg(UnscaledValue(ss_ext_discount_amt#62))#72, avg(UnscaledValue(ss_net_paid#63))#73] (37) NativeProject -Output [3]: [count(1)#70 AS count(1)#73, cast((avg(UnscaledValue(ss_ext_discount_amt#61))#71 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#74, cast((avg(UnscaledValue(ss_net_paid#62))#72 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#75] -Input [3]: [count(1)#70, avg(UnscaledValue(ss_ext_discount_amt#61))#71, avg(UnscaledValue(ss_net_paid#62))#72] +Output [3]: [count(1)#71 AS count(1)#74, cast((avg(UnscaledValue(ss_ext_discount_amt#62))#72 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#75, cast((avg(UnscaledValue(ss_net_paid#63))#73 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#76] +Input [3]: [count(1)#71, avg(UnscaledValue(ss_ext_discount_amt#62))#72, avg(UnscaledValue(ss_net_paid#63))#73] (38) NativeProject -Output [1]: [named_struct(count(1), count(1)#73, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#74, avg(ss_net_paid), avg(ss_net_paid)#75) AS mergedValue#76] -Input [3]: [count(1)#73, avg(ss_ext_discount_amt)#74, avg(ss_net_paid)#75] +Output [1]: [named_struct(count(1), count(1)#74, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#75, avg(ss_net_paid), avg(ss_net_paid)#76) AS mergedValue#77] +Input [3]: [count(1)#74, avg(ss_ext_discount_amt)#75, avg(ss_net_paid)#76] (39) Scan parquet -Output [3]: [ss_quantity#60, ss_ext_discount_amt#61, ss_net_paid#62] +Output [3]: [ss_quantity#61, ss_ext_discount_amt#62, ss_net_paid#63] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,21), LessThanOrEqual(ss_quantity,40)] ReadSchema: struct (40) Filter -Input [3]: [ss_quantity#60, ss_ext_discount_amt#61, ss_net_paid#62] -Condition : ((isnotnull(ss_quantity#60) AND (ss_quantity#60 >= 21)) AND (ss_quantity#60 <= 40)) +Input [3]: [ss_quantity#61, ss_ext_discount_amt#62, ss_net_paid#63] +Condition : ((isnotnull(ss_quantity#61) AND (ss_quantity#61 >= 21)) AND (ss_quantity#61 <= 40)) (41) Project -Output [2]: [ss_ext_discount_amt#61, ss_net_paid#62] -Input [3]: [ss_quantity#60, ss_ext_discount_amt#61, ss_net_paid#62] +Output [2]: [ss_ext_discount_amt#62, ss_net_paid#63] +Input [3]: [ss_quantity#61, ss_ext_discount_amt#62, ss_net_paid#63] (42) HashAggregate -Input [2]: [ss_ext_discount_amt#61, ss_net_paid#62] +Input [2]: [ss_ext_discount_amt#62, ss_net_paid#63] Keys: [] -Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#61)), partial_avg(UnscaledValue(ss_net_paid#62))] -Aggregate Attributes [5]: [count#65, sum#66, count#67, sum#68, count#69] -Results [5]: [count#77, sum#78, count#79, sum#80, count#81] +Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#62)), partial_avg(UnscaledValue(ss_net_paid#63))] +Aggregate Attributes [5]: [count#66, sum#67, count#68, sum#69, count#70] +Results [5]: [count#78, sum#79, count#80, sum#81, count#82] (43) Exchange -Input [5]: [count#77, sum#78, count#79, sum#80, count#81] +Input [5]: [count#78, sum#79, count#80, sum#81, count#82] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=4] (44) HashAggregate -Input [5]: [count#77, sum#78, count#79, sum#80, count#81] +Input [5]: [count#78, sum#79, count#80, sum#81, count#82] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#61)), avg(UnscaledValue(ss_net_paid#62))] -Aggregate Attributes [3]: [count(1)#70, avg(UnscaledValue(ss_ext_discount_amt#61))#71, avg(UnscaledValue(ss_net_paid#62))#72] -Results [3]: [count(1)#70 AS count(1)#73, cast((avg(UnscaledValue(ss_ext_discount_amt#61))#71 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#74, cast((avg(UnscaledValue(ss_net_paid#62))#72 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#75] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#62)), avg(UnscaledValue(ss_net_paid#63))] +Aggregate Attributes [3]: [count(1)#71, avg(UnscaledValue(ss_ext_discount_amt#62))#72, avg(UnscaledValue(ss_net_paid#63))#73] +Results [3]: [count(1)#71 AS count(1)#74, cast((avg(UnscaledValue(ss_ext_discount_amt#62))#72 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#75, cast((avg(UnscaledValue(ss_net_paid#63))#73 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#76] (45) Project -Output [1]: [named_struct(count(1), count(1)#73, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#74, avg(ss_net_paid), avg(ss_net_paid)#75) AS mergedValue#76] -Input [3]: [count(1)#73, avg(ss_ext_discount_amt)#74, avg(ss_net_paid)#75] +Output [1]: [named_struct(count(1), count(1)#74, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#75, avg(ss_net_paid), avg(ss_net_paid)#76) AS mergedValue#77] +Input [3]: [count(1)#74, avg(ss_ext_discount_amt)#75, avg(ss_net_paid)#76] (46) AdaptiveSparkPlan -Output [1]: [mergedValue#76] +Output [1]: [mergedValue#77] Arguments: isFinalPlan=true Subquery:5 Hosting operator id = 4 Hosting Expression = ReusedSubquery Subquery subquery#5, [id=#6] @@ -320,97 +320,97 @@ AdaptiveSparkPlan (65) (58) Scan parquet -Output [3]: [ss_quantity#82, ss_ext_discount_amt#83, ss_net_paid#84] +Output [3]: [ss_quantity#83, ss_ext_discount_amt#84, ss_net_paid#85] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,41), LessThanOrEqual(ss_quantity,60)] ReadSchema: struct (48) InputAdapter -Input [3]: [ss_quantity#82, ss_ext_discount_amt#83, ss_net_paid#84] -Arguments: [#82, #83, #84] +Input [3]: [ss_quantity#83, ss_ext_discount_amt#84, ss_net_paid#85] +Arguments: [#83, #84, #85] (49) NativeFilter -Input [3]: [#82#82, #83#83, #84#84] -Condition : ((isnotnull(ss_quantity#82) AND (ss_quantity#82 >= 41)) AND (ss_quantity#82 <= 60)) +Input [3]: [#83#83, #84#84, #85#85] +Condition : ((isnotnull(ss_quantity#83) AND (ss_quantity#83 >= 41)) AND (ss_quantity#83 <= 60)) (50) NativeProject -Output [2]: [ss_ext_discount_amt#83, ss_net_paid#84] -Input [3]: [#82#82, #83#83, #84#84] +Output [2]: [ss_ext_discount_amt#84, ss_net_paid#85] +Input [3]: [#83#83, #84#84, #85#85] (51) NativeProject -Output [2]: [UnscaledValue(ss_ext_discount_amt#83) AS _c0#85, UnscaledValue(ss_net_paid#84) AS _c1#86] -Input [2]: [ss_ext_discount_amt#83, ss_net_paid#84] +Output [2]: [UnscaledValue(ss_ext_discount_amt#84) AS _c0#86, UnscaledValue(ss_net_paid#85) AS _c1#87] +Input [2]: [ss_ext_discount_amt#84, ss_net_paid#85] (52) NativeHashAggregate -Input [2]: [_c0#85, _c1#86] +Input [2]: [_c0#86, _c1#87] Keys: [] -Functions [3]: [partial_count(1), partial_avg(_c0#85), partial_avg(_c1#86)] -Aggregate Attributes [5]: [count#87, sum#88, count#89, sum#90, count#91] -Results [1]: [#47#47] +Functions [3]: [partial_count(1), partial_avg(_c0#86), partial_avg(_c1#87)] +Aggregate Attributes [5]: [count#88, sum#89, count#90, sum#91, count#92] +Results [5]: [#47, #48, #47, #48, #47] (53) NativeShuffleExchange -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=5] (54) ShuffleQueryStage -Output [1]: [#47#47] +Output [5]: [#47, #48, #47, #48, #47] Arguments: X (55) NativeHashAggregate -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#83)), avg(UnscaledValue(ss_net_paid#84))] -Aggregate Attributes [3]: [count(1)#92, avg(UnscaledValue(ss_ext_discount_amt#83))#93, avg(UnscaledValue(ss_net_paid#84))#94] -Results [3]: [count(1)#92, avg(UnscaledValue(ss_ext_discount_amt#83))#93, avg(UnscaledValue(ss_net_paid#84))#94] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#84)), avg(UnscaledValue(ss_net_paid#85))] +Aggregate Attributes [3]: [count(1)#93, avg(UnscaledValue(ss_ext_discount_amt#84))#94, avg(UnscaledValue(ss_net_paid#85))#95] +Results [3]: [count(1)#93, avg(UnscaledValue(ss_ext_discount_amt#84))#94, avg(UnscaledValue(ss_net_paid#85))#95] (56) NativeProject -Output [3]: [count(1)#92 AS count(1)#95, cast((avg(UnscaledValue(ss_ext_discount_amt#83))#93 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#96, cast((avg(UnscaledValue(ss_net_paid#84))#94 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#97] -Input [3]: [count(1)#92, avg(UnscaledValue(ss_ext_discount_amt#83))#93, avg(UnscaledValue(ss_net_paid#84))#94] +Output [3]: [count(1)#93 AS count(1)#96, cast((avg(UnscaledValue(ss_ext_discount_amt#84))#94 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#97, cast((avg(UnscaledValue(ss_net_paid#85))#95 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#98] +Input [3]: [count(1)#93, avg(UnscaledValue(ss_ext_discount_amt#84))#94, avg(UnscaledValue(ss_net_paid#85))#95] (57) NativeProject -Output [1]: [named_struct(count(1), count(1)#95, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#96, avg(ss_net_paid), avg(ss_net_paid)#97) AS mergedValue#98] -Input [3]: [count(1)#95, avg(ss_ext_discount_amt)#96, avg(ss_net_paid)#97] +Output [1]: [named_struct(count(1), count(1)#96, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#97, avg(ss_net_paid), avg(ss_net_paid)#98) AS mergedValue#99] +Input [3]: [count(1)#96, avg(ss_ext_discount_amt)#97, avg(ss_net_paid)#98] (58) Scan parquet -Output [3]: [ss_quantity#82, ss_ext_discount_amt#83, ss_net_paid#84] +Output [3]: [ss_quantity#83, ss_ext_discount_amt#84, ss_net_paid#85] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,41), LessThanOrEqual(ss_quantity,60)] ReadSchema: struct (59) Filter -Input [3]: [ss_quantity#82, ss_ext_discount_amt#83, ss_net_paid#84] -Condition : ((isnotnull(ss_quantity#82) AND (ss_quantity#82 >= 41)) AND (ss_quantity#82 <= 60)) +Input [3]: [ss_quantity#83, ss_ext_discount_amt#84, ss_net_paid#85] +Condition : ((isnotnull(ss_quantity#83) AND (ss_quantity#83 >= 41)) AND (ss_quantity#83 <= 60)) (60) Project -Output [2]: [ss_ext_discount_amt#83, ss_net_paid#84] -Input [3]: [ss_quantity#82, ss_ext_discount_amt#83, ss_net_paid#84] +Output [2]: [ss_ext_discount_amt#84, ss_net_paid#85] +Input [3]: [ss_quantity#83, ss_ext_discount_amt#84, ss_net_paid#85] (61) HashAggregate -Input [2]: [ss_ext_discount_amt#83, ss_net_paid#84] +Input [2]: [ss_ext_discount_amt#84, ss_net_paid#85] Keys: [] -Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#83)), partial_avg(UnscaledValue(ss_net_paid#84))] -Aggregate Attributes [5]: [count#87, sum#88, count#89, sum#90, count#91] -Results [5]: [count#99, sum#100, count#101, sum#102, count#103] +Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#84)), partial_avg(UnscaledValue(ss_net_paid#85))] +Aggregate Attributes [5]: [count#88, sum#89, count#90, sum#91, count#92] +Results [5]: [count#100, sum#101, count#102, sum#103, count#104] (62) Exchange -Input [5]: [count#99, sum#100, count#101, sum#102, count#103] +Input [5]: [count#100, sum#101, count#102, sum#103, count#104] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6] (63) HashAggregate -Input [5]: [count#99, sum#100, count#101, sum#102, count#103] +Input [5]: [count#100, sum#101, count#102, sum#103, count#104] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#83)), avg(UnscaledValue(ss_net_paid#84))] -Aggregate Attributes [3]: [count(1)#92, avg(UnscaledValue(ss_ext_discount_amt#83))#93, avg(UnscaledValue(ss_net_paid#84))#94] -Results [3]: [count(1)#92 AS count(1)#95, cast((avg(UnscaledValue(ss_ext_discount_amt#83))#93 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#96, cast((avg(UnscaledValue(ss_net_paid#84))#94 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#97] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#84)), avg(UnscaledValue(ss_net_paid#85))] +Aggregate Attributes [3]: [count(1)#93, avg(UnscaledValue(ss_ext_discount_amt#84))#94, avg(UnscaledValue(ss_net_paid#85))#95] +Results [3]: [count(1)#93 AS count(1)#96, cast((avg(UnscaledValue(ss_ext_discount_amt#84))#94 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#97, cast((avg(UnscaledValue(ss_net_paid#85))#95 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#98] (64) Project -Output [1]: [named_struct(count(1), count(1)#95, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#96, avg(ss_net_paid), avg(ss_net_paid)#97) AS mergedValue#98] -Input [3]: [count(1)#95, avg(ss_ext_discount_amt)#96, avg(ss_net_paid)#97] +Output [1]: [named_struct(count(1), count(1)#96, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#97, avg(ss_net_paid), avg(ss_net_paid)#98) AS mergedValue#99] +Input [3]: [count(1)#96, avg(ss_ext_discount_amt)#97, avg(ss_net_paid)#98] (65) AdaptiveSparkPlan -Output [1]: [mergedValue#98] +Output [1]: [mergedValue#99] Arguments: isFinalPlan=true Subquery:8 Hosting operator id = 4 Hosting Expression = ReusedSubquery Subquery subquery#8, [id=#9] @@ -442,97 +442,97 @@ AdaptiveSparkPlan (84) (77) Scan parquet -Output [3]: [ss_quantity#104, ss_ext_discount_amt#105, ss_net_paid#106] +Output [3]: [ss_quantity#105, ss_ext_discount_amt#106, ss_net_paid#107] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,61), LessThanOrEqual(ss_quantity,80)] ReadSchema: struct (67) InputAdapter -Input [3]: [ss_quantity#104, ss_ext_discount_amt#105, ss_net_paid#106] -Arguments: [#104, #105, #106] +Input [3]: [ss_quantity#105, ss_ext_discount_amt#106, ss_net_paid#107] +Arguments: [#105, #106, #107] (68) NativeFilter -Input [3]: [#104#104, #105#105, #106#106] -Condition : ((isnotnull(ss_quantity#104) AND (ss_quantity#104 >= 61)) AND (ss_quantity#104 <= 80)) +Input [3]: [#105#105, #106#106, #107#107] +Condition : ((isnotnull(ss_quantity#105) AND (ss_quantity#105 >= 61)) AND (ss_quantity#105 <= 80)) (69) NativeProject -Output [2]: [ss_ext_discount_amt#105, ss_net_paid#106] -Input [3]: [#104#104, #105#105, #106#106] +Output [2]: [ss_ext_discount_amt#106, ss_net_paid#107] +Input [3]: [#105#105, #106#106, #107#107] (70) NativeProject -Output [2]: [UnscaledValue(ss_ext_discount_amt#105) AS _c0#107, UnscaledValue(ss_net_paid#106) AS _c1#108] -Input [2]: [ss_ext_discount_amt#105, ss_net_paid#106] +Output [2]: [UnscaledValue(ss_ext_discount_amt#106) AS _c0#108, UnscaledValue(ss_net_paid#107) AS _c1#109] +Input [2]: [ss_ext_discount_amt#106, ss_net_paid#107] (71) NativeHashAggregate -Input [2]: [_c0#107, _c1#108] +Input [2]: [_c0#108, _c1#109] Keys: [] -Functions [3]: [partial_count(1), partial_avg(_c0#107), partial_avg(_c1#108)] -Aggregate Attributes [5]: [count#109, sum#110, count#111, sum#112, count#113] -Results [1]: [#47#47] +Functions [3]: [partial_count(1), partial_avg(_c0#108), partial_avg(_c1#109)] +Aggregate Attributes [5]: [count#110, sum#111, count#112, sum#113, count#114] +Results [5]: [#47, #48, #47, #48, #47] (72) NativeShuffleExchange -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (73) ShuffleQueryStage -Output [1]: [#47#47] +Output [5]: [#47, #48, #47, #48, #47] Arguments: X (74) NativeHashAggregate -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#105)), avg(UnscaledValue(ss_net_paid#106))] -Aggregate Attributes [3]: [count(1)#114, avg(UnscaledValue(ss_ext_discount_amt#105))#115, avg(UnscaledValue(ss_net_paid#106))#116] -Results [3]: [count(1)#114, avg(UnscaledValue(ss_ext_discount_amt#105))#115, avg(UnscaledValue(ss_net_paid#106))#116] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#106)), avg(UnscaledValue(ss_net_paid#107))] +Aggregate Attributes [3]: [count(1)#115, avg(UnscaledValue(ss_ext_discount_amt#106))#116, avg(UnscaledValue(ss_net_paid#107))#117] +Results [3]: [count(1)#115, avg(UnscaledValue(ss_ext_discount_amt#106))#116, avg(UnscaledValue(ss_net_paid#107))#117] (75) NativeProject -Output [3]: [count(1)#114 AS count(1)#117, cast((avg(UnscaledValue(ss_ext_discount_amt#105))#115 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#118, cast((avg(UnscaledValue(ss_net_paid#106))#116 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#119] -Input [3]: [count(1)#114, avg(UnscaledValue(ss_ext_discount_amt#105))#115, avg(UnscaledValue(ss_net_paid#106))#116] +Output [3]: [count(1)#115 AS count(1)#118, cast((avg(UnscaledValue(ss_ext_discount_amt#106))#116 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#119, cast((avg(UnscaledValue(ss_net_paid#107))#117 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#120] +Input [3]: [count(1)#115, avg(UnscaledValue(ss_ext_discount_amt#106))#116, avg(UnscaledValue(ss_net_paid#107))#117] (76) NativeProject -Output [1]: [named_struct(count(1), count(1)#117, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#118, avg(ss_net_paid), avg(ss_net_paid)#119) AS mergedValue#120] -Input [3]: [count(1)#117, avg(ss_ext_discount_amt)#118, avg(ss_net_paid)#119] +Output [1]: [named_struct(count(1), count(1)#118, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#119, avg(ss_net_paid), avg(ss_net_paid)#120) AS mergedValue#121] +Input [3]: [count(1)#118, avg(ss_ext_discount_amt)#119, avg(ss_net_paid)#120] (77) Scan parquet -Output [3]: [ss_quantity#104, ss_ext_discount_amt#105, ss_net_paid#106] +Output [3]: [ss_quantity#105, ss_ext_discount_amt#106, ss_net_paid#107] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,61), LessThanOrEqual(ss_quantity,80)] ReadSchema: struct (78) Filter -Input [3]: [ss_quantity#104, ss_ext_discount_amt#105, ss_net_paid#106] -Condition : ((isnotnull(ss_quantity#104) AND (ss_quantity#104 >= 61)) AND (ss_quantity#104 <= 80)) +Input [3]: [ss_quantity#105, ss_ext_discount_amt#106, ss_net_paid#107] +Condition : ((isnotnull(ss_quantity#105) AND (ss_quantity#105 >= 61)) AND (ss_quantity#105 <= 80)) (79) Project -Output [2]: [ss_ext_discount_amt#105, ss_net_paid#106] -Input [3]: [ss_quantity#104, ss_ext_discount_amt#105, ss_net_paid#106] +Output [2]: [ss_ext_discount_amt#106, ss_net_paid#107] +Input [3]: [ss_quantity#105, ss_ext_discount_amt#106, ss_net_paid#107] (80) HashAggregate -Input [2]: [ss_ext_discount_amt#105, ss_net_paid#106] +Input [2]: [ss_ext_discount_amt#106, ss_net_paid#107] Keys: [] -Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#105)), partial_avg(UnscaledValue(ss_net_paid#106))] -Aggregate Attributes [5]: [count#109, sum#110, count#111, sum#112, count#113] -Results [5]: [count#121, sum#122, count#123, sum#124, count#125] +Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#106)), partial_avg(UnscaledValue(ss_net_paid#107))] +Aggregate Attributes [5]: [count#110, sum#111, count#112, sum#113, count#114] +Results [5]: [count#122, sum#123, count#124, sum#125, count#126] (81) Exchange -Input [5]: [count#121, sum#122, count#123, sum#124, count#125] +Input [5]: [count#122, sum#123, count#124, sum#125, count#126] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=8] (82) HashAggregate -Input [5]: [count#121, sum#122, count#123, sum#124, count#125] +Input [5]: [count#122, sum#123, count#124, sum#125, count#126] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#105)), avg(UnscaledValue(ss_net_paid#106))] -Aggregate Attributes [3]: [count(1)#114, avg(UnscaledValue(ss_ext_discount_amt#105))#115, avg(UnscaledValue(ss_net_paid#106))#116] -Results [3]: [count(1)#114 AS count(1)#117, cast((avg(UnscaledValue(ss_ext_discount_amt#105))#115 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#118, cast((avg(UnscaledValue(ss_net_paid#106))#116 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#119] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#106)), avg(UnscaledValue(ss_net_paid#107))] +Aggregate Attributes [3]: [count(1)#115, avg(UnscaledValue(ss_ext_discount_amt#106))#116, avg(UnscaledValue(ss_net_paid#107))#117] +Results [3]: [count(1)#115 AS count(1)#118, cast((avg(UnscaledValue(ss_ext_discount_amt#106))#116 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#119, cast((avg(UnscaledValue(ss_net_paid#107))#117 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#120] (83) Project -Output [1]: [named_struct(count(1), count(1)#117, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#118, avg(ss_net_paid), avg(ss_net_paid)#119) AS mergedValue#120] -Input [3]: [count(1)#117, avg(ss_ext_discount_amt)#118, avg(ss_net_paid)#119] +Output [1]: [named_struct(count(1), count(1)#118, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#119, avg(ss_net_paid), avg(ss_net_paid)#120) AS mergedValue#121] +Input [3]: [count(1)#118, avg(ss_ext_discount_amt)#119, avg(ss_net_paid)#120] (84) AdaptiveSparkPlan -Output [1]: [mergedValue#120] +Output [1]: [mergedValue#121] Arguments: isFinalPlan=true Subquery:11 Hosting operator id = 4 Hosting Expression = ReusedSubquery Subquery subquery#11, [id=#12] @@ -564,97 +564,97 @@ AdaptiveSparkPlan (103) (96) Scan parquet -Output [3]: [ss_quantity#126, ss_ext_discount_amt#127, ss_net_paid#128] +Output [3]: [ss_quantity#127, ss_ext_discount_amt#128, ss_net_paid#129] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,81), LessThanOrEqual(ss_quantity,100)] ReadSchema: struct (86) InputAdapter -Input [3]: [ss_quantity#126, ss_ext_discount_amt#127, ss_net_paid#128] -Arguments: [#126, #127, #128] +Input [3]: [ss_quantity#127, ss_ext_discount_amt#128, ss_net_paid#129] +Arguments: [#127, #128, #129] (87) NativeFilter -Input [3]: [#126#126, #127#127, #128#128] -Condition : ((isnotnull(ss_quantity#126) AND (ss_quantity#126 >= 81)) AND (ss_quantity#126 <= 100)) +Input [3]: [#127#127, #128#128, #129#129] +Condition : ((isnotnull(ss_quantity#127) AND (ss_quantity#127 >= 81)) AND (ss_quantity#127 <= 100)) (88) NativeProject -Output [2]: [ss_ext_discount_amt#127, ss_net_paid#128] -Input [3]: [#126#126, #127#127, #128#128] +Output [2]: [ss_ext_discount_amt#128, ss_net_paid#129] +Input [3]: [#127#127, #128#128, #129#129] (89) NativeProject -Output [2]: [UnscaledValue(ss_ext_discount_amt#127) AS _c0#129, UnscaledValue(ss_net_paid#128) AS _c1#130] -Input [2]: [ss_ext_discount_amt#127, ss_net_paid#128] +Output [2]: [UnscaledValue(ss_ext_discount_amt#128) AS _c0#130, UnscaledValue(ss_net_paid#129) AS _c1#131] +Input [2]: [ss_ext_discount_amt#128, ss_net_paid#129] (90) NativeHashAggregate -Input [2]: [_c0#129, _c1#130] +Input [2]: [_c0#130, _c1#131] Keys: [] -Functions [3]: [partial_count(1), partial_avg(_c0#129), partial_avg(_c1#130)] -Aggregate Attributes [5]: [count#131, sum#132, count#133, sum#134, count#135] -Results [1]: [#47#47] +Functions [3]: [partial_count(1), partial_avg(_c0#130), partial_avg(_c1#131)] +Aggregate Attributes [5]: [count#132, sum#133, count#134, sum#135, count#136] +Results [5]: [#47, #48, #47, #48, #47] (91) NativeShuffleExchange -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=9] (92) ShuffleQueryStage -Output [1]: [#47#47] +Output [5]: [#47, #48, #47, #48, #47] Arguments: X (93) NativeHashAggregate -Input [1]: [#47#47] +Input [5]: [#47, #48, #47, #48, #47] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#127)), avg(UnscaledValue(ss_net_paid#128))] -Aggregate Attributes [3]: [count(1)#136, avg(UnscaledValue(ss_ext_discount_amt#127))#137, avg(UnscaledValue(ss_net_paid#128))#138] -Results [3]: [count(1)#136, avg(UnscaledValue(ss_ext_discount_amt#127))#137, avg(UnscaledValue(ss_net_paid#128))#138] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#128)), avg(UnscaledValue(ss_net_paid#129))] +Aggregate Attributes [3]: [count(1)#137, avg(UnscaledValue(ss_ext_discount_amt#128))#138, avg(UnscaledValue(ss_net_paid#129))#139] +Results [3]: [count(1)#137, avg(UnscaledValue(ss_ext_discount_amt#128))#138, avg(UnscaledValue(ss_net_paid#129))#139] (94) NativeProject -Output [3]: [count(1)#136 AS count(1)#139, cast((avg(UnscaledValue(ss_ext_discount_amt#127))#137 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#140, cast((avg(UnscaledValue(ss_net_paid#128))#138 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#141] -Input [3]: [count(1)#136, avg(UnscaledValue(ss_ext_discount_amt#127))#137, avg(UnscaledValue(ss_net_paid#128))#138] +Output [3]: [count(1)#137 AS count(1)#140, cast((avg(UnscaledValue(ss_ext_discount_amt#128))#138 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#141, cast((avg(UnscaledValue(ss_net_paid#129))#139 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#142] +Input [3]: [count(1)#137, avg(UnscaledValue(ss_ext_discount_amt#128))#138, avg(UnscaledValue(ss_net_paid#129))#139] (95) NativeProject -Output [1]: [named_struct(count(1), count(1)#139, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#140, avg(ss_net_paid), avg(ss_net_paid)#141) AS mergedValue#142] -Input [3]: [count(1)#139, avg(ss_ext_discount_amt)#140, avg(ss_net_paid)#141] +Output [1]: [named_struct(count(1), count(1)#140, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#141, avg(ss_net_paid), avg(ss_net_paid)#142) AS mergedValue#143] +Input [3]: [count(1)#140, avg(ss_ext_discount_amt)#141, avg(ss_net_paid)#142] (96) Scan parquet -Output [3]: [ss_quantity#126, ss_ext_discount_amt#127, ss_net_paid#128] +Output [3]: [ss_quantity#127, ss_ext_discount_amt#128, ss_net_paid#129] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(ss_quantity), GreaterThanOrEqual(ss_quantity,81), LessThanOrEqual(ss_quantity,100)] ReadSchema: struct (97) Filter -Input [3]: [ss_quantity#126, ss_ext_discount_amt#127, ss_net_paid#128] -Condition : ((isnotnull(ss_quantity#126) AND (ss_quantity#126 >= 81)) AND (ss_quantity#126 <= 100)) +Input [3]: [ss_quantity#127, ss_ext_discount_amt#128, ss_net_paid#129] +Condition : ((isnotnull(ss_quantity#127) AND (ss_quantity#127 >= 81)) AND (ss_quantity#127 <= 100)) (98) Project -Output [2]: [ss_ext_discount_amt#127, ss_net_paid#128] -Input [3]: [ss_quantity#126, ss_ext_discount_amt#127, ss_net_paid#128] +Output [2]: [ss_ext_discount_amt#128, ss_net_paid#129] +Input [3]: [ss_quantity#127, ss_ext_discount_amt#128, ss_net_paid#129] (99) HashAggregate -Input [2]: [ss_ext_discount_amt#127, ss_net_paid#128] +Input [2]: [ss_ext_discount_amt#128, ss_net_paid#129] Keys: [] -Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#127)), partial_avg(UnscaledValue(ss_net_paid#128))] -Aggregate Attributes [5]: [count#131, sum#132, count#133, sum#134, count#135] -Results [5]: [count#143, sum#144, count#145, sum#146, count#147] +Functions [3]: [partial_count(1), partial_avg(UnscaledValue(ss_ext_discount_amt#128)), partial_avg(UnscaledValue(ss_net_paid#129))] +Aggregate Attributes [5]: [count#132, sum#133, count#134, sum#135, count#136] +Results [5]: [count#144, sum#145, count#146, sum#147, count#148] (100) Exchange -Input [5]: [count#143, sum#144, count#145, sum#146, count#147] +Input [5]: [count#144, sum#145, count#146, sum#147, count#148] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (101) HashAggregate -Input [5]: [count#143, sum#144, count#145, sum#146, count#147] +Input [5]: [count#144, sum#145, count#146, sum#147, count#148] Keys: [] -Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#127)), avg(UnscaledValue(ss_net_paid#128))] -Aggregate Attributes [3]: [count(1)#136, avg(UnscaledValue(ss_ext_discount_amt#127))#137, avg(UnscaledValue(ss_net_paid#128))#138] -Results [3]: [count(1)#136 AS count(1)#139, cast((avg(UnscaledValue(ss_ext_discount_amt#127))#137 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#140, cast((avg(UnscaledValue(ss_net_paid#128))#138 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#141] +Functions [3]: [count(1), avg(UnscaledValue(ss_ext_discount_amt#128)), avg(UnscaledValue(ss_net_paid#129))] +Aggregate Attributes [3]: [count(1)#137, avg(UnscaledValue(ss_ext_discount_amt#128))#138, avg(UnscaledValue(ss_net_paid#129))#139] +Results [3]: [count(1)#137 AS count(1)#140, cast((avg(UnscaledValue(ss_ext_discount_amt#128))#138 / 100.0) as decimal(11,6)) AS avg(ss_ext_discount_amt)#141, cast((avg(UnscaledValue(ss_net_paid#129))#139 / 100.0) as decimal(11,6)) AS avg(ss_net_paid)#142] (102) Project -Output [1]: [named_struct(count(1), count(1)#139, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#140, avg(ss_net_paid), avg(ss_net_paid)#141) AS mergedValue#142] -Input [3]: [count(1)#139, avg(ss_ext_discount_amt)#140, avg(ss_net_paid)#141] +Output [1]: [named_struct(count(1), count(1)#140, avg(ss_ext_discount_amt), avg(ss_ext_discount_amt)#141, avg(ss_net_paid), avg(ss_net_paid)#142) AS mergedValue#143] +Input [3]: [count(1)#140, avg(ss_ext_discount_amt)#141, avg(ss_net_paid)#142] (103) AdaptiveSparkPlan -Output [1]: [mergedValue#142] +Output [1]: [mergedValue#143] Arguments: isFinalPlan=true Subquery:14 Hosting operator id = 4 Hosting Expression = ReusedSubquery Subquery subquery#14, [id=#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt index d8a3027f9..f0c7e953f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt @@ -384,18 +384,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#10] -Results [1]: [#11#11] +Results [1]: [#11] (53) NativeShuffleExchange -Input [1]: [#11#11] +Input [1]: [#11] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [1]: [#11#11] +Output [1]: [#11] Arguments: X (55) NativeHashAggregate -Input [1]: [#11#11] +Input [1]: [#11] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#12] @@ -531,18 +531,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#19] -Results [1]: [#11#11] +Results [1]: [#11] (88) NativeShuffleExchange -Input [1]: [#11#11] +Input [1]: [#11] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=10] (89) ShuffleQueryStage -Output [1]: [#11#11] +Output [1]: [#11] Arguments: X (90) NativeHashAggregate -Input [1]: [#11#11] +Input [1]: [#11] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#20] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q91.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q91.txt index 1ad82001a..695b2f876 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q91.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q91.txt @@ -580,25 +580,25 @@ Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, Keys [5]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20] Functions [1]: [partial_sum(_c5#23)] Aggregate Attributes [1]: [sum#24] -Results [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Results [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] (99) NativeShuffleExchange -Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] Arguments: hashpartitioning(cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, 100), ENSURE_REQUIREMENTS, [plan_id=13] (100) ShuffleQueryStage -Output [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Output [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] Arguments: X (101) AQEShuffleRead -Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] Arguments: coalesced (102) InputAdapter -Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] (103) NativeHashAggregate -Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25#25] +Input [6]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20, #25] Keys [5]: [cc_call_center_id#2, cc_name#3, cc_manager#4, cd_marital_status#19, cd_education_status#20] Functions [1]: [sum(UnscaledValue(cr_net_loss#8))] Aggregate Attributes [1]: [sum(UnscaledValue(cr_net_loss#8))#26] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt index b9c1a72db..2e0bf8dd6 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt @@ -288,51 +288,51 @@ Input [2]: [ws_item_sk#7, _c1#11] Keys [1]: [ws_item_sk#7] Functions [1]: [partial_avg(_c1#11)] Aggregate Attributes [2]: [sum#12, count#13] -Results [2]: [ws_item_sk#7, #14#14] +Results [3]: [ws_item_sk#7, #14, #15] (41) NativeShuffleExchange -Input [2]: [ws_item_sk#7, #14#14] +Input [3]: [ws_item_sk#7, #14, #15] Arguments: hashpartitioning(ws_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=5] (42) ShuffleQueryStage -Output [2]: [ws_item_sk#7, #14#14] +Output [3]: [ws_item_sk#7, #14, #15] Arguments: X (43) AQEShuffleRead -Input [2]: [ws_item_sk#7, #14#14] +Input [3]: [ws_item_sk#7, #14, #15] Arguments: coalesced (44) InputAdapter -Input [2]: [ws_item_sk#7, #14#14] +Input [3]: [ws_item_sk#7, #14, #15] (45) NativeHashAggregate -Input [2]: [ws_item_sk#7, #14#14] +Input [3]: [ws_item_sk#7, #14, #15] Keys [1]: [ws_item_sk#7] Functions [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))] -Aggregate Attributes [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))#15] -Results [2]: [ws_item_sk#7, avg(UnscaledValue(ws_ext_discount_amt#8))#15] +Aggregate Attributes [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))#16] +Results [2]: [ws_item_sk#7, avg(UnscaledValue(ws_ext_discount_amt#8))#16] (46) NativeProject -Output [2]: [(1.3 * cast((avg(UnscaledValue(ws_ext_discount_amt#8))#15 / 100.0) as decimal(11,6))) AS (1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] -Input [2]: [ws_item_sk#7, avg(UnscaledValue(ws_ext_discount_amt#8))#15] +Output [2]: [(1.3 * cast((avg(UnscaledValue(ws_ext_discount_amt#8))#16 / 100.0) as decimal(11,6))) AS (1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] +Input [2]: [ws_item_sk#7, avg(UnscaledValue(ws_ext_discount_amt#8))#16] (47) NativeFilter -Input [2]: [(1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] -Condition : isnotnull((1.3 * avg(ws_ext_discount_amt))#16) +Input [2]: [(1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] +Condition : isnotnull((1.3 * avg(ws_ext_discount_amt))#17) (48) NativeSort -Input [2]: [(1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] +Input [2]: [(1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] Arguments: [ws_item_sk#7 ASC NULLS FIRST], false (49) SortMergeJoin [codegen id : X] Left keys [1]: [i_item_sk#4] Right keys [1]: [ws_item_sk#7] Join type: Inner -Join condition: (cast(ws_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(ws_ext_discount_amt))#16) +Join condition: (cast(ws_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(ws_ext_discount_amt))#17) (50) Project [codegen id : X] Output [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] -Input [5]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] +Input [5]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] (51) ConvertToNative Input [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] @@ -357,66 +357,66 @@ Input [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] Arguments: [ws_sold_date_sk#1 ASC NULLS FIRST], false (57) ReusedExchange [Reuses operator id: 32] -Output [1]: [d_date_sk#17] +Output [1]: [d_date_sk#18] (58) ShuffleQueryStage -Output [1]: [d_date_sk#17] +Output [1]: [d_date_sk#18] Arguments: X (59) AQEShuffleRead -Input [1]: [d_date_sk#17] +Input [1]: [d_date_sk#18] Arguments: coalesced (60) InputAdapter -Input [1]: [d_date_sk#17] -Arguments: [#17] +Input [1]: [d_date_sk#18] +Arguments: [#18] (61) InputAdapter -Input [1]: [#17#17] +Input [1]: [#18#18] (62) NativeSort -Input [1]: [#17#17] -Arguments: [d_date_sk#17 ASC NULLS FIRST], false +Input [1]: [#18#18] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false (63) NativeSortMergeJoin Left keys [1]: [ws_sold_date_sk#1] -Right keys [1]: [d_date_sk#17] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (64) NativeProject Output [1]: [ws_ext_discount_amt#3] -Input [3]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, #17#17] +Input [3]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, #18#18] (65) NativeProject -Output [1]: [UnscaledValue(ws_ext_discount_amt#3) AS _c0#18] +Output [1]: [UnscaledValue(ws_ext_discount_amt#3) AS _c0#19] Input [1]: [ws_ext_discount_amt#3] (66) NativeHashAggregate -Input [1]: [_c0#18] +Input [1]: [_c0#19] Keys: [] -Functions [1]: [partial_sum(_c0#18)] -Aggregate Attributes [1]: [sum#19] -Results [1]: [#14#14] +Functions [1]: [partial_sum(_c0#19)] +Aggregate Attributes [1]: [sum#20] +Results [1]: [#15] (67) NativeShuffleExchange -Input [1]: [#14#14] +Input [1]: [#15] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (68) ShuffleQueryStage -Output [1]: [#14#14] +Output [1]: [#15] Arguments: X (69) NativeHashAggregate -Input [1]: [#14#14] +Input [1]: [#15] Keys: [] Functions [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#20] -Results [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#20] +Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#21] +Results [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#21] (70) NativeProject -Output [1]: [MakeDecimal(sum(UnscaledValue(ws_ext_discount_amt#3))#20,17,2) AS Excess Discount Amount #21] -Input [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#20] +Output [1]: [MakeDecimal(sum(UnscaledValue(ws_ext_discount_amt#3))#21,17,2) AS Excess Discount Amount #22] +Input [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#21] (71) Scan parquet Output [3]: [ws_sold_date_sk#1, ws_item_sk#2, ws_ext_discount_amt#3] @@ -527,36 +527,36 @@ Input [2]: [ws_item_sk#7, ws_ext_discount_amt#8] Keys [1]: [ws_item_sk#7] Functions [1]: [partial_avg(UnscaledValue(ws_ext_discount_amt#8))] Aggregate Attributes [2]: [sum#12, count#13] -Results [3]: [ws_item_sk#7, sum#22, count#23] +Results [3]: [ws_item_sk#7, sum#23, count#24] (94) Exchange -Input [3]: [ws_item_sk#7, sum#22, count#23] +Input [3]: [ws_item_sk#7, sum#23, count#24] Arguments: hashpartitioning(ws_item_sk#7, 100), ENSURE_REQUIREMENTS, [plan_id=12] (95) HashAggregate -Input [3]: [ws_item_sk#7, sum#22, count#23] +Input [3]: [ws_item_sk#7, sum#23, count#24] Keys [1]: [ws_item_sk#7] Functions [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))] -Aggregate Attributes [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))#15] -Results [2]: [(1.3 * cast((avg(UnscaledValue(ws_ext_discount_amt#8))#15 / 100.0) as decimal(11,6))) AS (1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] +Aggregate Attributes [1]: [avg(UnscaledValue(ws_ext_discount_amt#8))#16] +Results [2]: [(1.3 * cast((avg(UnscaledValue(ws_ext_discount_amt#8))#16 / 100.0) as decimal(11,6))) AS (1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] (96) Filter -Input [2]: [(1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] -Condition : isnotnull((1.3 * avg(ws_ext_discount_amt))#16) +Input [2]: [(1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] +Condition : isnotnull((1.3 * avg(ws_ext_discount_amt))#17) (97) Sort -Input [2]: [(1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] +Input [2]: [(1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] Arguments: [ws_item_sk#7 ASC NULLS FIRST], false, 0 (98) SortMergeJoin Left keys [1]: [i_item_sk#4] Right keys [1]: [ws_item_sk#7] Join type: Inner -Join condition: (cast(ws_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(ws_ext_discount_amt))#16) +Join condition: (cast(ws_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(ws_ext_discount_amt))#17) (99) Project Output [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] -Input [5]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] +Input [5]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(ws_ext_discount_amt))#17, ws_item_sk#7] (100) Exchange Input [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] @@ -567,57 +567,57 @@ Input [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] Arguments: [ws_sold_date_sk#1 ASC NULLS FIRST], false, 0 (102) Scan parquet -Output [2]: [d_date_sk#17, d_date#24] +Output [2]: [d_date_sk#18, d_date#25] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,2000-01-27), LessThanOrEqual(d_date,2000-04-26), IsNotNull(d_date_sk)] ReadSchema: struct (103) Filter -Input [2]: [d_date_sk#17, d_date#24] -Condition : (((isnotnull(d_date#24) AND (d_date#24 >= 2000-01-27)) AND (d_date#24 <= 2000-04-26)) AND isnotnull(d_date_sk#17)) +Input [2]: [d_date_sk#18, d_date#25] +Condition : (((isnotnull(d_date#25) AND (d_date#25 >= 2000-01-27)) AND (d_date#25 <= 2000-04-26)) AND isnotnull(d_date_sk#18)) (104) Project -Output [1]: [d_date_sk#17] -Input [2]: [d_date_sk#17, d_date#24] +Output [1]: [d_date_sk#18] +Input [2]: [d_date_sk#18, d_date#25] (105) Exchange -Input [1]: [d_date_sk#17] -Arguments: hashpartitioning(d_date_sk#17, 100), ENSURE_REQUIREMENTS, [plan_id=14] +Input [1]: [d_date_sk#18] +Arguments: hashpartitioning(d_date_sk#18, 100), ENSURE_REQUIREMENTS, [plan_id=14] (106) Sort -Input [1]: [d_date_sk#17] -Arguments: [d_date_sk#17 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#18] +Arguments: [d_date_sk#18 ASC NULLS FIRST], false, 0 (107) SortMergeJoin Left keys [1]: [ws_sold_date_sk#1] -Right keys [1]: [d_date_sk#17] +Right keys [1]: [d_date_sk#18] Join type: Inner Join condition: None (108) Project Output [1]: [ws_ext_discount_amt#3] -Input [3]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, d_date_sk#17] +Input [3]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, d_date_sk#18] (109) HashAggregate Input [1]: [ws_ext_discount_amt#3] Keys: [] Functions [1]: [partial_sum(UnscaledValue(ws_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum#19] -Results [1]: [sum#25] +Aggregate Attributes [1]: [sum#20] +Results [1]: [sum#26] (110) Exchange -Input [1]: [sum#25] +Input [1]: [sum#26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=15] (111) HashAggregate -Input [1]: [sum#25] +Input [1]: [sum#26] Keys: [] Functions [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))] -Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#20] -Results [1]: [MakeDecimal(sum(UnscaledValue(ws_ext_discount_amt#3))#20,17,2) AS Excess Discount Amount #21] +Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_discount_amt#3))#21] +Results [1]: [MakeDecimal(sum(UnscaledValue(ws_ext_discount_amt#3))#21,17,2) AS Excess Discount Amount #22] (112) AdaptiveSparkPlan -Output [1]: [Excess Discount Amount #21] +Output [1]: [Excess Discount Amount #22] Arguments: isFinalPlan=true diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q93.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q93.txt index 43760056a..bbf2f51f3 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q93.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q93.txt @@ -212,25 +212,25 @@ Input [2]: [ss_customer_sk#2, act_sales#12] Keys [1]: [ss_customer_sk#2] Functions [1]: [partial_sum(act_sales#12)] Aggregate Attributes [2]: [sum#13, isEmpty#14] -Results [2]: [ss_customer_sk#2, #15#15] +Results [2]: [ss_customer_sk#2, #15] (35) NativeShuffleExchange -Input [2]: [ss_customer_sk#2, #15#15] +Input [2]: [ss_customer_sk#2, #15] Arguments: hashpartitioning(ss_customer_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=5] (36) ShuffleQueryStage -Output [2]: [ss_customer_sk#2, #15#15] +Output [2]: [ss_customer_sk#2, #15] Arguments: X (37) AQEShuffleRead -Input [2]: [ss_customer_sk#2, #15#15] +Input [2]: [ss_customer_sk#2, #15] Arguments: coalesced (38) InputAdapter -Input [2]: [ss_customer_sk#2, #15#15] +Input [2]: [ss_customer_sk#2, #15] (39) NativeHashAggregate -Input [2]: [ss_customer_sk#2, #15#15] +Input [2]: [ss_customer_sk#2, #15] Keys [1]: [ss_customer_sk#2] Functions [1]: [sum(act_sales#12)] Aggregate Attributes [1]: [sum(act_sales#12)#16] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt index e7ee656a2..94824b3bc 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt @@ -457,47 +457,47 @@ Input [3]: [ws_order_number#5, _c1#17, _c2#18] Keys [1]: [ws_order_number#5] Functions [2]: [partial_sum(_c1#17), partial_sum(_c2#18)] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_ship_cost#6))#19, sum(UnscaledValue(ws_net_profit#7))#20] -Results [2]: [ws_order_number#5, #21#21] +Results [3]: [ws_order_number#5, #21, #21] (77) NativeShuffleExchange -Input [2]: [ws_order_number#5, #21#21] +Input [3]: [ws_order_number#5, #21, #21] Arguments: hashpartitioning(ws_order_number#5, 100), ENSURE_REQUIREMENTS, [plan_id=10] (78) ShuffleQueryStage -Output [2]: [ws_order_number#5, #21#21] +Output [3]: [ws_order_number#5, #21, #21] Arguments: X (79) AQEShuffleRead -Input [2]: [ws_order_number#5, #21#21] +Input [3]: [ws_order_number#5, #21, #21] Arguments: coalesced (80) InputAdapter -Input [2]: [ws_order_number#5, #21#21] +Input [3]: [ws_order_number#5, #21, #21] (81) NativeHashAggregate -Input [2]: [ws_order_number#5, #21#21] +Input [3]: [ws_order_number#5, #21, #21] Keys [1]: [ws_order_number#5] Functions [2]: [merge_sum(UnscaledValue(ws_ext_ship_cost#6)), merge_sum(UnscaledValue(ws_net_profit#7))] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_ship_cost#6))#19, sum(UnscaledValue(ws_net_profit#7))#20] -Results [2]: [ws_order_number#5, #21#21] +Results [3]: [ws_order_number#5, #21, #21] (82) NativeHashAggregate -Input [2]: [ws_order_number#5, #21#21] +Input [3]: [ws_order_number#5, #21, #21] Keys: [] Functions [3]: [merge_sum(UnscaledValue(ws_ext_ship_cost#6)), merge_sum(UnscaledValue(ws_net_profit#7)), partial_count(distinct ws_order_number#5)] Aggregate Attributes [3]: [sum(UnscaledValue(ws_ext_ship_cost#6))#19, sum(UnscaledValue(ws_net_profit#7))#20, count(ws_order_number#5)#22] -Results [1]: [#21#21] +Results [3]: [#21, #21, #21] (83) NativeShuffleExchange -Input [1]: [#21#21] +Input [3]: [#21, #21, #21] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=11] (84) ShuffleQueryStage -Output [1]: [#21#21] +Output [3]: [#21, #21, #21] Arguments: X (85) NativeHashAggregate -Input [1]: [#21#21] +Input [3]: [#21, #21, #21] Keys: [] Functions [3]: [sum(UnscaledValue(ws_ext_ship_cost#6)), sum(UnscaledValue(ws_net_profit#7)), count(distinct ws_order_number#5)] Aggregate Attributes [3]: [sum(UnscaledValue(ws_ext_ship_cost#6))#19, sum(UnscaledValue(ws_net_profit#7))#20, count(ws_order_number#5)#22] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt index 071b6b1d2..cab7d1c24 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt @@ -607,47 +607,47 @@ Input [3]: [ws_order_number#4, _c1#22, _c2#23] Keys [1]: [ws_order_number#4] Functions [2]: [partial_sum(_c1#22), partial_sum(_c2#23)] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_ship_cost#5))#24, sum(UnscaledValue(ws_net_profit#6))#25] -Results [2]: [ws_order_number#4, #26#26] +Results [3]: [ws_order_number#4, #26, #26] (103) NativeShuffleExchange -Input [2]: [ws_order_number#4, #26#26] +Input [3]: [ws_order_number#4, #26, #26] Arguments: hashpartitioning(ws_order_number#4, 100), ENSURE_REQUIREMENTS, [plan_id=10] (104) ShuffleQueryStage -Output [2]: [ws_order_number#4, #26#26] +Output [3]: [ws_order_number#4, #26, #26] Arguments: X (105) AQEShuffleRead -Input [2]: [ws_order_number#4, #26#26] +Input [3]: [ws_order_number#4, #26, #26] Arguments: coalesced (106) InputAdapter -Input [2]: [ws_order_number#4, #26#26] +Input [3]: [ws_order_number#4, #26, #26] (107) NativeHashAggregate -Input [2]: [ws_order_number#4, #26#26] +Input [3]: [ws_order_number#4, #26, #26] Keys [1]: [ws_order_number#4] Functions [2]: [merge_sum(UnscaledValue(ws_ext_ship_cost#5)), merge_sum(UnscaledValue(ws_net_profit#6))] Aggregate Attributes [2]: [sum(UnscaledValue(ws_ext_ship_cost#5))#24, sum(UnscaledValue(ws_net_profit#6))#25] -Results [2]: [ws_order_number#4, #26#26] +Results [3]: [ws_order_number#4, #26, #26] (108) NativeHashAggregate -Input [2]: [ws_order_number#4, #26#26] +Input [3]: [ws_order_number#4, #26, #26] Keys: [] Functions [3]: [merge_sum(UnscaledValue(ws_ext_ship_cost#5)), merge_sum(UnscaledValue(ws_net_profit#6)), partial_count(distinct ws_order_number#4)] Aggregate Attributes [3]: [sum(UnscaledValue(ws_ext_ship_cost#5))#24, sum(UnscaledValue(ws_net_profit#6))#25, count(ws_order_number#4)#27] -Results [1]: [#26#26] +Results [3]: [#26, #26, #26] (109) NativeShuffleExchange -Input [1]: [#26#26] +Input [3]: [#26, #26, #26] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=11] (110) ShuffleQueryStage -Output [1]: [#26#26] +Output [3]: [#26, #26, #26] Arguments: X (111) NativeHashAggregate -Input [1]: [#26#26] +Input [3]: [#26, #26, #26] Keys: [] Functions [3]: [sum(UnscaledValue(ws_ext_ship_cost#5)), sum(UnscaledValue(ws_net_profit#6)), count(distinct ws_order_number#4)] Aggregate Attributes [3]: [sum(UnscaledValue(ws_ext_ship_cost#5))#24, sum(UnscaledValue(ws_net_profit#6))#25, count(ws_order_number#4)#27] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q96.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q96.txt index a063f48c7..c63a712a5 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q96.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q96.txt @@ -313,18 +313,18 @@ Input: [] Keys: [] Functions [1]: [partial_count(1)] Aggregate Attributes [1]: [count#11] -Results [1]: [#12#12] +Results [1]: [#12] (53) NativeShuffleExchange -Input [1]: [#12#12] +Input [1]: [#12] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=7] (54) ShuffleQueryStage -Output [1]: [#12#12] +Output [1]: [#12] Arguments: X (55) NativeHashAggregate -Input [1]: [#12#12] +Input [1]: [#12] Keys: [] Functions [1]: [count(1)] Aggregate Attributes [1]: [count(1)#13] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q97.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q97.txt index ab23e2431..d8b67464c 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q97.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q97.txt @@ -185,180 +185,180 @@ Input [2]: [ss_item_sk#2, ss_customer_sk#3] Keys [2]: [ss_customer_sk#3, ss_item_sk#2] Functions: [] Aggregate Attributes: [] -Results [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Results [2]: [ss_customer_sk#3, ss_item_sk#2] (21) NativeShuffleExchange -Input [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Input [2]: [ss_customer_sk#3, ss_item_sk#2] Arguments: hashpartitioning(ss_customer_sk#3, ss_item_sk#2, 100), ENSURE_REQUIREMENTS, [plan_id=3] (22) ShuffleQueryStage -Output [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Output [2]: [ss_customer_sk#3, ss_item_sk#2] Arguments: X (23) AQEShuffleRead -Input [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Input [2]: [ss_customer_sk#3, ss_item_sk#2] Arguments: coalesced (24) InputAdapter -Input [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Input [2]: [ss_customer_sk#3, ss_item_sk#2] (25) NativeHashAggregate -Input [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Input [2]: [ss_customer_sk#3, ss_item_sk#2] Keys [2]: [ss_customer_sk#3, ss_item_sk#2] Functions: [] Aggregate Attributes: [] -Results [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Results [2]: [ss_customer_sk#3, ss_item_sk#2] (26) NativeProject -Output [2]: [ss_customer_sk#3 AS customer_sk#7, ss_item_sk#2 AS item_sk#8] -Input [3]: [ss_customer_sk#3, ss_item_sk#2, #6#6] +Output [2]: [ss_customer_sk#3 AS customer_sk#6, ss_item_sk#2 AS item_sk#7] +Input [2]: [ss_customer_sk#3, ss_item_sk#2] (27) NativeSort -Input [2]: [customer_sk#7, item_sk#8] -Arguments: [customer_sk#7 ASC NULLS FIRST, item_sk#8 ASC NULLS FIRST], false +Input [2]: [customer_sk#6, item_sk#7] +Arguments: [customer_sk#6 ASC NULLS FIRST, item_sk#7 ASC NULLS FIRST], false (75) Scan parquet -Output [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] +Output [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (29) InputAdapter -Input [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] -Arguments: [#9, #10, #11] +Input [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] +Arguments: [#8, #9, #10] (30) NativeFilter -Input [3]: [#9#9, #10#10, #11#11] -Condition : isnotnull(cs_sold_date_sk#9) +Input [3]: [#8#8, #9#9, #10#10] +Condition : isnotnull(cs_sold_date_sk#8) (31) NativeShuffleExchange -Input [3]: [#9#9, #10#10, #11#11] -Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=4] +Input [3]: [#8#8, #9#9, #10#10] +Arguments: hashpartitioning(cs_sold_date_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=4] (32) ShuffleQueryStage -Output [3]: [#9#9, #10#10, #11#11] +Output [3]: [#8#8, #9#9, #10#10] Arguments: X (33) AQEShuffleRead -Input [3]: [#9#9, #10#10, #11#11] +Input [3]: [#8#8, #9#9, #10#10] Arguments: coalesced (34) InputAdapter -Input [3]: [#9#9, #10#10, #11#11] +Input [3]: [#8#8, #9#9, #10#10] (35) NativeSort -Input [3]: [#9#9, #10#10, #11#11] -Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false +Input [3]: [#8#8, #9#9, #10#10] +Arguments: [cs_sold_date_sk#8 ASC NULLS FIRST], false (36) ReusedExchange [Reuses operator id: 13] -Output [1]: [d_date_sk#12] +Output [1]: [d_date_sk#11] (37) ShuffleQueryStage -Output [1]: [d_date_sk#12] +Output [1]: [d_date_sk#11] Arguments: X (38) AQEShuffleRead -Input [1]: [d_date_sk#12] +Input [1]: [d_date_sk#11] Arguments: coalesced (39) InputAdapter -Input [1]: [d_date_sk#12] -Arguments: [#12] +Input [1]: [d_date_sk#11] +Arguments: [#11] (40) InputAdapter -Input [1]: [#12#12] +Input [1]: [#11#11] (41) NativeSort -Input [1]: [#12#12] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false +Input [1]: [#11#11] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false (42) NativeSortMergeJoin -Left keys [1]: [cs_sold_date_sk#9] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#8] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (43) NativeProject -Output [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Input [4]: [#9#9, #10#10, #11#11, #12#12] +Output [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Input [4]: [#8#8, #9#9, #10#10, #11#11] (44) NativeHashAggregate -Input [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Keys [2]: [cs_bill_customer_sk#10, cs_item_sk#11] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Keys [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Functions: [] Aggregate Attributes: [] -Results [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Results [2]: [cs_bill_customer_sk#9, cs_item_sk#10] (45) NativeShuffleExchange -Input [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] -Arguments: hashpartitioning(cs_bill_customer_sk#10, cs_item_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=5] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Arguments: hashpartitioning(cs_bill_customer_sk#9, cs_item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=5] (46) ShuffleQueryStage -Output [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Output [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Arguments: X (47) AQEShuffleRead -Input [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Arguments: coalesced (48) InputAdapter -Input [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] (49) NativeHashAggregate -Input [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] -Keys [2]: [cs_bill_customer_sk#10, cs_item_sk#11] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Keys [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Functions: [] Aggregate Attributes: [] -Results [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Results [2]: [cs_bill_customer_sk#9, cs_item_sk#10] (50) NativeProject -Output [2]: [cs_bill_customer_sk#10 AS customer_sk#13, cs_item_sk#11 AS item_sk#14] -Input [3]: [cs_bill_customer_sk#10, cs_item_sk#11, #6#6] +Output [2]: [cs_bill_customer_sk#9 AS customer_sk#12, cs_item_sk#10 AS item_sk#13] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] (51) NativeSort -Input [2]: [customer_sk#13, item_sk#14] -Arguments: [customer_sk#13 ASC NULLS FIRST, item_sk#14 ASC NULLS FIRST], false +Input [2]: [customer_sk#12, item_sk#13] +Arguments: [customer_sk#12 ASC NULLS FIRST, item_sk#13 ASC NULLS FIRST], false (52) NativeSortMergeJoin -Left keys [2]: [customer_sk#7, item_sk#8] -Right keys [2]: [customer_sk#13, item_sk#14] +Left keys [2]: [customer_sk#6, item_sk#7] +Right keys [2]: [customer_sk#12, item_sk#13] Join type: FullOuter Join condition: None (53) NativeProject -Output [2]: [customer_sk#7, customer_sk#13] -Input [4]: [customer_sk#7, item_sk#8, customer_sk#13, item_sk#14] +Output [2]: [customer_sk#6, customer_sk#12] +Input [4]: [customer_sk#6, item_sk#7, customer_sk#12, item_sk#13] (54) NativeProject -Output [3]: [CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END AS _c0#15, CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END AS _c1#16, CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END AS _c2#17] -Input [2]: [customer_sk#7, customer_sk#13] +Output [3]: [CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END AS _c0#14, CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END AS _c1#15, CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END AS _c2#16] +Input [2]: [customer_sk#6, customer_sk#12] (55) NativeHashAggregate -Input [3]: [_c0#15, _c1#16, _c2#17] +Input [3]: [_c0#14, _c1#15, _c2#16] Keys: [] -Functions [3]: [partial_sum(_c0#15), partial_sum(_c1#16), partial_sum(_c2#17)] -Aggregate Attributes [3]: [sum#18, sum#19, sum#20] -Results [1]: [#6#6] +Functions [3]: [partial_sum(_c0#14), partial_sum(_c1#15), partial_sum(_c2#16)] +Aggregate Attributes [3]: [sum#17, sum#18, sum#19] +Results [3]: [#20, #20, #20] (56) NativeShuffleExchange -Input [1]: [#6#6] +Input [3]: [#20, #20, #20] Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6] (57) ShuffleQueryStage -Output [1]: [#6#6] +Output [3]: [#20, #20, #20] Arguments: X (58) NativeHashAggregate -Input [1]: [#6#6] +Input [3]: [#20, #20, #20] Keys: [] -Functions [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)] -Aggregate Attributes [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23] -Results [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23] +Functions [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)] +Aggregate Attributes [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23] +Results [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23] (59) NativeProject -Output [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21 AS store_only#24, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22 AS catalog_only#25, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23 AS store_and_catalog#26] -Input [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23] +Output [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21 AS store_only#24, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22 AS catalog_only#25, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23 AS store_and_catalog#26] +Input [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23] (60) Scan parquet Output [3]: [ss_sold_date_sk#1, ss_item_sk#2, ss_customer_sk#3] @@ -428,101 +428,101 @@ Input [2]: [ss_customer_sk#3, ss_item_sk#2] Keys [2]: [ss_customer_sk#3, ss_item_sk#2] Functions: [] Aggregate Attributes: [] -Results [2]: [ss_customer_sk#3 AS customer_sk#7, ss_item_sk#2 AS item_sk#8] +Results [2]: [ss_customer_sk#3 AS customer_sk#6, ss_item_sk#2 AS item_sk#7] (74) Sort -Input [2]: [customer_sk#7, item_sk#8] -Arguments: [customer_sk#7 ASC NULLS FIRST, item_sk#8 ASC NULLS FIRST], false, 0 +Input [2]: [customer_sk#6, item_sk#7] +Arguments: [customer_sk#6 ASC NULLS FIRST, item_sk#7 ASC NULLS FIRST], false, 0 (75) Scan parquet -Output [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] +Output [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(cs_sold_date_sk)] ReadSchema: struct (76) Filter -Input [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] -Condition : isnotnull(cs_sold_date_sk#9) +Input [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] +Condition : isnotnull(cs_sold_date_sk#8) (77) Exchange -Input [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] -Arguments: hashpartitioning(cs_sold_date_sk#9, 100), ENSURE_REQUIREMENTS, [plan_id=10] +Input [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] +Arguments: hashpartitioning(cs_sold_date_sk#8, 100), ENSURE_REQUIREMENTS, [plan_id=10] (78) Sort -Input [3]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11] -Arguments: [cs_sold_date_sk#9 ASC NULLS FIRST], false, 0 +Input [3]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10] +Arguments: [cs_sold_date_sk#8 ASC NULLS FIRST], false, 0 (79) Scan parquet -Output [2]: [d_date_sk#12, d_month_seq#27] +Output [2]: [d_date_sk#11, d_month_seq#27] Batched: true Location: InMemoryFileIndex [file:/] PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1200), LessThanOrEqual(d_month_seq,1211), IsNotNull(d_date_sk)] ReadSchema: struct (80) Filter -Input [2]: [d_date_sk#12, d_month_seq#27] -Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#12)) +Input [2]: [d_date_sk#11, d_month_seq#27] +Condition : (((isnotnull(d_month_seq#27) AND (d_month_seq#27 >= 1200)) AND (d_month_seq#27 <= 1211)) AND isnotnull(d_date_sk#11)) (81) Project -Output [1]: [d_date_sk#12] -Input [2]: [d_date_sk#12, d_month_seq#27] +Output [1]: [d_date_sk#11] +Input [2]: [d_date_sk#11, d_month_seq#27] (82) Exchange -Input [1]: [d_date_sk#12] -Arguments: hashpartitioning(d_date_sk#12, 100), ENSURE_REQUIREMENTS, [plan_id=11] +Input [1]: [d_date_sk#11] +Arguments: hashpartitioning(d_date_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=11] (83) Sort -Input [1]: [d_date_sk#12] -Arguments: [d_date_sk#12 ASC NULLS FIRST], false, 0 +Input [1]: [d_date_sk#11] +Arguments: [d_date_sk#11 ASC NULLS FIRST], false, 0 (84) SortMergeJoin -Left keys [1]: [cs_sold_date_sk#9] -Right keys [1]: [d_date_sk#12] +Left keys [1]: [cs_sold_date_sk#8] +Right keys [1]: [d_date_sk#11] Join type: Inner Join condition: None (85) Project -Output [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Input [4]: [cs_sold_date_sk#9, cs_bill_customer_sk#10, cs_item_sk#11, d_date_sk#12] +Output [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Input [4]: [cs_sold_date_sk#8, cs_bill_customer_sk#9, cs_item_sk#10, d_date_sk#11] (86) HashAggregate -Input [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Keys [2]: [cs_bill_customer_sk#10, cs_item_sk#11] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Keys [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Functions: [] Aggregate Attributes: [] -Results [2]: [cs_bill_customer_sk#10, cs_item_sk#11] +Results [2]: [cs_bill_customer_sk#9, cs_item_sk#10] (87) Exchange -Input [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Arguments: hashpartitioning(cs_bill_customer_sk#10, cs_item_sk#11, 100), ENSURE_REQUIREMENTS, [plan_id=12] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Arguments: hashpartitioning(cs_bill_customer_sk#9, cs_item_sk#10, 100), ENSURE_REQUIREMENTS, [plan_id=12] (88) HashAggregate -Input [2]: [cs_bill_customer_sk#10, cs_item_sk#11] -Keys [2]: [cs_bill_customer_sk#10, cs_item_sk#11] +Input [2]: [cs_bill_customer_sk#9, cs_item_sk#10] +Keys [2]: [cs_bill_customer_sk#9, cs_item_sk#10] Functions: [] Aggregate Attributes: [] -Results [2]: [cs_bill_customer_sk#10 AS customer_sk#13, cs_item_sk#11 AS item_sk#14] +Results [2]: [cs_bill_customer_sk#9 AS customer_sk#12, cs_item_sk#10 AS item_sk#13] (89) Sort -Input [2]: [customer_sk#13, item_sk#14] -Arguments: [customer_sk#13 ASC NULLS FIRST, item_sk#14 ASC NULLS FIRST], false, 0 +Input [2]: [customer_sk#12, item_sk#13] +Arguments: [customer_sk#12 ASC NULLS FIRST, item_sk#13 ASC NULLS FIRST], false, 0 (90) SortMergeJoin -Left keys [2]: [customer_sk#7, item_sk#8] -Right keys [2]: [customer_sk#13, item_sk#14] +Left keys [2]: [customer_sk#6, item_sk#7] +Right keys [2]: [customer_sk#12, item_sk#13] Join type: FullOuter Join condition: None (91) Project -Output [2]: [customer_sk#7, customer_sk#13] -Input [4]: [customer_sk#7, item_sk#8, customer_sk#13, item_sk#14] +Output [2]: [customer_sk#6, customer_sk#12] +Input [4]: [customer_sk#6, item_sk#7, customer_sk#12, item_sk#13] (92) HashAggregate -Input [2]: [customer_sk#7, customer_sk#13] +Input [2]: [customer_sk#6, customer_sk#12] Keys: [] -Functions [3]: [partial_sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END), partial_sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END), partial_sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)] -Aggregate Attributes [3]: [sum#18, sum#19, sum#20] +Functions [3]: [partial_sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END), partial_sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END), partial_sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)] +Aggregate Attributes [3]: [sum#17, sum#18, sum#19] Results [3]: [sum#28, sum#29, sum#30] (93) Exchange @@ -532,9 +532,9 @@ Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=13] (94) HashAggregate Input [3]: [sum#28, sum#29, sum#30] Keys: [] -Functions [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)] -Aggregate Attributes [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23] -Results [3]: [sum(CASE WHEN (isnotnull(customer_sk#7) AND isnull(customer_sk#13)) THEN 1 ELSE 0 END)#21 AS store_only#24, sum(CASE WHEN (isnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#22 AS catalog_only#25, sum(CASE WHEN (isnotnull(customer_sk#7) AND isnotnull(customer_sk#13)) THEN 1 ELSE 0 END)#23 AS store_and_catalog#26] +Functions [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END), sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)] +Aggregate Attributes [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23] +Results [3]: [sum(CASE WHEN (isnotnull(customer_sk#6) AND isnull(customer_sk#12)) THEN 1 ELSE 0 END)#21 AS store_only#24, sum(CASE WHEN (isnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#22 AS catalog_only#25, sum(CASE WHEN (isnotnull(customer_sk#6) AND isnotnull(customer_sk#12)) THEN 1 ELSE 0 END)#23 AS store_and_catalog#26] (95) AdaptiveSparkPlan Output [3]: [store_only#24, catalog_only#25, store_and_catalog#26] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt index 757795c14..0860d1b97 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt @@ -242,25 +242,25 @@ Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [partial_sum(_c5#12)] Aggregate Attributes [1]: [sum#13] -Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Results [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (37) NativeShuffleExchange -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: hashpartitioning(i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, 100), ENSURE_REQUIREMENTS, [plan_id=5] (38) ShuffleQueryStage -Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Output [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: X (39) AQEShuffleRead -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Arguments: coalesced (40) InputAdapter -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] (41) NativeHashAggregate -Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14#14] +Input [6]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7, #14] Keys [5]: [i_item_id#5, i_item_desc#6, i_category#9, i_class#8, i_current_price#7] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#3))] Aggregate Attributes [1]: [sum(UnscaledValue(ss_ext_sales_price#3))#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q99.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q99.txt index 6d1a36651..406f30721 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q99.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q99.txt @@ -396,25 +396,25 @@ Input [8]: [_groupingexpression#14, sm_type#9, cc_name#11, _c3#15, _c4#16, _c5#1 Keys [3]: [_groupingexpression#14, sm_type#9, cc_name#11] Functions [5]: [partial_sum(_c3#15), partial_sum(_c4#16), partial_sum(_c5#17), partial_sum(_c6#18), partial_sum(_c7#19)] Aggregate Attributes [5]: [sum#20, sum#21, sum#22, sum#23, sum#24] -Results [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Results [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] (67) NativeShuffleExchange -Input [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] Arguments: hashpartitioning(_groupingexpression#14, sm_type#9, cc_name#11, 100), ENSURE_REQUIREMENTS, [plan_id=9] (68) ShuffleQueryStage -Output [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Output [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] Arguments: X (69) AQEShuffleRead -Input [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] Arguments: coalesced (70) InputAdapter -Input [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] (71) NativeHashAggregate -Input [4]: [_groupingexpression#14, sm_type#9, cc_name#11, #25#25] +Input [8]: [_groupingexpression#14, sm_type#9, cc_name#11, #25, #25, #25, #25, #25] Keys [3]: [_groupingexpression#14, sm_type#9, cc_name#11] Functions [5]: [sum(CASE WHEN ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END), sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 30) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END), sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 60) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END), sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 90) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END), sum(CASE WHEN ((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)] Aggregate Attributes [5]: [sum(CASE WHEN ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 30) THEN 1 ELSE 0 END)#26, sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 30) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 60)) THEN 1 ELSE 0 END)#27, sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 60) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 90)) THEN 1 ELSE 0 END)#28, sum(CASE WHEN (((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 90) AND ((cs_ship_date_sk#2 - cs_sold_date_sk#1) <= 120)) THEN 1 ELSE 0 END)#29, sum(CASE WHEN ((cs_ship_date_sk#2 - cs_sold_date_sk#1) > 120) THEN 1 ELSE 0 END)#30] diff --git a/native-engine/auron-jni-bridge/src/jni_bridge.rs b/native-engine/auron-jni-bridge/src/jni_bridge.rs index 55d6c2b2e..5b76d8290 100644 --- a/native-engine/auron-jni-bridge/src/jni_bridge.rs +++ b/native-engine/auron-jni-bridge/src/jni_bridge.rs @@ -1254,10 +1254,10 @@ pub struct SparkUDAFWrapperContext<'a> { pub method_merge_ret: ReturnType, pub method_eval: JMethodID, pub method_eval_ret: ReturnType, - pub method_serializeRows: JMethodID, - pub method_serializeRows_ret: ReturnType, - pub method_deserializeRows: JMethodID, - pub method_deserializeRows_ret: ReturnType, + pub method_exportRows: JMethodID, + pub method_exportRows_ret: ReturnType, + pub method_importRows: JMethodID, + pub method_importRows_ret: ReturnType, pub method_spill: JMethodID, pub method_spill_ret: ReturnType, pub method_unspill: JMethodID, @@ -1307,18 +1307,18 @@ impl<'a> SparkUDAFWrapperContext<'a> { "(Lorg/apache/spark/sql/auron/BufferRowsColumn;[IJ)V", )?, method_eval_ret: ReturnType::Primitive(Primitive::Void), - method_serializeRows: env.get_method_id( + method_exportRows: env.get_method_id( class, - "serializeRows", - "(Lorg/apache/spark/sql/auron/BufferRowsColumn;[I)[B", + "exportRows", + "(Lorg/apache/spark/sql/auron/BufferRowsColumn;[IJ)V", )?, - method_serializeRows_ret: ReturnType::Array, - method_deserializeRows: env.get_method_id( + method_exportRows_ret: ReturnType::Primitive(Primitive::Void), + method_importRows: env.get_method_id( class, - "deserializeRows", - "(Ljava/nio/ByteBuffer;)Lorg/apache/spark/sql/auron/BufferRowsColumn;", + "importRows", + "(J)Lorg/apache/spark/sql/auron/BufferRowsColumn;", )?, - method_deserializeRows_ret: ReturnType::Object, + method_importRows_ret: ReturnType::Object, method_spill: env.get_method_id( class, "spill", diff --git a/native-engine/datafusion-ext-commons/src/io/batch_serde.rs b/native-engine/datafusion-ext-commons/src/io/batch_serde.rs index 2972e11b1..2de3c62cd 100644 --- a/native-engine/datafusion-ext-commons/src/io/batch_serde.rs +++ b/native-engine/datafusion-ext-commons/src/io/batch_serde.rs @@ -275,7 +275,6 @@ fn write_primitive_array( output: &mut W, transpose_opt: &mut TransposeOpt, ) -> Result<()> { - let offset = array.offset(); let len = array.len(); let array_data = array.to_data(); if let Some(null_buffer) = array_data.nulls() { @@ -295,14 +294,14 @@ fn write_primitive_array( && byte_width > 1 { transpose::transpose( - array_data.buffer::(0)[offset..][..len].as_raw_bytes(), + array_data.buffer::(0)[..len].as_raw_bytes(), buffer[..byte_width * array.len()].as_raw_bytes_mut(), byte_width, array.len(), ); output.write_all(buffer[..byte_width * array.len()].as_ref())?; } else { - output.write_all(array_data.buffer::(0)[offset..][..len].as_raw_bytes())?; + output.write_all(array_data.buffer::(0)[..len].as_raw_bytes())?; } Ok(()) } diff --git a/native-engine/datafusion-ext-exprs/src/spark_partition_id.rs b/native-engine/datafusion-ext-exprs/src/spark_partition_id.rs index d34150dbb..b8fb6b09a 100644 --- a/native-engine/datafusion-ext-exprs/src/spark_partition_id.rs +++ b/native-engine/datafusion-ext-exprs/src/spark_partition_id.rs @@ -146,7 +146,7 @@ mod tests { assert_eq!(int_arr.value(i), 5); } } - _ => panic!("Expected Array result"), + _ => unreachable!("Expected Array result"), } } @@ -172,7 +172,7 @@ mod tests { assert_eq!(int_arr.value(i), partition_id as i32); } } - _ => panic!("Expected Array result"), + _ => unreachable!("Expected Array result"), } } } diff --git a/native-engine/datafusion-ext-plans/src/agg/acc.rs b/native-engine/datafusion-ext-plans/src/agg/acc.rs index d3ce80493..bea1c05ec 100644 --- a/native-engine/datafusion-ext-plans/src/agg/acc.rs +++ b/native-engine/datafusion-ext-plans/src/agg/acc.rs @@ -15,7 +15,7 @@ use std::{ any::Any, - io::{Cursor, Read, Write}, + io::{Read, Write}, sync::Arc, }; @@ -25,7 +25,7 @@ use arrow::{ }; use auron_memmgr::spill::{SpillCompressedReader, SpillCompressedWriter}; use bitvec::{bitvec, vec::BitVec}; -use byteorder::{ReadBytesExt, WriteBytesExt}; +use byteorder::WriteBytesExt; use datafusion::common::{Result, ScalarValue, utils::proxy::VecAllocExt}; use datafusion_ext_commons::{ SliceAsRawBytes, UninitializedInit, df_execution_err, downcast_any, @@ -43,9 +43,9 @@ pub trait AccColumn: Send { fn shrink_to_fit(&mut self); fn num_records(&self) -> usize; fn mem_used(&self) -> usize; - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()>; - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()>; - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()>; + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result>; + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()>; + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()>; fn unspill(&mut self, num_rows: usize, r: &mut SpillCompressedReader) -> Result<()>; fn ensure_size(&mut self, idx: IdxSelection<'_>) { @@ -137,8 +137,7 @@ impl AccBooleanColumn { } } - pub fn to_array(&self, dt: &DataType, idx: IdxSelection<'_>) -> Result { - assert!(dt == &DataType::Boolean); + pub fn to_array(&self, idx: IdxSelection<'_>) -> Result { idx_with_iter!((idx @ idx) => { Ok(Arc::new(BooleanArray::from_iter( idx.map(|i| self.valids[i].then_some(self.values[i])) @@ -174,38 +173,32 @@ impl AccColumn for AccBooleanColumn { self.num_records() / 4 // 2 bits for each value } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - idx_with_iter!((idx @ idx) => { - for (i, w) in idx.zip(array) { - if self.valids[i] { - w.write_u8(1 + self.values[i] as u8)?; - } else { - w.write_u8(0)?; - } - } - }); - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let array = self.to_array(idx)?; + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - self.resize(0); + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = downcast_any!(&arrays[0], BooleanArray)?; + self.values.clear(); + self.valids.clear(); - for cursor in cursors { - match cursor.read_u8()? { - 0 => { - self.valids.push(false); - self.values.push(false); - } - v => { - self.valids.push(true); - self.values.push(v - 1 != 0); - } + // fill values + for i in 0..array.len() { + self.values.push(array.value(i)); + } + + // fill valids + if let Some(nb) = array.nulls() { + for bit in nb { + self.valids.push(bit); } } + self.valids.resize(self.values.len(), true); Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { let mut buf = vec![]; idx_for! { @@ -240,13 +233,15 @@ impl AccColumn for AccBooleanColumn { pub struct AccPrimColumn { values: Vec, valids: BitVec, + dt: DataType, } impl AccPrimColumn { - pub fn new(num_records: usize) -> Self { + pub fn new(num_records: usize, dt: DataType) -> Self { Self { values: vec![T::default(); num_records], valids: bitvec![0; num_records], + dt, } } @@ -329,39 +324,30 @@ impl AccColumn for AccPrimColumn { self.values.allocated_size() + (self.valids.capacity() + 7) / 8 } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - idx_with_iter!((idx @ idx) => { - for (i, w) in idx.zip(array) { - if self.valids[i] { - w.write_u8(1)?; - w.write_all([self.values[i]].as_raw_bytes())?; - } else { - w.write_u8(0)?; - } - } - }); - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let array = self.to_array(&self.dt, idx)?; + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array_data = arrays[0].to_data(); self.resize(0); - let mut value_buf = [T::default()]; - - for cursor in cursors { - let valid = cursor.read_u8()?; - if valid == 1 { - cursor.read_exact(value_buf.as_raw_bytes_mut())?; - self.values.push(value_buf[0]); - self.valids.push(true); - } else { - self.values.push(T::default()); - self.valids.push(false); + + // fill values + let buffer = array_data.buffer::(0); + self.values = buffer[array_data.offset()..][..array_data.len()].to_vec(); + + // fill valids + if let Some(nb) = array_data.nulls() { + for bit in nb { + self.valids.push(bit); } } + self.valids.resize(self.values.len(), true); Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { // write valids let mut bits: BitVec = BitVec::with_capacity(idx.len()); idx_for! { @@ -411,13 +397,15 @@ impl AccColumn for AccPrimColumn { pub struct AccBytesColumn { items: Vec>, heap_mem_used: usize, + dt: DataType, } impl AccBytesColumn { - pub fn new(num_records: usize) -> Self { + pub fn new(num_records: usize, dt: DataType) -> Self { Self { items: vec![None; num_records], heap_mem_used: 0, + dt, } } @@ -436,13 +424,13 @@ impl AccBytesColumn { self.heap_mem_used += self.item_heap_mem_used(idx); } - fn to_array(&self, dt: &DataType, idx: IdxSelection<'_>) -> Result { + fn to_array(&self, idx: IdxSelection<'_>) -> Result { let binary; idx_with_iter!((idx @ idx) => { binary = BinaryArray::from_iter(idx.map(|i| self.items[i].as_ref())); }); - match dt { + match &self.dt { DataType::Utf8 => Ok(make_array( binary .to_data() @@ -451,7 +439,7 @@ impl AccBytesColumn { .build()?, )), DataType::Binary => Ok(Arc::new(binary)), - _ => df_execution_err!("expected string or binary type, got {dt:?}"), + dt => df_execution_err!("expected string or binary type, got {dt:?}"), } } @@ -532,25 +520,34 @@ impl AccColumn for AccBytesColumn { self.heap_mem_used + self.items.allocated_size() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - idx_with_iter!((idx @ idx) => { - for (i, w) in idx.zip(array) { - self.save_value(i, w)?; - } - }); - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let array = self.to_array(idx)?; + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - self.items.resize(0, Default::default()); - for cursor in cursors { - self.load_value(cursor)?; + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array_data = arrays[0].to_data(); + self.items.clear(); + + // fill values + let offset_buffer = array_data.buffer::(0); + let data_buffer = array_data.buffer::(1); + for i in 0..array_data.len() { + if array_data.is_valid(i) { + let offset_begin = offset_buffer[i] as usize; + let offset_end = offset_buffer[i + 1] as usize; + self.items.push(Some(AccBytes::from_slice( + &data_buffer[offset_begin..offset_end], + ))); + } else { + self.items.push(None); + } } self.refresh_heap_mem_used(); Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { self.save_value(idx, w)?; @@ -576,17 +573,17 @@ pub struct AccScalarValueColumn { } impl AccScalarValueColumn { - pub fn new(dt: &DataType, num_rows: usize) -> Self { - let null_value = ScalarValue::try_from(dt).expect("unsupported data type"); + pub fn new(dt: DataType, num_rows: usize) -> Self { + let null_value = ScalarValue::try_from(&dt).expect("unsupported data type"); Self { items: (0..num_rows).map(|_| null_value.clone()).collect(), - dt: dt.clone(), + dt, null_value, heap_mem_used: 0, } } - pub fn to_array(&mut self, _dt: &DataType, idx: IdxSelection<'_>) -> Result { + pub fn to_array(&mut self, idx: IdxSelection<'_>) -> Result { idx_with_iter!((idx @ idx) => { ScalarValue::iter_to_array(idx.map(|i| { std::mem::replace(&mut self.items[i], self.null_value.clone()) @@ -642,38 +639,37 @@ impl AccColumn for AccScalarValueColumn { self.heap_mem_used + self.items.allocated_size() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - idx_with_iter!((idx @ idx) => { - for (i, w) in idx.zip(array) { - write_scalar(&self.items[i], true, w)?; - } - }); - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let array = self.to_array(idx)?; // data type is not used + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - self.items.truncate(0); + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = &arrays[0]; + + self.items.clear(); self.heap_mem_used = 0; - for cursor in cursors { - let scalar = read_scalar(cursor, &self.dt, true)?; + for i in 0..array.len() { + let scalar = ScalarValue::try_from_array(array, i)?; self.heap_mem_used += scalar_value_heap_mem_size(&scalar); self.items.push(scalar); } Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { - write_scalar(&self.items[idx], true, w)?; + let scalar = self.take_value(idx); + write_scalar(&scalar, true, w)?; } } Ok(()) } fn unspill(&mut self, num_rows: usize, r: &mut SpillCompressedReader) -> Result<()> { - self.items.truncate(0); + self.items.clear(); self.heap_mem_used = 0; for _ in 0..num_rows { @@ -685,43 +681,18 @@ impl AccColumn for AccScalarValueColumn { } } -pub fn create_acc_generic_column(dt: &DataType, num_rows: usize) -> AccColumnRef { +pub fn create_acc_generic_column(dt: DataType, num_rows: usize) -> AccColumnRef { macro_rules! primitive_helper { ($t:ty) => { Box::new(AccPrimColumn::<<$t as ArrowPrimitiveType>::Native>::new( - num_rows, + num_rows, dt, )) }; } downcast_primitive! { dt => (primitive_helper), DataType::Boolean => Box::new(AccBooleanColumn::new(num_rows)), - DataType::Utf8 | DataType::Binary => Box::new(AccBytesColumn::new(num_rows)), + DataType::Utf8 | DataType::Binary => Box::new(AccBytesColumn::new(num_rows, dt)), other => Box::new(AccScalarValueColumn::new(other, num_rows)), } } - -pub fn acc_generic_column_to_array( - column: &mut AccColumnRef, - dt: &DataType, - idx: IdxSelection<'_>, -) -> Result { - macro_rules! primitive_helper { - ($t:ty) => { - downcast_any!(column, mut AccPrimColumn::<<$t as ArrowPrimitiveType>::Native>)? - .to_array(dt, idx) - }; - } - downcast_primitive! { - dt => (primitive_helper), - DataType::Boolean => { - downcast_any!(column, mut AccBooleanColumn)?.to_array(dt, idx) - } - DataType::Utf8 | DataType::Binary => { - downcast_any!(column, mut AccBytesColumn)?.to_array(dt, idx) - } - _other => { - downcast_any!(column, mut AccScalarValueColumn)?.to_array(dt, idx) - } - } -} diff --git a/native-engine/datafusion-ext-plans/src/agg/agg.rs b/native-engine/datafusion-ext-plans/src/agg/agg.rs index b43980edd..5eb4c3dad 100644 --- a/native-engine/datafusion-ext-plans/src/agg/agg.rs +++ b/native-engine/datafusion-ext-plans/src/agg/agg.rs @@ -44,6 +44,7 @@ pub trait Agg: Send + Sync + Debug { fn data_type(&self) -> &DataType; fn nullable(&self) -> bool; fn create_acc_column(&self, num_rows: usize) -> AccColumnRef; + fn acc_array_data_types(&self) -> &[DataType]; fn with_new_exprs(&self, exprs: Vec) -> Result>; fn prepare_partial_args(&self, partial_inputs: &[ArrayRef]) -> Result> { diff --git a/native-engine/datafusion-ext-plans/src/agg/agg_ctx.rs b/native-engine/datafusion-ext-plans/src/agg/agg_ctx.rs index 2794684f9..d36876ebd 100644 --- a/native-engine/datafusion-ext-plans/src/agg/agg_ctx.rs +++ b/native-engine/datafusion-ext-plans/src/agg/agg_ctx.rs @@ -15,13 +15,12 @@ use std::{ fmt::{Debug, Formatter}, - io::Cursor, sync::Arc, }; use arrow::{ - array::{ArrayRef, BinaryArray, RecordBatchOptions}, - datatypes::{DataType, Field, Fields, Schema, SchemaRef}, + array::{Array, ArrayRef, RecordBatchOptions}, + datatypes::{Field, Fields, Schema, SchemaRef}, record_batch::RecordBatch, row::{RowConverter, Rows, SortField}, }; @@ -29,20 +28,16 @@ use auron_jni_bridge::{ conf, conf::{BooleanConf, DoubleConf, IntConf}, }; -use datafusion::{ - common::{Result, cast::as_binary_array}, - physical_expr::PhysicalExprRef, -}; +use datafusion::{common::Result, physical_expr::PhysicalExprRef}; use datafusion_ext_commons::{downcast_any, suggested_batch_mem_size}; use once_cell::sync::OnceCell; use parking_lot::Mutex; use crate::{ agg::{ - AGG_BUF_COLUMN_NAME, AggExecMode, AggExpr, AggMode, GroupingExpr, + AggExecMode, AggExpr, AggMode, GroupingExpr, acc::AccTable, agg::{Agg, IdxSelection}, - agg_hash_map::AggHashMapKey, spark_udaf_wrapper::{AccUDAFBufferRowsColumn, SparkUDAFMemTracker, SparkUDAFWrapper}, }, common::{ @@ -63,6 +58,8 @@ pub struct AggContext { pub grouping_row_converter: Arc>, pub groupings: Vec, pub aggs: Vec, + pub input_acc_arrays_len: usize, + pub output_acc_arrays_len: usize, pub supports_partial_skipping: bool, pub partial_skipping_ratio: f64, pub partial_skipping_min_rows: usize, @@ -137,7 +134,11 @@ impl AggContext { )); } } else { - agg_fields.push(Field::new(AGG_BUF_COLUMN_NAME, DataType::Binary, false)); + for agg in &aggs { + for dt in agg.agg.acc_array_data_types() { + agg_fields.push(Field::new("", dt.clone(), true)); + } + } } let agg_schema = Arc::new(Schema::new(agg_fields)); let output_schema = Arc::new(Schema::new( @@ -148,6 +149,17 @@ impl AggContext { .concat(), )); + let input_acc_arrays_len = aggs + .iter() + .filter(|agg| agg.mode.is_partial_merge() || agg.mode.is_final()) + .map(|agg| agg.agg.acc_array_data_types().len()) + .sum(); + let output_acc_arrays_len = aggs + .iter() + .filter(|agg| agg.mode.is_partial() || agg.mode.is_partial_merge()) + .map(|agg| agg.agg.acc_array_data_types().len()) + .sum(); + let agg_exprs_flatten: Vec = aggs .iter() .filter(|agg| agg.mode.is_partial()) @@ -195,6 +207,8 @@ impl AggContext { grouping_row_converter, groupings, aggs, + input_acc_arrays_len, + output_acc_arrays_len, agg_expr_evaluator, supports_partial_skipping, partial_skipping_ratio, @@ -277,22 +291,15 @@ impl AggContext { let mut merging_acc_table = self.create_acc_table(0); if self.need_partial_merge { - let partial_merged_array = - as_binary_array(batch.columns().last().expect("last column"))?; - let array = partial_merged_array - .iter() - .skip(batch_start_idx) - .take(batch_end_idx - batch_start_idx) - .map(|bytes| bytes.expect("non-null bytes")) - .collect::>(); - let mut cursors = array - .iter() - .map(|bytes| Cursor::new(bytes.as_bytes())) - .collect::>(); - - for (agg_idx, _agg) in &self.need_partial_merge_aggs { - let acc_col = &mut merging_acc_table.cols_mut()[*agg_idx]; - acc_col.unfreeze_from_rows(&mut cursors)?; + let mut acc_arrays_start = batch.num_columns() - self.input_acc_arrays_len; + for (agg_idx, agg) in &self.need_partial_merge_aggs { + let acc_arrays = &batch.columns()[acc_arrays_start..] + .iter() + .take(agg.acc_array_data_types().len()) + .map(|array| array.slice(batch_start_idx, batch_end_idx - batch_start_idx)) + .collect::>(); + acc_arrays_start += agg.acc_array_data_types().len(); + merging_acc_table.cols_mut()[*agg_idx].unfreeze_from_arrays(&acc_arrays)?; } } let batch_selection = IdxSelection::Range(0, batch_end_idx - batch_start_idx); @@ -320,9 +327,7 @@ impl AggContext { } Ok(agg_columns) } else { - // output acc as a binary column - let freezed = self.freeze_acc_table(acc_table, idx)?; - Ok(vec![Arc::new(BinaryArray::from_iter_values(freezed))]) + self.freeze_acc_table(acc_table, idx) } } @@ -407,23 +412,23 @@ impl AggContext { pub fn freeze_acc_table( &self, - acc_table: &AccTable, + acc_table: &mut AccTable, acc_idx: IdxSelection, - ) -> Result>> { + ) -> Result> { let udaf_indices_cache = OnceCell::new(); - let mut vec = vec![vec![]; acc_idx.len()]; - for acc_col in acc_table.cols() { + let mut arrays = vec![]; + + for acc_col in acc_table.cols_mut() { if let Ok(udaf_acc_col) = downcast_any!(acc_col, AccUDAFBufferRowsColumn) { - udaf_acc_col.freeze_to_rows_with_indices_cache( - acc_idx, - &mut vec, - &udaf_indices_cache, - )?; + arrays.push( + udaf_acc_col + .freeze_to_array_with_indices_cache(acc_idx, &udaf_indices_cache)?, + ); } else { - acc_col.freeze_to_rows(acc_idx, &mut vec)?; + arrays.extend(acc_col.freeze_to_arrays(acc_idx)?); } } - Ok(vec) + Ok(arrays) } pub async fn process_partial_skipped( diff --git a/native-engine/datafusion-ext-plans/src/agg/agg_table.rs b/native-engine/datafusion-ext-plans/src/agg/agg_table.rs index c432c892d..fc3a66170 100644 --- a/native-engine/datafusion-ext-plans/src/agg/agg_table.rs +++ b/native-engine/datafusion-ext-plans/src/agg/agg_table.rs @@ -544,7 +544,7 @@ impl HashingData { // sort all records using radix sort on hashcodes of keys let num_spill_buckets = self.agg_ctx.num_spill_buckets(self.mem_used()); let key_rows = self.map.into_keys(); - let acc_table = self.acc_table; + let mut acc_table = self.acc_table; let mut entries = key_rows .iter() .enumerate() @@ -568,7 +568,7 @@ impl HashingData { write_spill_bucket( &mut writer, &self.agg_ctx, - &acc_table, + &mut acc_table, entries[offset..][..cur_bucket_count] .iter() .map(|&(_, record_idx)| &key_rows[record_idx as usize]), @@ -674,7 +674,7 @@ impl MergingData { entries.shrink_to_fit(); let key_rows = self.key_rows; - let acc_table = self.acc_table; + let mut acc_table = self.acc_table; let mut bucket_counts = vec![0; num_spill_buckets]; radix_sort_by_key(&mut entries, &mut bucket_counts, |(bucket_id, ..)| { @@ -693,7 +693,7 @@ impl MergingData { write_spill_bucket( &mut writer, &self.agg_ctx, - &acc_table, + &mut acc_table, entries[offset..][..cur_bucket_count].iter().map( |&(_, batch_idx, row_idx, _)| { key_rows[batch_idx as usize] @@ -722,7 +722,7 @@ impl MergingData { fn write_spill_bucket( w: &mut SpillCompressedWriter, agg_ctx: &AggContext, - acc_table: &AccTable, + acc_table: &mut AccTable, key_iter: impl Iterator>, acc_idx_iter: impl Iterator, spill_idx: usize, @@ -730,7 +730,7 @@ fn write_spill_bucket( // write accs let udaf_indices_cache = OnceCell::new(); let acc_indices: Vec = acc_idx_iter.collect(); - for col in acc_table.cols() { + for col in acc_table.cols_mut() { if let Ok(udaf_col) = downcast_any!(col, AccUDAFBufferRowsColumn) { udaf_col.spill_with_indices_cache( IdxSelection::Indices(&acc_indices), diff --git a/native-engine/datafusion-ext-plans/src/agg/avg.rs b/native-engine/datafusion-ext-plans/src/agg/avg.rs index 008dd34bd..47c5874b4 100644 --- a/native-engine/datafusion-ext-plans/src/agg/avg.rs +++ b/native-engine/datafusion-ext-plans/src/agg/avg.rs @@ -16,7 +16,6 @@ use std::{ any::Any, fmt::{Debug, Formatter}, - io::Cursor, sync::Arc, }; @@ -44,6 +43,7 @@ pub struct AggAvg { data_type: DataType, agg_sum: AggSum, agg_count: AggCount, + acc_array_data_types: Vec, } impl AggAvg { @@ -51,6 +51,7 @@ impl AggAvg { let agg_sum = AggSum::try_new(child.clone(), data_type.clone())?; let agg_count = AggCount::try_new(vec![child.clone()], DataType::Int64)?; Ok(Self { + acc_array_data_types: vec![data_type.clone(), DataType::Int64], child, data_type, agg_sum, @@ -104,6 +105,10 @@ impl Agg for AggAvg { }) } + fn acc_array_data_types(&self) -> &[DataType] { + &self.acc_array_data_types + } + fn partial_update( &self, accs: &mut AccColumnRef, @@ -206,19 +211,19 @@ impl AccColumn for AccAvgColumn { self.sum.mem_used() + self.count.mem_used() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - self.sum.freeze_to_rows(idx, array)?; - self.count.freeze_to_rows(idx, array)?; - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let sum_array = self.sum.freeze_to_arrays(idx)?[0].clone(); + let count_array = self.count.freeze_to_arrays(idx)?[0].clone(); + Ok(vec![sum_array, count_array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - self.sum.unfreeze_from_rows(cursors)?; - self.count.unfreeze_from_rows(cursors)?; + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + self.sum.unfreeze_from_arrays(&arrays[0..1])?; + self.count.unfreeze_from_arrays(&arrays[1..2])?; Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, buf: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, buf: &mut SpillCompressedWriter) -> Result<()> { self.sum.spill(idx, buf)?; self.count.spill(idx, buf)?; Ok(()) diff --git a/native-engine/datafusion-ext-plans/src/agg/bloom_filter.rs b/native-engine/datafusion-ext-plans/src/agg/bloom_filter.rs index 6aff3c849..4688e131e 100644 --- a/native-engine/datafusion-ext-plans/src/agg/bloom_filter.rs +++ b/native-engine/datafusion-ext-plans/src/agg/bloom_filter.rs @@ -21,7 +21,7 @@ use std::{ }; use arrow::{ - array::{ArrayRef, AsArray, BinaryBuilder}, + array::{ArrayRef, AsArray, BinaryArray, BinaryBuilder}, datatypes::{DataType, Int64Type}, }; use auron_memmgr::spill::{SpillCompressedReader, SpillCompressedWriter}; @@ -108,6 +108,10 @@ impl Agg for AggBloomFilter { bloom_filters } + fn acc_array_data_types(&self) -> &[DataType] { + &[DataType::Binary] + } + fn partial_update( &self, accs: &mut AccColumnRef, @@ -245,36 +249,41 @@ impl AccColumn for AccBloomFilterColumn { .sum() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let mut array = vec![]; + idx_for! { (idx in idx) => { - let w = &mut array[idx]; if let Some(bloom_filter) = &self.bloom_filters[idx] { + let mut w = vec![]; w.write_u8(1)?; - bloom_filter.write_to(w)?; + bloom_filter.write_to(&mut w)?; + array.push(Some(w)); } else { - w.write_u8(0)?; + array.push(None); } } } - Ok(()) + + let array = Arc::new(BinaryArray::from_iter(array)); + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - assert_eq!(self.num_records(), 0, "expect empty AccColumn"); - for r in cursors { - self.bloom_filters.push({ - if r.read_u8()? == 1 { - Some(SparkBloomFilter::read_from(r)?) - } else { - None - } - }); + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = downcast_any!(arrays[0], BinaryArray)?; + + for v in array { + if let Some(w) = v { + self.bloom_filters + .push(Some(SparkBloomFilter::read_from(&mut Cursor::new(w))?)); + } else { + self.bloom_filters.push(None); + } } Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { if let Some(bloom_filter) = &self.bloom_filters[idx] { diff --git a/native-engine/datafusion-ext-plans/src/agg/brickhouse/collect.rs b/native-engine/datafusion-ext-plans/src/agg/brickhouse/collect.rs index 8d982b483..f7aeb69ec 100644 --- a/native-engine/datafusion-ext-plans/src/agg/brickhouse/collect.rs +++ b/native-engine/datafusion-ext-plans/src/agg/brickhouse/collect.rs @@ -81,6 +81,10 @@ impl Agg for AggCollect { self.innert_collect_list.create_acc_column(num_rows) } + fn acc_array_data_types(&self) -> &[DataType] { + self.innert_collect_list.acc_array_data_types() + } + fn partial_update( &self, accs: &mut AccColumnRef, diff --git a/native-engine/datafusion-ext-plans/src/agg/brickhouse/combine_unique.rs b/native-engine/datafusion-ext-plans/src/agg/brickhouse/combine_unique.rs index 4e7144c68..4330e1cd6 100644 --- a/native-engine/datafusion-ext-plans/src/agg/brickhouse/combine_unique.rs +++ b/native-engine/datafusion-ext-plans/src/agg/brickhouse/combine_unique.rs @@ -81,6 +81,10 @@ impl Agg for AggCombineUnique { self.inner_collect_set.create_acc_column(num_rows) } + fn acc_array_data_types(&self) -> &[DataType] { + self.inner_collect_set.acc_array_data_types() + } + fn partial_update( &self, accs: &mut AccColumnRef, diff --git a/native-engine/datafusion-ext-plans/src/agg/collect.rs b/native-engine/datafusion-ext-plans/src/agg/collect.rs index 225d4303d..b20acafdd 100644 --- a/native-engine/datafusion-ext-plans/src/agg/collect.rs +++ b/native-engine/datafusion-ext-plans/src/agg/collect.rs @@ -116,6 +116,10 @@ impl Agg for AggGenericCollect { col } + fn acc_array_data_types(&self) -> &[DataType] { + &[DataType::Binary] + } + fn partial_update( &self, accs: &mut AccColumnRef, @@ -292,15 +296,23 @@ impl AccColumn for AccSetColumn { self.mem_used + self.set.capacity() * size_of::() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - AccCollectionColumn::freeze_to_rows(self, idx, array) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let mut array = vec![vec![]; idx.len()]; + AccCollectionColumn::freeze_to_rows(self, idx, &mut array)?; + Ok(vec![Arc::new(BinaryArray::from_iter_values(array))]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - AccCollectionColumn::unfreeze_from_rows(self, cursors) + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = downcast_any!(arrays[0], BinaryArray)?; + let mut cursors = vec![]; + + for i in 0..array.len() { + cursors.push(Cursor::new(array.value(i))); + } + AccCollectionColumn::unfreeze_from_rows(self, &mut cursors) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { self.save_raw(idx, w)?; @@ -404,15 +416,23 @@ impl AccColumn for AccListColumn { self.mem_used + self.list.capacity() * size_of::() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - AccCollectionColumn::freeze_to_rows(self, idx, array) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let mut array = vec![vec![]; idx.len()]; + AccCollectionColumn::freeze_to_rows(self, idx, &mut array)?; + Ok(vec![Arc::new(BinaryArray::from_iter_values(array))]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - AccCollectionColumn::unfreeze_from_rows(self, cursors) + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = downcast_any!(arrays[0], BinaryArray)?; + let mut cursors = vec![]; + + for i in 0..array.len() { + cursors.push(Cursor::new(array.value(i))); + } + AccCollectionColumn::unfreeze_from_rows(self, &mut cursors) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { self.save_raw(idx, w)?; diff --git a/native-engine/datafusion-ext-plans/src/agg/count.rs b/native-engine/datafusion-ext-plans/src/agg/count.rs index ab17c5d36..d290a5e16 100644 --- a/native-engine/datafusion-ext-plans/src/agg/count.rs +++ b/native-engine/datafusion-ext-plans/src/agg/count.rs @@ -16,7 +16,6 @@ use std::{ any::Any, fmt::{Debug, Formatter}, - io::Cursor, sync::Arc, }; @@ -33,7 +32,7 @@ use crate::{ acc::{AccColumn, AccColumnRef}, agg::{Agg, IdxSelection}, }, - idx_for, idx_for_zipped, idx_with_iter, + idx_for, idx_for_zipped, }; pub struct AggCount { @@ -149,15 +148,11 @@ impl Agg for AggCount { } fn final_merge(&self, accs: &mut AccColumnRef, acc_idx: IdxSelection<'_>) -> Result { - let accs = downcast_any!(accs, mut AccCountColumn)?; + Ok(accs.freeze_to_arrays(acc_idx)?[0].clone()) + } - idx_with_iter! { - (acc_idx_iter @ acc_idx) => { - Ok(Arc::new(Int64Array::from_iter_values( - acc_idx_iter.map(|idx| accs.values[idx]) - ))) - } - } + fn acc_array_data_types(&self) -> &[DataType] { + &[DataType::Int64] } } @@ -190,27 +185,23 @@ impl AccColumn for AccCountColumn { self.values.capacity() * 2 * size_of::() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - let mut array_idx = 0; - + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let mut values = Vec::with_capacity(idx.len()); idx_for! { (idx in idx) => { - write_len(self.values[idx] as usize, &mut array[array_idx])?; - array_idx += 1; + values.push(self.values[idx]); } } - Ok(()) + Ok(vec![Arc::new(Int64Array::from(values))]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - assert_eq!(self.num_records(), 0, "expect empty AccColumn"); - for cursor in cursors { - self.values.push(read_len(cursor)? as i64); - } + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + let array = downcast_any!(arrays[0], Int64Array)?; + self.values = array.iter().map(|v| v.unwrap_or(0)).collect(); Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { idx_for! { (idx in idx) => { write_len(self.values[idx] as usize, w)?; diff --git a/native-engine/datafusion-ext-plans/src/agg/first.rs b/native-engine/datafusion-ext-plans/src/agg/first.rs index b4bbc1159..560cc5d3b 100644 --- a/native-engine/datafusion-ext-plans/src/agg/first.rs +++ b/native-engine/datafusion-ext-plans/src/agg/first.rs @@ -16,7 +16,6 @@ use std::{ any::Any, fmt::{Debug, Formatter}, - io::Cursor, sync::Arc, }; @@ -33,7 +32,7 @@ use crate::{ Agg, acc::{ AccBooleanColumn, AccBytes, AccBytesColumn, AccColumn, AccColumnRef, AccPrimColumn, - AccScalarValueColumn, acc_generic_column_to_array, create_acc_generic_column, + AccScalarValueColumn, create_acc_generic_column, }, agg::IdxSelection, }, @@ -43,11 +42,17 @@ use crate::{ pub struct AggFirst { child: PhysicalExprRef, data_type: DataType, + acc_array_data_types: Vec, } impl AggFirst { pub fn try_new(child: PhysicalExprRef, data_type: DataType) -> Result { - Ok(Self { child, data_type }) + let acc_array_data_types = vec![data_type.clone(), DataType::Boolean]; + Ok(Self { + child, + data_type, + acc_array_data_types, + }) } } @@ -83,11 +88,15 @@ impl Agg for AggFirst { fn create_acc_column(&self, num_rows: usize) -> AccColumnRef { Box::new(AccFirstColumn { - values: create_acc_generic_column(&self.data_type, num_rows), + values: create_acc_generic_column(self.data_type.clone(), num_rows), flags: AccBooleanColumn::new(num_rows), }) } + fn acc_array_data_types(&self) -> &[DataType] { + &self.acc_array_data_types + } + fn partial_update( &self, accs: &mut AccColumnRef, @@ -267,8 +276,7 @@ impl Agg for AggFirst { } fn final_merge(&self, accs: &mut AccColumnRef, acc_idx: IdxSelection<'_>) -> Result { - let accs = downcast_any!(accs, mut AccFirstColumn)?; - acc_generic_column_to_array(&mut accs.values, &self.data_type, acc_idx) + Ok(accs.freeze_to_arrays(acc_idx)?[0].clone()) } } @@ -312,19 +320,19 @@ impl AccColumn for AccFirstColumn { self.values.mem_used() + self.flags.mem_used() } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - self.values.freeze_to_rows(idx, array)?; - self.flags.freeze_to_rows(idx, array)?; - Ok(()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let value_array = self.values.freeze_to_arrays(idx)?[0].clone(); + let flags_array = self.flags.freeze_to_arrays(idx)?[0].clone(); + Ok(vec![value_array, flags_array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { - self.values.unfreeze_from_rows(cursors)?; - self.flags.unfreeze_from_rows(cursors)?; + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { + self.values.unfreeze_from_arrays(&arrays[0..1])?; + self.flags.unfreeze_from_arrays(&arrays[1..2])?; Ok(()) } - fn spill(&self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, idx: IdxSelection<'_>, w: &mut SpillCompressedWriter) -> Result<()> { self.values.spill(idx, w)?; self.flags.spill(idx, w)?; Ok(()) diff --git a/native-engine/datafusion-ext-plans/src/agg/first_ignores_null.rs b/native-engine/datafusion-ext-plans/src/agg/first_ignores_null.rs index 03b2ddec0..b0c79c0e1 100644 --- a/native-engine/datafusion-ext-plans/src/agg/first_ignores_null.rs +++ b/native-engine/datafusion-ext-plans/src/agg/first_ignores_null.rs @@ -28,7 +28,7 @@ use crate::{ Agg, acc::{ AccBooleanColumn, AccBytes, AccBytesColumn, AccColumnRef, AccPrimColumn, - AccScalarValueColumn, acc_generic_column_to_array, create_acc_generic_column, + AccScalarValueColumn, create_acc_generic_column, }, agg::IdxSelection, }, @@ -38,11 +38,17 @@ use crate::{ pub struct AggFirstIgnoresNull { child: PhysicalExprRef, data_type: DataType, + acc_array_data_types: Vec, } impl AggFirstIgnoresNull { pub fn try_new(child: PhysicalExprRef, data_type: DataType) -> Result { - Ok(Self { child, data_type }) + let acc_array_data_types = vec![data_type.clone()]; + Ok(Self { + child, + data_type, + acc_array_data_types, + }) } } @@ -77,7 +83,11 @@ impl Agg for AggFirstIgnoresNull { } fn create_acc_column(&self, num_rows: usize) -> AccColumnRef { - create_acc_generic_column(&self.data_type, num_rows) + create_acc_generic_column(self.data_type.clone(), num_rows) + } + + fn acc_array_data_types(&self) -> &[DataType] { + &self.acc_array_data_types } fn partial_update( @@ -217,6 +227,6 @@ impl Agg for AggFirstIgnoresNull { } fn final_merge(&self, accs: &mut AccColumnRef, acc_idx: IdxSelection<'_>) -> Result { - acc_generic_column_to_array(accs, &self.data_type, acc_idx) + Ok(accs.freeze_to_arrays(acc_idx)?[0].clone()) } } diff --git a/native-engine/datafusion-ext-plans/src/agg/maxmin.rs b/native-engine/datafusion-ext-plans/src/agg/maxmin.rs index ea7260677..c9cb564c4 100644 --- a/native-engine/datafusion-ext-plans/src/agg/maxmin.rs +++ b/native-engine/datafusion-ext-plans/src/agg/maxmin.rs @@ -30,7 +30,7 @@ use crate::{ Agg, acc::{ AccBooleanColumn, AccBytes, AccBytesColumn, AccColumn, AccColumnRef, AccPrimColumn, - AccScalarValueColumn, acc_generic_column_to_array, create_acc_generic_column, + AccScalarValueColumn, create_acc_generic_column, }, agg::IdxSelection, }, @@ -43,14 +43,17 @@ pub type AggMin = AggMaxMin; pub struct AggMaxMin { child: PhysicalExprRef, data_type: DataType, + acc_array_data_types: Vec, _phantom: PhantomData

, } impl AggMaxMin

{ pub fn try_new(child: PhysicalExprRef, data_type: DataType) -> Result { + let acc_array_data_types = vec![data_type.clone()]; Ok(Self { child, data_type, + acc_array_data_types, _phantom: Default::default(), }) } @@ -87,7 +90,11 @@ impl Agg for AggMaxMin

{ } fn create_acc_column(&self, num_rows: usize) -> AccColumnRef { - create_acc_generic_column(&self.data_type, num_rows) + create_acc_generic_column(self.data_type.clone(), num_rows) + } + + fn acc_array_data_types(&self) -> &[DataType] { + &self.acc_array_data_types } fn partial_update( @@ -286,7 +293,7 @@ impl Agg for AggMaxMin

{ } fn final_merge(&self, accs: &mut AccColumnRef, acc_idx: IdxSelection<'_>) -> Result { - acc_generic_column_to_array(accs, &self.data_type, acc_idx) + Ok(accs.freeze_to_arrays(acc_idx)?[0].clone()) } } diff --git a/native-engine/datafusion-ext-plans/src/agg/mod.rs b/native-engine/datafusion-ext-plans/src/agg/mod.rs index db2248629..9f19b02c8 100644 --- a/native-engine/datafusion-ext-plans/src/agg/mod.rs +++ b/native-engine/datafusion-ext-plans/src/agg/mod.rs @@ -34,8 +34,6 @@ use std::{fmt::Debug, sync::Arc}; use agg::Agg; use datafusion::physical_expr::PhysicalExprRef; -pub const AGG_BUF_COLUMN_NAME: &str = "#9223372036854775807"; - #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum AggExecMode { HashAgg, diff --git a/native-engine/datafusion-ext-plans/src/agg/spark_udaf_wrapper.rs b/native-engine/datafusion-ext-plans/src/agg/spark_udaf_wrapper.rs index 41d23e39f..8ca351fd4 100644 --- a/native-engine/datafusion-ext-plans/src/agg/spark_udaf_wrapper.rs +++ b/native-engine/datafusion-ext-plans/src/agg/spark_udaf_wrapper.rs @@ -21,14 +21,17 @@ use std::{ }; use arrow::{ - array::{Array, ArrayRef, StructArray, as_struct_array, make_array}, + array::{ + Array, ArrayAccessor, ArrayRef, BinaryArray, BinaryBuilder, StructArray, as_struct_array, + make_array, + }, datatypes::{DataType, Field, Schema, SchemaRef}, - ffi::{FFI_ArrowArray, FFI_ArrowSchema, from_ffi}, + ffi::{FFI_ArrowArray, FFI_ArrowSchema, from_ffi, from_ffi_and_data_type}, record_batch::{RecordBatch, RecordBatchOptions}, }; use auron_jni_bridge::{ - jni_bridge::LocalRef, jni_call, jni_get_byte_array_len, jni_get_byte_array_region, - jni_new_direct_byte_buffer, jni_new_global_ref, jni_new_object, jni_new_prim_array, + jni_bridge::LocalRef, jni_call, jni_new_direct_byte_buffer, jni_new_global_ref, jni_new_object, + jni_new_prim_array, }; use auron_memmgr::spill::{SpillCompressedReader, SpillCompressedWriter}; use datafusion::{ @@ -238,6 +241,10 @@ impl Agg for SparkUDAFWrapper { Box::new(AccUDAFBufferRowsColumn { obj, jcontext }) } + fn acc_array_data_types(&self) -> &[DataType] { + &[DataType::Binary] + } + fn with_new_exprs(&self, _exprs: Vec) -> Result> { Ok(Arc::new(Self::try_new( self.serialized.clone(), @@ -289,33 +296,32 @@ pub struct AccUDAFBufferRowsColumn { } impl AccUDAFBufferRowsColumn { - pub fn freeze_to_rows_with_indices_cache( + pub fn freeze_to_array_with_indices_cache( &self, idx: IdxSelection<'_>, - array: &mut [Vec], cache: &OnceCell, - ) -> Result<()> { + ) -> Result { + let mut ffi_exported_rows = FFI_ArrowArray::empty(); let idx_array = cache.get_or_try_init(move || jni_new_prim_array!(int, &idx.to_int32_vec()[..]))?; - let serialized = jni_call!( - SparkUDAFWrapperContext(self.jcontext.as_obj()).serializeRows( + jni_call!( + SparkUDAFWrapperContext(self.jcontext.as_obj()).exportRows( self.obj.as_obj(), idx_array.as_obj(), - ) -> JObject)?; - let serialized_len = jni_get_byte_array_len!(serialized.as_obj())?; - let mut serialized_bytes = Vec::uninitialized_init(serialized_len); - jni_get_byte_array_region!(serialized.as_obj(), 0, &mut serialized_bytes[..])?; - - // UnsafeRow is serialized with big-endian i32 length prefix - let mut cursor = Cursor::new(&serialized_bytes); - for i in 0..array.len() { - let mut bytes_len_buf = [0; 4]; - cursor.read_exact(&mut bytes_len_buf)?; - let bytes_len = i32::from_be_bytes(bytes_len_buf) as usize; - write_len(bytes_len, &mut array[i])?; - std::io::copy(&mut (&mut cursor).take(bytes_len as u64), &mut array[i])?; - } - Ok(()) + &mut ffi_exported_rows as *mut FFI_ArrowArray as i64, + ) -> ())?; + let exported_rows_data = unsafe { + // safety: import output binary array from + // SparkUDAFWrapperContext.exportedRows() + from_ffi_and_data_type(ffi_exported_rows, DataType::Binary)? + }; + let exported_rows = make_array(exported_rows_data); + assert_eq!(exported_rows.len(), self.num_records()); + + // clear in-memory rows + jni_call!(SparkUDAFWrapperContext(self.jcontext.as_obj()) + .resize(self.obj.as_obj(), 0i32)-> ())?; + Ok(exported_rows) } pub fn spill_with_indices_cache( @@ -390,32 +396,23 @@ impl AccColumn for AccUDAFBufferRowsColumn { 0 // memory is managed in jvm side } - fn freeze_to_rows(&self, idx: IdxSelection<'_>, array: &mut [Vec]) -> Result<()> { - self.freeze_to_rows_with_indices_cache(idx, array, &OnceCell::new()) + fn freeze_to_arrays(&mut self, idx: IdxSelection<'_>) -> Result> { + let array = self.freeze_to_array_with_indices_cache(idx, &OnceCell::new())?; + Ok(vec![array]) } - fn unfreeze_from_rows(&mut self, cursors: &mut [Cursor<&[u8]>]) -> Result<()> { + fn unfreeze_from_arrays(&mut self, arrays: &[ArrayRef]) -> Result<()> { assert_eq!(self.num_records(), 0, "expect empty AccColumn"); - let mut data = vec![]; - for cursor in cursors.iter_mut() { - let bytes_len = read_len(cursor)?; - data.write_all((bytes_len as i32).to_be_bytes().as_ref())?; - std::io::copy(&mut cursor.take(bytes_len as u64), &mut data)?; - } - - let data_buffer = jni_new_direct_byte_buffer!(data)?; + let num_rows = arrays[0].len(); + let ffi_imported_rows = FFI_ArrowArray::new(&arrays[0].to_data()); let rows = jni_call!(SparkUDAFWrapperContext(self.jcontext.as_obj()) - .deserializeRows(data_buffer.as_obj()) -> JObject)?; + .importRows(&ffi_imported_rows as *const FFI_ArrowArray as i64) -> JObject)?; self.obj = jni_new_global_ref!(rows.as_obj())?; - assert_eq!( - self.num_records(), - cursors.len(), - "unfreeze rows count mismatch" - ); + assert_eq!(self.num_records(), num_rows, "unfreeze rows count mismatch"); Ok(()) } - fn spill(&self, _idx: IdxSelection<'_>, _buf: &mut SpillCompressedWriter) -> Result<()> { + fn spill(&mut self, _idx: IdxSelection<'_>, _buf: &mut SpillCompressedWriter) -> Result<()> { unimplemented!("should call spill_with_indices_cache instead") } diff --git a/native-engine/datafusion-ext-plans/src/agg/sum.rs b/native-engine/datafusion-ext-plans/src/agg/sum.rs index 7bae0e11e..0b60107a0 100644 --- a/native-engine/datafusion-ext-plans/src/agg/sum.rs +++ b/native-engine/datafusion-ext-plans/src/agg/sum.rs @@ -26,9 +26,7 @@ use datafusion_ext_commons::{df_unimplemented_err, downcast_any}; use crate::{ agg::{ Agg, - acc::{ - AccColumnRef, AccPrimColumn, acc_generic_column_to_array, create_acc_generic_column, - }, + acc::{AccColumnRef, AccPrimColumn, create_acc_generic_column}, agg::IdxSelection, }, idx_for_zipped, @@ -37,11 +35,17 @@ use crate::{ pub struct AggSum { child: PhysicalExprRef, data_type: DataType, + acc_array_data_types: Vec, } impl AggSum { pub fn try_new(child: PhysicalExprRef, data_type: DataType) -> Result { - Ok(Self { child, data_type }) + let acc_array_data_types = vec![data_type.clone()]; + Ok(Self { + child, + data_type, + acc_array_data_types, + }) } } @@ -84,7 +88,11 @@ impl Agg for AggSum { } fn create_acc_column(&self, num_rows: usize) -> AccColumnRef { - create_acc_generic_column(&self.data_type, num_rows) + create_acc_generic_column(self.data_type.clone(), num_rows) + } + + fn acc_array_data_types(&self) -> &[DataType] { + &self.acc_array_data_types } fn partial_update( @@ -145,6 +153,6 @@ impl Agg for AggSum { } fn final_merge(&self, accs: &mut AccColumnRef, acc_idx: IdxSelection<'_>) -> Result { - acc_generic_column_to_array(accs, &self.data_type, acc_idx) + Ok(accs.freeze_to_arrays(acc_idx)?[0].clone()) } } diff --git a/native-engine/datafusion-ext-plans/src/rename_columns_exec.rs b/native-engine/datafusion-ext-plans/src/rename_columns_exec.rs index 51265c414..387a39c86 100644 --- a/native-engine/datafusion-ext-plans/src/rename_columns_exec.rs +++ b/native-engine/datafusion-ext-plans/src/rename_columns_exec.rs @@ -16,7 +16,7 @@ use std::{any::Any, fmt::Formatter, sync::Arc}; use arrow::{ - datatypes::{Field, Fields, Schema, SchemaRef}, + datatypes::{Schema, SchemaRef}, record_batch::{RecordBatch, RecordBatchOptions}, }; use async_trait::async_trait; @@ -35,7 +35,7 @@ use datafusion::{ use futures::StreamExt; use once_cell::sync::OnceCell; -use crate::{agg::AGG_BUF_COLUMN_NAME, common::execution_context::ExecutionContext}; +use crate::common::execution_context::ExecutionContext; #[derive(Debug, Clone)] pub struct RenameColumnsExec { @@ -52,35 +52,15 @@ impl RenameColumnsExec { renamed_column_names: Vec, ) -> Result { let input_schema = input.schema(); - let mut new_names = vec![]; - - for (i, field) in input_schema - .fields() - .iter() - .take(renamed_column_names.len()) - .enumerate() - { - if field.name() != AGG_BUF_COLUMN_NAME { - new_names.push(renamed_column_names[i].clone()); - } else { - new_names.push(AGG_BUF_COLUMN_NAME.to_owned()); - break; - } - } + let mut new_fields = Vec::with_capacity(input_schema.fields().len()); - while new_names.len() < input_schema.fields().len() { - new_names.push(input_schema.field(new_names.len()).name().clone()); + for (old_field, new_name) in input_schema.fields().iter().zip(&renamed_column_names) { + new_fields.push(old_field.as_ref().clone().with_name(new_name)); + } + while new_fields.len() < input_schema.fields().len() { + new_fields.push(input_schema.field(new_fields.len()).clone()); } - let renamed_column_names = new_names; - let renamed_schema = Arc::new(Schema::new( - renamed_column_names - .iter() - .zip(input_schema.fields()) - .map(|(new_name, field)| { - Field::new(new_name, field.data_type().clone(), field.is_nullable()) - }) - .collect::(), - )); + let renamed_schema = Arc::new(Schema::new(new_fields)); Ok(Self { input, diff --git a/spark-extension-shims-spark/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggExec.scala b/spark-extension-shims-spark/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggExec.scala index 7e4b9d6f9..67b806b65 100644 --- a/spark-extension-shims-spark/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggExec.scala +++ b/spark-extension-shims-spark/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggExec.scala @@ -17,16 +17,12 @@ package org.apache.spark.sql.execution.auron.plan import org.apache.spark.sql.catalyst.expressions.Attribute -import org.apache.spark.sql.catalyst.expressions.AttributeReference import org.apache.spark.sql.catalyst.expressions.Expression -import org.apache.spark.sql.catalyst.expressions.ExprId import org.apache.spark.sql.catalyst.expressions.NamedExpression import org.apache.spark.sql.catalyst.expressions.aggregate.AggregateExpression -import org.apache.spark.sql.catalyst.expressions.aggregate.Final import org.apache.spark.sql.execution.SparkPlan import org.apache.spark.sql.execution.aggregate.BaseAggregateExec import org.apache.spark.sql.execution.auron.plan.NativeAggBase.AggExecMode -import org.apache.spark.sql.types.BinaryType import org.apache.auron.sparkver @@ -55,22 +51,13 @@ case class NativeAggExec( @sparkver("3.3 / 3.4 / 3.5") override val initialInputBufferOffset: Int = theInitialInputBufferOffset - override def output: Seq[Attribute] = - if (aggregateExpressions.map(_.mode).contains(Final)) { - groupingExpressions.map(_.toAttribute) ++ aggregateAttributes - } else { - groupingExpressions.map(_.toAttribute) :+ - AttributeReference(NativeAggBase.AGG_BUF_COLUMN_NAME, BinaryType, nullable = false)( - ExprId.apply(NativeAggBase.AGG_BUF_COLUMN_EXPR_ID)) - } - @sparkver("3.2 / 3.3 / 3.4 / 3.5") override def isStreaming: Boolean = false @sparkver("3.2 / 3.3 / 3.4 / 3.5") override def numShufflePartitions: Option[Int] = None - override def resultExpressions: Seq[NamedExpression] = output + override def resultExpressions: Seq[NamedExpression] = outputAttributes @sparkver("3.2 / 3.3 / 3.4 / 3.5") override protected def withNewChildInternal(newChild: SparkPlan): SparkPlan = diff --git a/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala b/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala index 4f124bd8f..73f5dfb83 100644 --- a/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala +++ b/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala @@ -836,8 +836,7 @@ object AuronConverters extends Logging { addRenameColumnsExec(convertToNative(exec.child)) case _ => if (needRenameColumns(exec.child)) { - val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) :+ - NativeAggBase.AGG_BUF_COLUMN_NAME + val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) Shims.get.createNativeRenameColumnsExec(convertToNative(exec.child), newNames) } else { convertToNative(exec.child) @@ -893,8 +892,7 @@ object AuronConverters extends Logging { addRenameColumnsExec(convertToNative(exec.child)) case _ => if (needRenameColumns(exec.child)) { - val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) :+ - NativeAggBase.AGG_BUF_COLUMN_NAME + val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) Shims.get.createNativeRenameColumnsExec(convertToNative(exec.child), newNames) } else { convertToNative(exec.child) @@ -947,8 +945,7 @@ object AuronConverters extends Logging { addRenameColumnsExec(convertToNative(child)) case _ => if (needRenameColumns(child)) { - val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) :+ - NativeAggBase.AGG_BUF_COLUMN_NAME + val newNames = exec.groupingExpressions.map(Util.getFieldNameByExprId) Shims.get.createNativeRenameColumnsExec(convertToNative(child), newNames) } else { convertToNative(child) diff --git a/spark-extension/src/main/scala/org/apache/spark/sql/auron/SparkUDAFWrapperContext.scala b/spark-extension/src/main/scala/org/apache/spark/sql/auron/SparkUDAFWrapperContext.scala index 7adb250be..bf95b10e8 100644 --- a/spark-extension/src/main/scala/org/apache/spark/sql/auron/SparkUDAFWrapperContext.scala +++ b/spark-extension/src/main/scala/org/apache/spark/sql/auron/SparkUDAFWrapperContext.scala @@ -20,8 +20,6 @@ import java.io.ByteArrayOutputStream import java.io.DataInputStream import java.io.DataOutputStream import java.io.EOFException -import java.io.InputStream -import java.io.OutputStream import java.nio.ByteBuffer import scala.collection.mutable @@ -29,7 +27,7 @@ import scala.collection.mutable.ArrayBuffer import org.apache.arrow.c.ArrowArray import org.apache.arrow.c.Data -import org.apache.arrow.vector.VectorSchemaRoot +import org.apache.arrow.vector.{VarBinaryVector, VectorSchemaRoot} import org.apache.arrow.vector.dictionary.DictionaryProvider import org.apache.arrow.vector.dictionary.DictionaryProvider.MapDictionaryProvider import org.apache.spark.SparkEnv @@ -162,12 +160,15 @@ case class SparkUDAFWrapperContext[B](serialized: ByteBuffer) extends Logging { } } - def serializeRows(rows: BufferRowsColumn[B], indices: Array[Int]): Array[Byte] = { - aggEvaluator.get.serializeRows(rows, indices.iterator) + def exportRows( + rows: BufferRowsColumn[B], + indices: Array[Int], + outputArrowBinaryArrayPtr: Long): Unit = { + aggEvaluator.get.exportRows(rows, indices.iterator, outputArrowBinaryArrayPtr) } - def deserializeRows(dataBuffer: ByteBuffer): BufferRowsColumn[B] = { - aggEvaluator.get.deserializeRows(dataBuffer) + def importRows(inputArrowBinaryArrayPtr: Long): BufferRowsColumn[B] = { + aggEvaluator.get.importRows(inputArrowBinaryArrayPtr) } def spill( @@ -196,18 +197,15 @@ trait BufferRowsColumn[B] { } trait AggregateEvaluator[B, R <: BufferRowsColumn[B]] extends Logging { - private lazy val spillCodec = new SnappyCompressionCodec(SparkEnv.get.conf) + protected lazy val spillCodec = new SnappyCompressionCodec(SparkEnv.get.conf) def createEmptyColumn(): R - def serializeRows( - rows: R, - indices: Iterator[Int], - streamWrapper: OutputStream => OutputStream = { s => s }): Array[Byte] + def exportRows(rows: R, indices: Iterator[Int], outputArrowBinaryArrayPtr: Long): Unit + def importRows(inputArrowBinaryArrayPtr: Long): BufferRowsColumn[B] - def deserializeRows( - dataBuffer: ByteBuffer, - streamWrapper: InputStream => InputStream = { s => s }): R + def spillToBuffer(rows: R, indices: Iterator[Int]): ByteBuffer + def unspillFromBuffer(buffer: ByteBuffer): BufferRowsColumn[B] def spill( memTracker: SparkUDAFMemTracker, @@ -216,8 +214,7 @@ trait AggregateEvaluator[B, R <: BufferRowsColumn[B]] extends Logging { spillIdx: Long): Int = { val hsm = SparkOnHeapSpillManager.current val spillId = memTracker.getSpill(spillIdx) - val byteBuffer = - ByteBuffer.wrap(serializeRows(rows, indices, spillCodec.compressedOutputStream)) + val byteBuffer = spillToBuffer(rows, indices) val spillBlockSize = byteBuffer.limit() hsm.writeSpill(spillId, byteBuffer) spillBlockSize @@ -233,7 +230,7 @@ trait AggregateEvaluator[B, R <: BufferRowsColumn[B]] extends Logging { val readSize = hsm.readSpill(spillId, byteBuffer).toLong assert(readSize == spillBlockSize) byteBuffer.flip() - deserializeRows(byteBuffer, spillCodec.compressedInputStream) + unspillFromBuffer(byteBuffer) } } @@ -274,14 +271,56 @@ class DeclarativeEvaluator(val agg: DeclarativeAggregate) DeclarativeAggRowsColumn(this, ArrayBuffer()) } - override def serializeRows( + override def exportRows( rows: DeclarativeAggRowsColumn, indices: Iterator[Int], - streamWrapper: OutputStream => OutputStream): Array[Byte] = { + outputArrowBinaryArrayPtr: Long): Unit = { + + Using.resource(new VarBinaryVector("output", ROOT_ALLOCATOR)) { binaryVector => + val rowDataStream = new ByteArrayOutputStream() + val rowDataBuffer = new Array[Byte](1024) + var valueCount = 0 + + for ((rowIdx, outputRowIdx) <- indices.zipWithIndex) { + rows.rows(rowIdx).writeToStream(rowDataStream, rowDataBuffer) + rows.rows(rowIdx) = releasedRow + binaryVector.setSafe(outputRowIdx, rowDataStream.toByteArray) + rowDataStream.reset() + valueCount += 1 + } + binaryVector.setValueCount(valueCount) + + Using.resource(ArrowArray.wrap(outputArrowBinaryArrayPtr)) { outputArray => + Data.exportVector(ROOT_ALLOCATOR, binaryVector, new MapDictionaryProvider, outputArray) + } + } + } + + override def importRows(inputArrowBinaryArrayPtr: Long): DeclarativeAggRowsColumn = { + Using.resource(new VarBinaryVector("input", ROOT_ALLOCATOR)) { binaryVector => + Using.resource(ArrowArray.wrap(inputArrowBinaryArrayPtr)) { inputArray => + Data.importIntoVector(ROOT_ALLOCATOR, inputArray, binaryVector, new MapDictionaryProvider) + } + val numRows = binaryVector.getValueCount + val numFields = agg.aggBufferSchema.length + val rows = new ArrayBuffer[UnsafeRow]() + + for (rowIdx <- 0 until numRows) { + val row = new UnsafeRow(numFields) + val rowData = binaryVector.get(rowIdx) + row.pointTo(rowData, rowData.length) + rows.append(row) + } + DeclarativeAggRowsColumn(this, rows) + } + } + override def spillToBuffer( + rows: DeclarativeAggRowsColumn, + indices: Iterator[Int]): ByteBuffer = { val numFields = agg.aggBufferSchema.length val outputDataStream = new ByteArrayOutputStream() - val wrappedStream = streamWrapper(outputDataStream) + val wrappedStream = spillCodec.compressedOutputStream(outputDataStream) val serializer = new UnsafeRowSerializer(numFields).newInstance() Using(serializer.serializeStream(wrappedStream)) { ser => @@ -291,16 +330,14 @@ class DeclarativeEvaluator(val agg: DeclarativeAggregate) } } wrappedStream.close() - outputDataStream.toByteArray + ByteBuffer.wrap(outputDataStream.toByteArray) } - override def deserializeRows( - dataBuffer: ByteBuffer, - streamWrapper: InputStream => InputStream): DeclarativeAggRowsColumn = { + override def unspillFromBuffer(buffer: ByteBuffer): DeclarativeAggRowsColumn = { val numFields = agg.aggBufferSchema.length val deserializer = new UnsafeRowSerializer(numFields).newInstance() - val inputDataStream = new ByteBufferInputStream(dataBuffer) - val wrappedStream = streamWrapper(inputDataStream) + val inputDataStream = new ByteBufferInputStream(buffer) + val wrappedStream = spillCodec.compressedInputStream(inputDataStream) val rows = new ArrayBuffer[UnsafeRow]() Using.resource(deserializer.deserializeStream(wrappedStream)) { deser => @@ -382,13 +419,47 @@ class TypedImperativeEvaluator[B](val agg: TypedImperativeAggregate[B]) new TypedImperativeAggRowsColumn[B](this, ArrayBuffer()) } - override def serializeRows( + override def exportRows( rows: TypedImperativeAggRowsColumn[B], indices: Iterator[Int], - streamWrapper: OutputStream => OutputStream): Array[Byte] = { + outputArrowBinaryArrayPtr: Long): Unit = { + + Using.resource(new VarBinaryVector("output", ROOT_ALLOCATOR)) { binaryVector => + var valueCount = 0 + for ((rowIdx, outputRowIdx) <- indices.zipWithIndex) { + binaryVector.setSafe(outputRowIdx, rows.serializedRow(rowIdx)) + rows.rows(rowIdx) = releasedRow + valueCount += 1 + } + binaryVector.setValueCount(valueCount) + + Using.resource(ArrowArray.wrap(outputArrowBinaryArrayPtr)) { outputArray => + Data.exportVector(ROOT_ALLOCATOR, binaryVector, new MapDictionaryProvider, outputArray) + } + } + } + + override def importRows(inputArrowBinaryArrayPtr: Long): TypedImperativeAggRowsColumn[B] = { + Using.resource(new VarBinaryVector("input", ROOT_ALLOCATOR)) { binaryVector => + Using.resource(ArrowArray.wrap(inputArrowBinaryArrayPtr)) { inputArray => + Data.importIntoVector(ROOT_ALLOCATOR, inputArray, binaryVector, new MapDictionaryProvider) + } + val numRows = binaryVector.getValueCount + val rows = ArrayBuffer[RowType]() + for (rowIdx <- 0 until numRows) { + val rowData = binaryVector.get(rowIdx) + rows.append(SerializedRowType(rowData)) + } + TypedImperativeAggRowsColumn(this, rows) + } + } + + override def spillToBuffer( + rows: TypedImperativeAggRowsColumn[B], + indices: Iterator[Int]): ByteBuffer = { val outputStream = new ByteArrayOutputStream() - val wrappedStream = streamWrapper(outputStream) + val wrappedStream = spillCodec.compressedOutputStream(outputStream) val dataOut = new DataOutputStream(wrappedStream) for (i <- indices) { @@ -398,15 +469,13 @@ class TypedImperativeEvaluator[B](val agg: TypedImperativeAggregate[B]) rows.rows(i) = releasedRow } dataOut.close() - outputStream.toByteArray + ByteBuffer.wrap(outputStream.toByteArray) } - override def deserializeRows( - dataBuffer: ByteBuffer, - streamWrapper: InputStream => InputStream): TypedImperativeAggRowsColumn[B] = { + override def unspillFromBuffer(buffer: ByteBuffer): TypedImperativeAggRowsColumn[B] = { val rows = ArrayBuffer[RowType]() - val inputStream = new ByteBufferInputStream(dataBuffer) - val wrappedStream = streamWrapper(inputStream) + val inputStream = new ByteBufferInputStream(buffer) + val wrappedStream = spillCodec.compressedInputStream(inputStream) val dataIn = new DataInputStream(wrappedStream) var finished = false @@ -431,7 +500,9 @@ class TypedImperativeEvaluator[B](val agg: TypedImperativeAggregate[B]) } trait RowType + case class SerializedRowType(bytes: Array[Byte]) extends RowType + case class DeserializedRowType[B](row: B) extends RowType case class TypedImperativeAggRowsColumn[B]( @@ -440,6 +511,7 @@ case class TypedImperativeAggRowsColumn[B]( extends BufferRowsColumn[B] { override def length: Int = rows.length + override def memUsed: Int = { evaluator.estimatedRowSize match { case Some(estimRowSize) => rows.length * estimRowSize diff --git a/spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggBase.scala b/spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggBase.scala index 54e2cddc4..6c510c0b1 100644 --- a/spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggBase.scala +++ b/spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggBase.scala @@ -52,8 +52,7 @@ import org.apache.spark.sql.execution.auron.plan.NativeAggBase.SortAgg import org.apache.spark.sql.execution.exchange.ReusedExchangeExec import org.apache.spark.sql.execution.metric.SQLMetric import org.apache.spark.sql.execution.metric.SQLMetrics -import org.apache.spark.sql.types.BinaryType -import org.apache.spark.sql.types.DataType +import org.apache.spark.sql.types.{BinaryType, BooleanType, DataType, LongType} import org.apache.auron.{protobuf => pb} import org.apache.auron.jni.AuronAdaptor @@ -142,15 +141,18 @@ abstract class NativeAggBase( nativeAggrs nativeAggrModes - override def output: Seq[Attribute] = + def outputAttributes: Seq[Attribute] = if (nativeAggrModes.contains(pb.AggMode.FINAL)) { groupingExpressions.map(_.toAttribute) ++ aggregateAttributes } else { - groupingExpressions.map(_.toAttribute) :+ - AttributeReference(NativeAggBase.AGG_BUF_COLUMN_NAME, BinaryType, nullable = false)( - ExprId.apply(NativeAggBase.AGG_BUF_COLUMN_EXPR_ID)) + val aggBufferAttrs = nativeAggrInfos + .flatMap(_.aggBufferDataTypes) + .map(AttributeReference("", _, nullable = true)(ExprId.apply(0))) + groupingExpressions.map(_.toAttribute) ++ aggBufferAttrs } + override def output: Seq[Attribute] = outputAttributes + override def outputPartitioning: Partitioning = child.outputPartitioning @@ -209,38 +211,18 @@ abstract class NativeAggBase( } object NativeAggBase extends Logging { - - val AGG_BUF_COLUMN_EXPR_ID = 9223372036854775807L - val AGG_BUF_COLUMN_NAME = s"#$AGG_BUF_COLUMN_EXPR_ID" - trait AggExecMode; case object HashAgg extends AggExecMode case object SortAgg extends AggExecMode - case class NativeAggrPartialState(stateAttr: Attribute, arrowType: pb.ArrowType) - - object NativeAggrPartialState { - def apply( - aggrAttr: Attribute, - stateFieldName: String, - dataType: DataType, - nullable: Boolean, - arrowType: pb.ArrowType = null): NativeAggrPartialState = { - - val fieldName = s"${Util.getFieldNameByExprId(aggrAttr)}[$stateFieldName]" - val stateAttr = AttributeReference(fieldName, dataType, nullable)(aggrAttr.exprId) - NativeAggrPartialState( - stateAttr, - arrowType = Option(arrowType).getOrElse(NativeConverters.convertDataType(dataType))) - } - } - case class NativeAggrInfo( mode: AggregateMode, nativeAggrs: Seq[pb.PhysicalExprNode], + aggBufferDataTypes: Seq[DataType], outputAttr: Attribute) def getNativeAggrInfo(aggr: AggregateExpression, aggrAttr: Attribute): NativeAggrInfo = { + val aggBufferDataTypes = computeNativeAggBufferDataTypes(aggr.aggregateFunction) val reducedAggr = AggregateExpression( aggr.aggregateFunction .mapChildren(e => createPlaceholder(e)) @@ -253,12 +235,17 @@ object NativeAggBase extends Logging { aggr.mode match { case Partial => - NativeAggrInfo(aggr.mode, NativeConverters.convertAggregateExpr(aggr) :: Nil, outputAttr) + NativeAggrInfo( + aggr.mode, + NativeConverters.convertAggregateExpr(aggr) :: Nil, + aggBufferDataTypes, + outputAttr) case PartialMerge | Final => NativeAggrInfo( aggr.mode, NativeConverters.convertAggregateExpr(reducedAggr) :: Nil, + aggBufferDataTypes, outputAttr) case Complete => @@ -310,4 +297,17 @@ object NativeAggBase extends Logging { } findRecursive(exec.children.head) } + + private def computeNativeAggBufferDataTypes(aggr: AggregateFunction): Seq[DataType] = { + aggr match { + case _: Count => Seq(LongType) + case f: Max => Seq(f.dataType) + case f: Min => Seq(f.dataType) + case f: Sum => Seq(f.dataType) + case f: Average => Seq(f.dataType, LongType) + case f @ First(_, true) => Seq(f.dataType) + case f @ First(_, false) => Seq(f.dataType, BooleanType) + case _ => Seq(BinaryType) + } + } }