Skip to content

Commit adf3a66

Browse files
committed
add more tests, fix existing
1 parent 5278272 commit adf3a66

File tree

10 files changed

+1598
-1495
lines changed

10 files changed

+1598
-1495
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/AliasAwareOutputExpression.scala

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import org.apache.spark.sql.catalyst.plans.physical.{HashPartitioning, Partition
2525
trait AliasAwareOutputExpression extends UnaryExecNode {
2626
protected def outputExpressions: Seq[NamedExpression]
2727

28-
lazy val aliasMap = AttributeMap(outputExpressions.collect {
28+
private lazy val aliasMap = AttributeMap(outputExpressions.collect {
2929
case a @ Alias(child: AttributeReference, _) => (child, a.toAttribute)
3030
})
3131

@@ -42,13 +42,17 @@ trait AliasAwareOutputExpression extends UnaryExecNode {
4242
*/
4343
trait AliasAwareOutputPartitioning extends AliasAwareOutputExpression {
4444
final override def outputPartitioning: Partitioning = {
45-
child.outputPartitioning match {
46-
case e: Expression if hasAlias =>
47-
val normalizedExp = e.transformDown {
48-
case attr: AttributeReference => replaceAlias(attr).getOrElse(attr)
49-
}
50-
normalizedExp.asInstanceOf[Partitioning]
51-
case other => other
45+
if (hasAlias) {
46+
child.outputPartitioning match {
47+
case e: Expression =>
48+
val normalizedExpr = e.transform {
49+
case attr: AttributeReference => replaceAlias(attr).getOrElse(attr)
50+
}
51+
normalizedExpr.asInstanceOf[Partitioning]
52+
case other => other
53+
}
54+
} else {
55+
child.outputPartitioning
5256
}
5357
}
5458
}

sql/core/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q2.sf100/explain.txt

Lines changed: 82 additions & 87 deletions
Large diffs are not rendered by default.

sql/core/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q2.sf100/simplified.txt

Lines changed: 47 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,65 @@
1-
WholeStageCodegen (16)
1+
WholeStageCodegen (15)
22
Sort [d_week_seq1]
33
InputAdapter
44
Exchange [d_week_seq1] #1
5-
WholeStageCodegen (15)
5+
WholeStageCodegen (14)
66
Project [d_week_seq1,sun_sales1,sun_sales2,mon_sales1,mon_sales2,tue_sales1,tue_sales2,wed_sales1,wed_sales2,thu_sales1,thu_sales2,fri_sales1,fri_sales2,sat_sales1,sat_sales2]
77
SortMergeJoin [d_week_seq1,d_week_seq2]
88
InputAdapter
9-
WholeStageCodegen (7)
9+
WholeStageCodegen (6)
1010
Sort [d_week_seq1]
11-
InputAdapter
12-
Exchange [d_week_seq1] #2
13-
WholeStageCodegen (6)
14-
Project [d_week_seq,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales]
15-
BroadcastHashJoin [d_week_seq,d_week_seq]
16-
HashAggregate [d_week_seq,sum,sum,sum,sum,sum,sum,sum] [sum(UnscaledValue(CASE WHEN (d_day_name = Sunday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Monday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Tuesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Wednesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Thursday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Friday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Saturday) THEN sales_price ELSE null END)),sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum]
17-
InputAdapter
18-
Exchange [d_week_seq] #3
19-
WholeStageCodegen (4)
20-
HashAggregate [d_week_seq,d_day_name,sales_price] [sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum]
21-
Project [sales_price,d_week_seq,d_day_name]
22-
BroadcastHashJoin [sold_date_sk,d_date_sk]
23-
InputAdapter
24-
Union
25-
WholeStageCodegen (1)
26-
Project [ws_sold_date_sk,ws_ext_sales_price]
27-
Filter [ws_sold_date_sk]
28-
ColumnarToRow
29-
InputAdapter
30-
Scan parquet default.web_sales [ws_sold_date_sk,ws_ext_sales_price]
31-
WholeStageCodegen (2)
32-
Project [cs_sold_date_sk,cs_ext_sales_price]
33-
Filter [cs_sold_date_sk]
34-
ColumnarToRow
35-
InputAdapter
36-
Scan parquet default.catalog_sales [cs_sold_date_sk,cs_ext_sales_price]
37-
InputAdapter
38-
BroadcastExchange #4
39-
WholeStageCodegen (3)
40-
Filter [d_date_sk,d_week_seq]
41-
ColumnarToRow
42-
InputAdapter
43-
Scan parquet default.date_dim [d_date_sk,d_week_seq,d_day_name]
44-
InputAdapter
45-
BroadcastExchange #5
46-
WholeStageCodegen (5)
47-
Project [d_week_seq]
48-
Filter [d_year,d_week_seq]
49-
ColumnarToRow
50-
InputAdapter
51-
Scan parquet default.date_dim [d_week_seq,d_year]
11+
Project [d_week_seq,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales]
12+
BroadcastHashJoin [d_week_seq,d_week_seq]
13+
HashAggregate [d_week_seq,sum,sum,sum,sum,sum,sum,sum] [sum(UnscaledValue(CASE WHEN (d_day_name = Sunday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Monday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Tuesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Wednesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Thursday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Friday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Saturday) THEN sales_price ELSE null END)),sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum]
14+
InputAdapter
15+
Exchange [d_week_seq] #2
16+
WholeStageCodegen (4)
17+
HashAggregate [d_week_seq,d_day_name,sales_price] [sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum,sum]
18+
Project [sales_price,d_week_seq,d_day_name]
19+
BroadcastHashJoin [sold_date_sk,d_date_sk]
20+
InputAdapter
21+
Union
22+
WholeStageCodegen (1)
23+
Project [ws_sold_date_sk,ws_ext_sales_price]
24+
Filter [ws_sold_date_sk]
25+
ColumnarToRow
26+
InputAdapter
27+
Scan parquet default.web_sales [ws_sold_date_sk,ws_ext_sales_price]
28+
WholeStageCodegen (2)
29+
Project [cs_sold_date_sk,cs_ext_sales_price]
30+
Filter [cs_sold_date_sk]
31+
ColumnarToRow
32+
InputAdapter
33+
Scan parquet default.catalog_sales [cs_sold_date_sk,cs_ext_sales_price]
34+
InputAdapter
35+
BroadcastExchange #3
36+
WholeStageCodegen (3)
37+
Filter [d_date_sk,d_week_seq]
38+
ColumnarToRow
39+
InputAdapter
40+
Scan parquet default.date_dim [d_date_sk,d_week_seq,d_day_name]
41+
InputAdapter
42+
BroadcastExchange #4
43+
WholeStageCodegen (5)
44+
Project [d_week_seq]
45+
Filter [d_year,d_week_seq]
46+
ColumnarToRow
47+
InputAdapter
48+
Scan parquet default.date_dim [d_week_seq,d_year]
5249
InputAdapter
53-
WholeStageCodegen (14)
50+
WholeStageCodegen (13)
5451
Sort [d_week_seq2]
5552
InputAdapter
56-
Exchange [d_week_seq2] #6
57-
WholeStageCodegen (13)
53+
Exchange [d_week_seq2] #5
54+
WholeStageCodegen (12)
5855
Project [d_week_seq,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales]
5956
BroadcastHashJoin [d_week_seq,d_week_seq]
6057
HashAggregate [d_week_seq,sum,sum,sum,sum,sum,sum,sum] [sum(UnscaledValue(CASE WHEN (d_day_name = Sunday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Monday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Tuesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Wednesday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Thursday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Friday) THEN sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Saturday) THEN sales_price ELSE null END)),sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum]
6158
InputAdapter
62-
ReusedExchange [d_week_seq,sum,sum,sum,sum,sum,sum,sum] #3
59+
ReusedExchange [d_week_seq,sum,sum,sum,sum,sum,sum,sum] #2
6360
InputAdapter
64-
BroadcastExchange #7
65-
WholeStageCodegen (12)
61+
BroadcastExchange #6
62+
WholeStageCodegen (11)
6663
Project [d_week_seq]
6764
Filter [d_year,d_week_seq]
6865
ColumnarToRow

0 commit comments

Comments
 (0)