diff options
author | Michael Armbrust <michael@databricks.com> | 2015-10-08 10:22:06 -0700 |
---|---|---|
committer | Michael Armbrust <michael@databricks.com> | 2015-10-08 10:22:06 -0700 |
commit | 5c9fdf74e328c067388ba1109eb48bf9d128bcf4 (patch) | |
tree | 45015fb20326338d703b0670e03f1ac768f0d604 /sql/catalyst | |
parent | e8f90d9dda3f87fef01c683462eac67aad750f60 (diff) | |
download | spark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.tar.gz spark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.tar.bz2 spark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.zip |
[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 <michael@databricks.com>
Closes #9022 from marmbrus/expressionToString.
Diffstat (limited to 'sql/catalyst')
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala | 8 |
1 files changed, 7 insertions, 1 deletions
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("(", ",", ")") } |