This is an automated email from the ASF dual-hosted git repository.

gurwls223 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new c26379b  [SPARK-27221][SQL] Improve the assert error message in 
TreeNode.parseToJson
c26379b is described below

commit c26379b446e90b3104ebe36f288be483f613a652
Author: Shixiong Zhu <zsxw...@gmail.com>
AuthorDate: Thu Mar 21 11:15:05 2019 +0900

    [SPARK-27221][SQL] Improve the assert error message in TreeNode.parseToJson
    
    ## What changes were proposed in this pull request?
    
    When `TreeNode.parseToJson` may throw an assert error without any error 
message when a TreeNode is not implemented properly, and it's hard to find the 
bad TreeNode implementation.
    
    This PR adds the assert message to improve the error, like what 
`TreeNode.jsonFields` does.
    
    ## How was this patch tested?
    
    Jenkins
    
    Closes #24159 from zsxwing/SPARK-27221.
    
    Authored-by: Shixiong Zhu <zsxw...@gmail.com>
    Signed-off-by: Hyukjin Kwon <gurwls...@apache.org>
---
 .../main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala    | 5 +++--
 1 file changed, 3 insertions(+), 2 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 72b1931..66342af 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
@@ -630,7 +630,7 @@ abstract class TreeNode[BaseType <: TreeNode[BaseType]] 
extends Product {
     val fieldNames = getConstructorParameterNames(getClass)
     val fieldValues = productIterator.toSeq ++ otherCopyArgs
     assert(fieldNames.length == fieldValues.length, 
s"${getClass.getSimpleName} fields: " +
-      fieldNames.mkString(", ") + s", values: " + 
fieldValues.map(_.toString).mkString(", "))
+      fieldNames.mkString(", ") + s", values: " + fieldValues.mkString(", "))
 
     fieldNames.zip(fieldValues).map {
       // If the field value is a child, then use an int to encode it, 
represents the index of
@@ -683,7 +683,8 @@ abstract class TreeNode[BaseType <: TreeNode[BaseType]] 
extends Product {
       try {
         val fieldNames = getConstructorParameterNames(p.getClass)
         val fieldValues = p.productIterator.toSeq
-        assert(fieldNames.length == fieldValues.length)
+        assert(fieldNames.length == fieldValues.length, 
s"${getClass.getSimpleName} fields: " +
+          fieldNames.mkString(", ") + s", values: " + fieldValues.mkString(", 
"))
         ("product-class" -> JString(p.getClass.getName)) :: 
fieldNames.zip(fieldValues).map {
           case (name, value) => name -> parseToJson(value)
         }.toList


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to