From 5c9fdf74e328c067388ba1109eb48bf9d128bcf4 Mon Sep 17 00:00:00 2001 From: Michael Armbrust Date: Thu, 8 Oct 2015 10:22:06 -0700 Subject: [SPARK-10998] [SQL] Show non-children in default Expression.toString Its pretty hard to debug problems with expressions when you can't see all the arguments. Before: `invoke()` After: `invoke(inputObject#1, intField, IntegerType)` Author: Michael Armbrust Closes #9022 from marmbrus/expressionToString. --- .../org/apache/spark/sql/catalyst/expressions/Expression.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala index 96284b9b42..96fcc799e5 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala @@ -174,7 +174,13 @@ abstract class Expression extends TreeNode[Expression] { }.toString } - override def toString: String = prettyName + children.mkString("(", ",", ")") + + private def flatArguments = productIterator.flatMap { + case t: Traversable[_] => t + case single => single :: Nil + } + + override def toString: String = prettyName + flatArguments.mkString("(", ",", ")") } -- cgit v1.2.3