aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala27
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala14
2 files changed, 20 insertions, 21 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
index 9d4617dda5..86a73a319e 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
@@ -204,20 +204,19 @@ object JavaTypeInference {
typeToken.getRawType match {
case c if !inferExternalType(c).isInstanceOf[ObjectType] => getPath
- case c if c == classOf[java.lang.Short] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Integer] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Long] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Double] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Byte] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Float] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
- case c if c == classOf[java.lang.Boolean] =>
- NewInstance(c, getPath :: Nil, ObjectType(c))
+ case c if c == classOf[java.lang.Short] ||
+ c == classOf[java.lang.Integer] ||
+ c == classOf[java.lang.Long] ||
+ c == classOf[java.lang.Double] ||
+ c == classOf[java.lang.Float] ||
+ c == classOf[java.lang.Byte] ||
+ c == classOf[java.lang.Boolean] =>
+ StaticInvoke(
+ c,
+ ObjectType(c),
+ "valueOf",
+ getPath :: Nil,
+ propagateNull = true)
case c if c == classOf[java.sql.Date] =>
StaticInvoke(
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
index 0c5a818f54..82710a2a18 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
@@ -204,37 +204,37 @@ object ScalaReflection extends ScalaReflection {
case t if t <:< localTypeOf[java.lang.Integer] =>
val boxedType = classOf[java.lang.Integer]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Long] =>
val boxedType = classOf[java.lang.Long]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Double] =>
val boxedType = classOf[java.lang.Double]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Float] =>
val boxedType = classOf[java.lang.Float]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Short] =>
val boxedType = classOf[java.lang.Short]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Byte] =>
val boxedType = classOf[java.lang.Byte]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.lang.Boolean] =>
val boxedType = classOf[java.lang.Boolean]
val objectType = ObjectType(boxedType)
- NewInstance(boxedType, getPath :: Nil, objectType)
+ StaticInvoke(boxedType, objectType, "valueOf", getPath :: Nil, propagateNull = true)
case t if t <:< localTypeOf[java.sql.Date] =>
StaticInvoke(