Repository: spark
Updated Branches:
  refs/heads/master bf044def4 -> 9f3273bd9


[SPARK-6397][SQL] Check the missingInput simply

https://github.com/apache/spark/pull/5082

/cc liancheng

Author: Yadong Qi <[email protected]>

Closes #5132 from watermen/sql-missingInput-new and squashes the following 
commits:

1e5bdc5 [Yadong Qi] Check the missingInput simply


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/9f3273bd
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/9f3273bd
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/9f3273bd

Branch: refs/heads/master
Commit: 9f3273bd9c919f6c48a95383b3d5be357c89998c
Parents: bf044de
Author: Yadong Qi <[email protected]>
Authored: Mon Mar 23 18:16:49 2015 +0800
Committer: Cheng Lian <[email protected]>
Committed: Mon Mar 23 18:16:49 2015 +0800

----------------------------------------------------------------------
 .../org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala  | 5 ++---
 .../scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala   | 5 +++--
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/9f3273bd/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala
index 4e8fc89..fb975ee 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala
@@ -85,9 +85,8 @@ class CheckAnalysis {
 
             cleaned.foreach(checkValidAggregateExpression)
 
-          case o if o.children.nonEmpty &&
-            !o.references.filter(_.name != 
"grouping__id").subsetOf(o.inputSet) =>
-            val missingAttributes = (o.references -- 
o.inputSet).map(_.prettyString).mkString(",")
+          case o if o.children.nonEmpty && o.missingInput.nonEmpty =>
+            val missingAttributes = 
o.missingInput.map(_.prettyString).mkString(",")
             val input = o.inputSet.map(_.prettyString).mkString(",")
 
             failAnalysis(s"resolved attributes $missingAttributes missing from 
$input")

http://git-wip-us.apache.org/repos/asf/spark/blob/9f3273bd/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala
index 17a88e0..400a6b2 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala
@@ -17,7 +17,7 @@
 
 package org.apache.spark.sql.catalyst.plans
 
-import org.apache.spark.sql.catalyst.expressions.{Attribute, AttributeSet, 
Expression}
+import org.apache.spark.sql.catalyst.expressions.{VirtualColumn, Attribute, 
AttributeSet, Expression}
 import org.apache.spark.sql.catalyst.trees.TreeNode
 import org.apache.spark.sql.types.{ArrayType, DataType, StructField, 
StructType}
 
@@ -48,7 +48,8 @@ abstract class QueryPlan[PlanType <: TreeNode[PlanType]] 
extends TreeNode[PlanTy
    * Subclasses should override this method if they produce attributes 
internally as it is used by
    * assertions designed to prevent the construction of invalid plans.
    */
-  def missingInput: AttributeSet = references -- inputSet
+  def missingInput: AttributeSet = (references -- inputSet)
+    .filter(_.name != VirtualColumn.groupingIdName)
 
   /**
    * Runs [[transform]] with `rule` on all expressions present in this query 
operator.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to