You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by rx...@apache.org on 2015/07/24 10:18:46 UTC
spark git commit: [SPARK-9200][SQL] Don't implicitly cast non-atomic
types to string type.
Repository: spark
Updated Branches:
refs/heads/master 408e64b28 -> cb8c241f0
[SPARK-9200][SQL] Don't implicitly cast non-atomic types to string type.
Author: Reynold Xin <rx...@databricks.com>
Closes #7636 from rxin/complex-string-implicit-cast and squashes the following commits:
3e67327 [Reynold Xin] [SPARK-9200][SQL] Don't implicitly cast non-atomic types to string type.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/cb8c241f
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/cb8c241f
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/cb8c241f
Branch: refs/heads/master
Commit: cb8c241f05b9ab4ad0cd07df14d454cc5a4554cc
Parents: 408e64b
Author: Reynold Xin <rx...@databricks.com>
Authored: Fri Jul 24 01:18:43 2015 -0700
Committer: Reynold Xin <rx...@databricks.com>
Committed: Fri Jul 24 01:18:43 2015 -0700
----------------------------------------------------------------------
.../spark/sql/catalyst/analysis/HiveTypeCoercion.scala | 3 ++-
.../spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala | 8 ++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/cb8c241f/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala
----------------------------------------------------------------------
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 d56ceea..87ffbfe 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
@@ -720,7 +720,8 @@ object HiveTypeCoercion {
case (StringType, DateType) => Cast(e, DateType)
case (StringType, TimestampType) => Cast(e, TimestampType)
case (StringType, BinaryType) => Cast(e, BinaryType)
- case (any, StringType) if any != StringType => Cast(e, StringType)
+ // Cast any atomic type to string.
+ case (any: AtomicType, StringType) if any != StringType => Cast(e, StringType)
// When we reach here, input type is not acceptable for any types in this type collection,
// try to find the first one we can implicitly cast.
http://git-wip-us.apache.org/repos/asf/spark/blob/cb8c241f/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala
index d0fb95b..55865bd 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercionSuite.scala
@@ -115,6 +115,14 @@ class HiveTypeCoercionSuite extends PlanTest {
shouldNotCast(IntegerType, ArrayType)
shouldNotCast(IntegerType, MapType)
shouldNotCast(IntegerType, StructType)
+
+ shouldNotCast(IntervalType, StringType)
+
+ // Don't implicitly cast complex types to string.
+ shouldNotCast(ArrayType(StringType), StringType)
+ shouldNotCast(MapType(StringType, StringType), StringType)
+ shouldNotCast(new StructType().add("a1", StringType), StringType)
+ shouldNotCast(MapType(StringType, StringType), StringType)
}
test("tightest common bound for types") {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org