aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorMichael Armbrust <michael@databricks.com>2015-10-08 13:49:10 -0700
committerMichael Armbrust <michael@databricks.com>2015-10-08 13:49:10 -0700
commita8226a9f14e81c0b6712a30f1a60276200faebac (patch)
treef63416ec3455222ce94e864cef8ae5a62f0cf5ae /sql
parentaf2a5544875b23b3b62fb6d4f3bf432828720008 (diff)
downloadspark-a8226a9f14e81c0b6712a30f1a60276200faebac.tar.gz
spark-a8226a9f14e81c0b6712a30f1a60276200faebac.tar.bz2
spark-a8226a9f14e81c0b6712a30f1a60276200faebac.zip
Revert [SPARK-8654] [SQL] Fix Analysis exception when using NULL IN
This reverts commit dcbd58a929be0058b1cfa59b14898c4c428a7680 from #8983 Author: Michael Armbrust <michael@databricks.com> Closes #9034 from marmbrus/revert8654.
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala10
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala21
2 files changed, 2 insertions, 29 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala
index 7192c931d2..87a3845b2d 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala
@@ -304,10 +304,7 @@ object HiveTypeCoercion {
}
/**
- * Convert the value and in list expressions to the common operator type
- * by looking at all the argument types and finding the closest one that
- * all the arguments can be cast to. When no common operator type is found
- * an Analysis Exception is raised.
+ * Convert all expressions in in() list to the left operator type
*/
object InConversion extends Rule[LogicalPlan] {
def apply(plan: LogicalPlan): LogicalPlan = plan resolveExpressions {
@@ -315,10 +312,7 @@ object HiveTypeCoercion {
case e if !e.childrenResolved => e
case i @ In(a, b) if b.exists(_.dataType != a.dataType) =>
- findWiderCommonType(i.children.map(_.dataType)) match {
- case Some(finalDataType) => i.withNewChildren(i.children.map(Cast(_, finalDataType)))
- case None => i
- }
+ i.makeCopy(Array(a, b.map(Cast(_, a.dataType))))
}
}
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala
index 77a4765e77..820b336aac 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala
@@ -135,25 +135,4 @@ class AnalysisSuite extends AnalysisTest {
plan = testRelation.select(CreateStructUnsafe(Seq(a, (a + 1).as("a+1"))).as("col"))
checkAnalysis(plan, plan)
}
-
- test("SPARK-8654: invalid CAST in NULL IN(...) expression") {
- val plan = Project(Alias(In(Literal(null), Seq(Literal(1), Literal(2))), "a")() :: Nil,
- LocalRelation()
- )
- assertAnalysisSuccess(plan)
- }
-
- test("SPARK-8654: different types in inlist but can be converted to a commmon type") {
- val plan = Project(Alias(In(Literal(null), Seq(Literal(1), Literal(1.2345))), "a")() :: Nil,
- LocalRelation()
- )
- assertAnalysisSuccess(plan)
- }
-
- test("SPARK-8654: check type compatibility error") {
- val plan = Project(Alias(In(Literal(null), Seq(Literal(true), Literal(1))), "a")() :: Nil,
- LocalRelation()
- )
- assertAnalysisError(plan, Seq("data type mismatch: Arguments must be same type"))
- }
}