aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorAndrew Ray <ray.andrew@gmail.com>2016-09-15 21:45:29 +0200
committerHerman van Hovell <hvanhovell@databricks.com>2016-09-15 21:45:29 +0200
commitb72486f82dd9920135442191be5d384028e7fb41 (patch)
tree92a17fed6c2538036d26757b0d2507c9e4b7a061 /sql/catalyst
parent1202075c95eabba0ffebc170077df798f271a139 (diff)
downloadspark-b72486f82dd9920135442191be5d384028e7fb41.tar.gz
spark-b72486f82dd9920135442191be5d384028e7fb41.tar.bz2
spark-b72486f82dd9920135442191be5d384028e7fb41.zip
[SPARK-17458][SQL] Alias specified for aggregates in a pivot are not honored
## What changes were proposed in this pull request? This change preserves aliases that are given for pivot aggregations ## How was this patch tested? New unit test Author: Andrew Ray <ray.andrew@gmail.com> Closes #15111 from aray/SPARK-17458.
Diffstat (limited to 'sql/catalyst')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
index 92bf8e0536..5210f42c55 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
@@ -373,7 +373,15 @@ class Analyzer(
case Pivot(groupByExprs, pivotColumn, pivotValues, aggregates, child) =>
val singleAgg = aggregates.size == 1
def outputName(value: Literal, aggregate: Expression): String = {
- if (singleAgg) value.toString else value + "_" + aggregate.sql
+ if (singleAgg) {
+ value.toString
+ } else {
+ val suffix = aggregate match {
+ case n: NamedExpression => n.name
+ case _ => aggregate.sql
+ }
+ value + "_" + suffix
+ }
}
if (aggregates.forall(a => PivotFirst.supportsDataType(a.dataType))) {
// Since evaluating |pivotValues| if statements for each input row can get slow this is an