[SPARK-6397][SQL] Check the missingInput simply
https://github.com/apache/spark/pull/5082 /cc liancheng Author: Yadong Qi <qiyadong2010@gmail.com> Closes #5132 from watermen/sql-missingInput-new and squashes the following commits: 1e5bdc5 [Yadong Qi] Check the missingInput simply
This commit is contained in:
parent
bf044def4c
commit
9f3273bd9c
|
@ -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")
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue