diff options
author | Michael Armbrust <michael@databricks.com> | 2014-07-29 18:14:20 -0700 |
---|---|---|
committer | Michael Armbrust <michael@databricks.com> | 2014-07-29 18:14:20 -0700 |
commit | 39b8193102ebf32ef6b40631a949318b281d44a1 (patch) | |
tree | 193c46eae261cbf81de4af5bd0d1d7abe5c453d2 /sql/catalyst/src | |
parent | 2c356665c986564482ccfb3f880f0a2c023a7cb7 (diff) | |
download | spark-39b8193102ebf32ef6b40631a949318b281d44a1.tar.gz spark-39b8193102ebf32ef6b40631a949318b281d44a1.tar.bz2 spark-39b8193102ebf32ef6b40631a949318b281d44a1.zip |
[SPARK-2716][SQL] Don't check resolved for having filters.
For queries like `... HAVING COUNT(*) > 9` the expression is always resolved since it contains no attributes. This was causing us to avoid doing the Having clause aggregation rewrite.
Author: Michael Armbrust <michael@databricks.com>
Closes #1640 from marmbrus/havingNoRef and squashes the following commits:
92d3901 [Michael Armbrust] Don't check resolved for having filters.
Diffstat (limited to 'sql/catalyst/src')
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala | 2 |
1 files changed, 1 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 02bdb64f30..74c0104e5b 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 @@ -159,7 +159,7 @@ class Analyzer(catalog: Catalog, registry: FunctionRegistry, caseSensitive: Bool object UnresolvedHavingClauseAttributes extends Rule[LogicalPlan] { def apply(plan: LogicalPlan): LogicalPlan = plan transformUp { case filter @ Filter(havingCondition, aggregate @ Aggregate(_, originalAggExprs, _)) - if !filter.resolved && aggregate.resolved && containsAggregate(havingCondition) => { + if aggregate.resolved && containsAggregate(havingCondition) => { val evaluatedCondition = Alias(havingCondition, "havingCondition")() val aggExprsWithHaving = evaluatedCondition +: originalAggExprs |