aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src
diff options
context:
space:
mode:
authorWenchen Fan <cloud0fan@outlook.com>2015-08-15 14:13:12 -0700
committerMichael Armbrust <michael@databricks.com>2015-08-15 14:13:12 -0700
commit570567258b5839c1e0e28b5182f4c29b119ed4c4 (patch)
tree631e483fb868728140a51dcbd11e019ab6292eab /sql/catalyst/src
parenta85fb6c07fdda5c74d53d6373910dcf5db3ff111 (diff)
downloadspark-570567258b5839c1e0e28b5182f4c29b119ed4c4.tar.gz
spark-570567258b5839c1e0e28b5182f4c29b119ed4c4.tar.bz2
spark-570567258b5839c1e0e28b5182f4c29b119ed4c4.zip
[SPARK-9955] [SQL] correct error message for aggregate
We should skip unresolved `LogicalPlan`s for `PullOutNondeterministic`, as calling `output` on unresolved `LogicalPlan` will produce confusing error message. Author: Wenchen Fan <cloud0fan@outlook.com> Closes #8203 from cloud-fan/error-msg and squashes the following commits: 1c67ca7 [Wenchen Fan] move test 7593080 [Wenchen Fan] correct error message for aggregate
Diffstat (limited to 'sql/catalyst/src')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala1
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala5
2 files changed, 6 insertions, 0 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 4bc1c1af40..d0eb9c2c90 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
@@ -924,6 +924,7 @@ class Analyzer(
*/
object PullOutNondeterministic extends Rule[LogicalPlan] {
override def apply(plan: LogicalPlan): LogicalPlan = plan resolveOperators {
+ case p if !p.resolved => p // Skip unresolved nodes.
case p: Project => p
case f: Filter => f
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala
index f60d11c988..7065adce04 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala
@@ -145,6 +145,11 @@ class AnalysisErrorSuite extends AnalysisTest {
UnresolvedTestPlan(),
"unresolved" :: Nil)
+ errorTest(
+ "SPARK-9955: correct error message for aggregate",
+ // When parse SQL string, we will wrap aggregate expressions with UnresolvedAlias.
+ testRelation2.where('bad_column > 1).groupBy('a)(UnresolvedAlias(max('b))),
+ "cannot resolve 'bad_column'" :: Nil)
test("SPARK-6452 regression test") {
// CheckAnalysis should throw AnalysisException when Aggregate contains missing attribute(s)