From b9e6eab4518b90bd20352e00ddffd4e5e39d6359 Mon Sep 17 00:00:00 2001 From: Sandeep Singh Date: Thu, 12 May 2016 21:55:11 +0530 Subject: [PATCH] [MINOR][SQL] Pattern match using Singleton to check if object is a scala object --- .../scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala index 5eb8fdf048e28..6fb9a0c507f6e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala @@ -627,9 +627,7 @@ abstract class TreeNode[BaseType <: TreeNode[BaseType]] extends Product { JObject(fields) case r: RDD[_] => JNothing // if it's a scala object, we can simply keep the full class path. - // TODO: currently if the class name ends with "$", we think it's a scala object, there is - // probably a better way to check it. - case obj if obj.getClass.getName.endsWith("$") => "object" -> obj.getClass.getName + case obj: Singleton => "object" -> obj.getClass.getName // returns null if the product type doesn't have a primary constructor, e.g. HiveFunctionWrapper case p: Product => try { val fieldNames = getConstructorParameterNames(p.getClass)