Ngone51 commented on a change in pull request #27959: [SPARK-31190][SQL]
ScalaReflection should erasure non user defined AnyVal type
URL: https://github.com/apache/spark/pull/27959#discussion_r395443562
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
##########
@@ -611,10 +611,33 @@ object ScalaReflection extends ScalaReflection {
}
}
+ private def erasure(tpe: Type): Type = {
+ if (isSubtype(tpe, localTypeOf[AnyVal]) &&
!tpe.toString.startsWith("scala")) {
+ tpe
+ } else {
+ tpe.erasure
+ }
+ }
+
+ /**
+ * Returns the full class name for a type. The returned name is the canonical
+ * Scala name, where each component is separated by a period. It is NOT the
+ * Java-equivalent runtime name (no dollar signs).
+ *
+ * In simple cases, both the Scala and Java names are the same, however when
Scala
+ * generates constructs that do not map to a Java equivalent, such as
singleton objects
+ * or nested classes in package objects, it uses the dollar sign ($) to
create
+ * synthetic classes, emulating behaviour in Java bytecode.
+ */
+ def getClassNameFromType(tpe: `Type`): String = {
Review comment:
I don't know it clearly...just copied from the original one.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]