You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ma...@apache.org on 2015/10/14 02:11:26 UTC
spark git commit: [SPARK-11032] [SQL] correctly handle having
Repository: spark
Updated Branches:
refs/heads/master 328d1b3e4 -> e170c2216
[SPARK-11032] [SQL] correctly handle having
We should not stop resolving having when the having condtion is resolved, or something like `count(1)` will crash.
Author: Wenchen Fan <cl...@163.com>
Closes #9105 from cloud-fan/having.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/e170c221
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/e170c221
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/e170c221
Branch: refs/heads/master
Commit: e170c22160bb452f98c340489ebf8390116a8cbb
Parents: 328d1b3
Author: Wenchen Fan <cl...@163.com>
Authored: Tue Oct 13 17:11:22 2015 -0700
Committer: Michael Armbrust <mi...@databricks.com>
Committed: Tue Oct 13 17:11:22 2015 -0700
----------------------------------------------------------------------
.../org/apache/spark/sql/catalyst/analysis/Analyzer.scala | 2 +-
.../src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala | 9 +++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/e170c221/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
----------------------------------------------------------------------
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 f5597a0..041ab22 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
@@ -553,7 +553,7 @@ class Analyzer(
def apply(plan: LogicalPlan): LogicalPlan = plan resolveOperators {
case filter @ Filter(havingCondition,
aggregate @ Aggregate(grouping, originalAggExprs, child))
- if aggregate.resolved && !filter.resolved =>
+ if aggregate.resolved =>
// Try resolving the condition of the filter as though it is in the aggregate clause
val aggregatedCondition =
http://git-wip-us.apache.org/repos/asf/spark/blob/e170c221/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index eca6f10..6365916 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -1809,4 +1809,13 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
df1.withColumn("diff", lit(0)))
}
}
+
+ test("SPARK-11032: resolve having correctly") {
+ withTempTable("src") {
+ Seq(1 -> "a").toDF("i", "j").registerTempTable("src")
+ checkAnswer(
+ sql("SELECT MIN(t.i) FROM (SELECT * FROM src WHERE i > 0) t HAVING(COUNT(1) > 0)"),
+ Row(1))
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org